示例#1
0
        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);
        }
示例#2
0
        public async void RouteUmbracoContentAsync_Umbraco_Context_Initialized()
        {
            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);

            var result = await router.RouteUmbracoContentAsync(umbCtx, pcr, new RouteData());

            Assert.Equal(true, umbCtx.Initialized);
            Assert.Equal(false, result);
        }
示例#3
0
        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);
        }