public void DiscoverAreaControllerActions_SingleControllerArea() { var compilation = CreateCompilation(@" using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; namespace TestCode { [Area(""Admin"")] public class HomeController : Controller { public IActionResult Index() { return View(); } } }"); var allTypes = compilation.SyntaxTrees.SelectMany(tree => tree.GetRoot().DescendantNodes()).OfType <TypeDeclarationSyntax>().ToList(); var areas = MvcDiscoverer.DiscoverAreaControllerActions(compilation, allTypes).ToList(); Assert.Single(areas); Assert.Equal("Admin", areas[0].Name); Assert.Single(areas[0].Controllers); Assert.Equal("Home", areas[0].Controllers[0].Name); Assert.Single(areas[0].Controllers[0].Actions); Assert.Equal("Index", areas[0].Controllers[0].Actions.Single().Name); Assert.Empty(areas[0].Controllers[0].Actions.Single().Parameters); }
public void DiscoverAreaControllerActions_SingleControllerActionArrayParameter() { var compilation = CreateCompilation(@" using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; namespace TestCode { public class HomeController : Controller { public IActionResult Index(string[] strings) { return View(); } } }"); var allTypes = compilation.SyntaxTrees.SelectMany(tree => tree.GetRoot().DescendantNodes()).OfType <TypeDeclarationSyntax>().ToList(); var areas = MvcDiscoverer.DiscoverAreaControllerActions(compilation, allTypes).ToList(); Assert.Single(areas); Assert.Equal("", areas[0].Name); Assert.Single(areas[0].Controllers); Assert.Equal("Home", areas[0].Controllers[0].Name); Assert.Single(areas[0].Controllers[0].Actions); Assert.Equal("Index", areas[0].Controllers[0].Actions.Single().Name); Assert.Single(areas[0].Controllers[0].Actions.Single().Parameters); Assert.Equal("strings", areas[0].Controllers[0].Actions.Single().Parameters[0].Name); Assert.Equal("string[]", areas[0].Controllers[0].Actions.Single().Parameters[0].Type); Assert.False(areas[0].Controllers[0].Actions.Single().Parameters[0].HasDefaultValue); Assert.Null(areas[0].Controllers[0].Actions.Single().Parameters[0].DefaultValue); }
public void DiscoverAreaControllerActions_SingleControllerNoArea() { var compilation = CreateCompilation(@" using Microsoft.AspNetCore.Mvc; namespace TestCode { public class HomeController : Controller { public IActionResult Index() { return View(); } } }"); var areas = MvcDiscoverer.DiscoverAreaControllerActions(compilation).ToList(); Assert.Single(areas); Assert.Equal("", areas[0].Name); Assert.Single(areas[0].Controllers); Assert.Equal("Home", areas[0].Controllers[0].Name); Assert.Single(areas[0].Controllers[0].Actions); Assert.Equal("Index", areas[0].Controllers[0].Actions[0].Name); Assert.Empty(areas[0].Controllers[0].Actions[0].Parameters); }
public void DiscoverAreaControllerActions_SingleControllerActionArrayParameter() { var compilation = CreateCompilation(@" using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; namespace TestCode { public class HomeController : Controller { public IActionResult Index(string[] strings) { return View(); } } }"); var areas = MvcDiscoverer.DiscoverAreaControllerActions(compilation).ToList(); Assert.Single(areas); Assert.Equal("", areas[0].Name); Assert.Single(areas[0].Controllers); Assert.Equal("Home", areas[0].Controllers[0].Name); Assert.Single(areas[0].Controllers[0].Actions); Assert.Equal("Index", areas[0].Controllers[0].Actions[0].Name); Assert.Equal(1, areas[0].Controllers[0].Actions[0].Parameters.Count); Assert.Equal("strings", areas[0].Controllers[0].Actions[0].Parameters[0].Name); Assert.Equal("string[]", areas[0].Controllers[0].Actions[0].Parameters[0].Type); Assert.False(areas[0].Controllers[0].Actions[0].Parameters[0].HasDefaultValue); Assert.Null(areas[0].Controllers[0].Actions[0].Parameters[0].DefaultValue); }
public void DiscoverAreaControllerActions_NoControllerNoArea() { var compilation = CreateCompilation(@" using Microsoft.AspNetCore.Mvc; namespace TestCode { public class HomeController { public IActionResult Index() { return View(); } } }"); var areas = MvcDiscoverer.DiscoverAreaControllerActions(compilation).ToList(); Assert.Empty(areas); }
public void DiscoverAreaControllerActions_AbstractControllerNoArea() { var compilation = CreateCompilation(@" using Microsoft.AspNetCore.Mvc; namespace TestCode { public abstract class HomeController { public IActionResult Index() { return View(); } } }"); var allTypes = compilation.SyntaxTrees.SelectMany(tree => tree.GetRoot().DescendantNodes()).OfType <TypeDeclarationSyntax>().ToList(); var areas = MvcDiscoverer.DiscoverAreaControllerActions(compilation, allTypes).ToList(); Assert.Empty(areas); }
public void DiscoverAreaControllerActions_SingleControllerNonAction() { var compilation = CreateCompilation(@" using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; namespace TestCode { public class HomeController : Controller { [NonAction] public IActionResult Index(string[] strings) { return View(); } } }"); var areas = MvcDiscoverer.DiscoverAreaControllerActions(compilation).ToList(); Assert.Empty(areas); }
public void DiscoverAreaControllerActions_SingleControllerActionParametersDefaultValue() { var compilation = CreateCompilation(@" using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; namespace TestCode { public class HomeController : Controller { public IActionResult Index(string search = """", int page = 1) { return View(); } } }"); var areas = MvcDiscoverer.DiscoverAreaControllerActions(compilation).ToList(); Assert.Single(areas); Assert.Equal("", areas[0].Name); Assert.Single(areas[0].Controllers); Assert.Equal("Home", areas[0].Controllers[0].Name); Assert.Single(areas[0].Controllers[0].Actions); Assert.Equal("Index", areas[0].Controllers[0].Actions[0].Name); Assert.Equal(2, areas[0].Controllers[0].Actions[0].Parameters.Count); Assert.Equal("search", areas[0].Controllers[0].Actions[0].Parameters[0].Name); Assert.Equal("string", areas[0].Controllers[0].Actions[0].Parameters[0].Type); Assert.True(areas[0].Controllers[0].Actions[0].Parameters[0].HasDefaultValue); Assert.Equal("", areas[0].Controllers[0].Actions[0].Parameters[0].DefaultValue); Assert.Equal("page", areas[0].Controllers[0].Actions[0].Parameters[1].Name); Assert.Equal("int", areas[0].Controllers[0].Actions[0].Parameters[1].Type); Assert.True(areas[0].Controllers[0].Actions[0].Parameters[1].HasDefaultValue); Assert.Equal(1, areas[0].Controllers[0].Actions[0].Parameters[1].DefaultValue); }
public void DiscoverAreaControllerActions_SingleControllerNonAction() { var compilation = CreateCompilation(@" using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; namespace TestCode { public class HomeController : Controller { [NonAction] public IActionResult Index(string[] strings) { return View(); } } }"); var allTypes = compilation.SyntaxTrees.SelectMany(tree => tree.GetRoot().DescendantNodes()).OfType <TypeDeclarationSyntax>().ToList(); var areas = MvcDiscoverer.DiscoverAreaControllerActions(compilation, allTypes).ToList(); Assert.Empty(areas); }