public void GetUmbracoRouteValues_Returns_Default() { var router = new UmbracoRouter(Mock.Of<IRouter>()); var httpCtxAccessor = new Mock<IHttpContextAccessor>(); var httpContext = new Mock<HttpContext>(); httpContext.Setup(context => context.Request).Returns(Mock.Of<HttpRequest>()); httpCtxAccessor.Setup(accessor => accessor.HttpContext).Returns(httpContext.Object); var umbCtx = new UmbracoContext(httpCtxAccessor.Object); var urlProvider = new UrlProvider(umbCtx, Enumerable.Empty<IUrlProvider>()); var routingCtx = new RoutingContext(Enumerable.Empty<IContentFinder>(), Mock.Of<ILastChanceContentFinder>(), urlProvider); var pcr = new PublishedContentRequest(routingCtx, Mock.Of<ITemplateService>(), Mock.Of<ILoggerFactory>(), httpCtxAccessor.Object) { PublishedContent = new PublishedContent() }; umbCtx.Initialize(pcr); var actionDescriptors = new Mock<IActionDescriptorsCollectionProvider>(); actionDescriptors.Setup(provider => provider.ActionDescriptors).Returns(new ActionDescriptorsCollection(new List<ActionDescriptor>(), 0)); var result = router.GetUmbracoRouteValues(umbCtx, new UmbracoControllerTypeCollection(actionDescriptors.Object)); Assert.Equal("Umbraco", result.ControllerName); Assert.Equal("Index", result.ActionName); }
public void GetUmbracoRouteValues_Find_Custom_Controller() { var router = new UmbracoRouter(Mock.Of<IRouter>()); var httpCtxAccessor = new Mock<IHttpContextAccessor>(); var httpContext = new Mock<HttpContext>(); httpContext.Setup(context => context.Request).Returns(Mock.Of<HttpRequest>()); httpCtxAccessor.Setup(accessor => accessor.HttpContext).Returns(httpContext.Object); var umbCtx = new UmbracoContext(httpCtxAccessor.Object); var urlProvider = new UrlProvider(umbCtx, Enumerable.Empty<IUrlProvider>()); var routingCtx = new RoutingContext(Enumerable.Empty<IContentFinder>(), Mock.Of<ILastChanceContentFinder>(), urlProvider); var templateService = new Mock<ITemplateService>(); templateService.Setup(service => service.GetTemplate("Hello")).Returns(Mock.Of<ITemplate>(template => template.Alias == "Hello")); var pcr = new PublishedContentRequest(routingCtx, templateService.Object, Mock.Of<ILoggerFactory>(), httpCtxAccessor.Object) { PublishedContent = new PublishedContent() { ContentType = "Custom" } }; pcr.TrySetTemplate("Hello"); umbCtx.Initialize(pcr); var actionDescriptors = new Mock<IActionDescriptorsCollectionProvider>(); actionDescriptors.Setup(provider => provider.ActionDescriptors).Returns(new ActionDescriptorsCollection( new List<ActionDescriptor>() { new ControllerActionDescriptor() { Name = "Hello", ControllerName = "Custom", ControllerTypeInfo = typeof(UmbracoController).GetTypeInfo() } }, 0)); var result = router.GetUmbracoRouteValues(umbCtx, new UmbracoControllerTypeCollection(actionDescriptors.Object)); Assert.Equal("Custom", result.ControllerName); Assert.Equal("Hello", result.ActionName); }