public void FindsActionWithAssignableContentRouteType() { var action = new ControllerActionDescriptor { ControllerName = "lorem", MethodInfo = typeof(MyController).GetMethod(nameof(MyController.ActionWithIContentParameter)) }; var serviceProvider = Mock.Of <IServiceProvider>(); var actions = Mock.Of <IActionDescriptorCollectionProvider>(); Mock.Get(serviceProvider).Setup(s => s.GetService(typeof(IActionDescriptorCollectionProvider))).Returns(actions); Mock.Get(actions).SetupGet(a => a.ActionDescriptors).Returns(new ActionDescriptorCollection(new List <ActionDescriptor> { action }.AsReadOnly(), 0)); var result = new ContentRouteActionFinder(serviceProvider).Find("lorem", new MyContentA()); Assert.Same(action, result); }
public void RequiresContentRouteAttribute() { var action = new ControllerActionDescriptor { ControllerName = "lorem", MethodInfo = typeof(MyController).GetMethod(nameof(MyController.ActionWithNonAnnotatedTypeAParameter)) }; var serviceProvider = Mock.Of <IServiceProvider>(); var actions = Mock.Of <IActionDescriptorCollectionProvider>(); Mock.Get(serviceProvider).Setup(s => s.GetService(typeof(IActionDescriptorCollectionProvider))).Returns(actions); Mock.Get(actions).SetupGet(a => a.ActionDescriptors).Returns(new ActionDescriptorCollection(new List <ActionDescriptor> { action }.AsReadOnly(), 0)); var result = new ContentRouteActionFinder(serviceProvider).Find("ipsum", new MyContentA()); Assert.Null(result); }