File: TestFiles\SymbolApiConventionMatcherTest\SymbolApiConventionMatcherTestFile.cs
Web Access
Project: src\src\Mvc\Mvc.Api.Analyzers\test\Mvc.Api.Analyzers.Test.csproj (Mvc.Api.Analyzers.Test)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Runtime.CompilerServices;
using Microsoft.AspNetCore.Mvc.ApiExplorer;
 
namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
{
    public class Base { }
 
    public class Derived : Base { }
 
    public class TestController
    {
        public IActionResult Get(int id) => null;
 
        public IActionResult Search(string searchTerm, bool sortDescending, int page) => null;
 
        public IActionResult SearchEmpty() => null;
    }
 
    public static class TestConvention
    {
        [ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
        public static void Get(int id) { }
 
        [ApiConventionNameMatch(ApiConventionNameMatchBehavior.Any)]
        public static void GetNoArgs() { }
 
        [ApiConventionNameMatch(ApiConventionNameMatchBehavior.Any)]
        public static void GetTwoArgs(int id, string name) { }
 
        [ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
        public static void Post(Derived model) { }
 
        [ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
        public static void GetParameterNotMatching([ApiConventionTypeMatch(ApiConventionTypeMatchBehavior.AssignableFrom)] Derived model) { }
 
        [ApiConventionNameMatch(ApiConventionNameMatchBehavior.Any)]
        public static void Search(
            [ApiConventionNameMatch(ApiConventionNameMatchBehavior.Exact)]
                string searchTerm,
            params object[] others)
        { }
 
        [ApiConventionNameMatch(ApiConventionNameMatchBehavior.Any)]
        public static void SearchWithParams(params object[] others) { }
 
        public static void MethodWithoutMatchBehavior() { }
 
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static void MethodWithRandomAttributes() { }
 
        public static void MethodParameterWithRandomAttributes([FromRoute] int value) { }
 
        public static void MethodWithAnyTypeMatchBehaviorParameter([ApiConventionTypeMatch(ApiConventionTypeMatchBehavior.Any)] int value) { }
    }
}