示例#1
0
        public async Task Update_Request_To_Not_Found_When_No_Template()
        {
            UmbracoRouteValuesFactory factory = GetFactory(out Mock <IPublishedRouter> publishedRouter, out _, out IPublishedRequest request);

            UmbracoRouteValues result = await factory.CreateAsync(new DefaultHttpContext(), request);

            // The request has content, no template, no hijacked route and no disabled template features so UpdateRequestToNotFound will be called
            publishedRouter.Verify(m => m.UpdateRequestAsync(It.IsAny <IPublishedRequest>(), null), Times.Once);
        }
示例#2
0
        public async Task Adds_Result_To_Route_Value_Dictionary()
        {
            UmbracoRouteValuesFactory factory = GetFactory(out _, out IOptions <UmbracoRenderingDefaultsOptions> renderingDefaults, out IPublishedRequest request);

            UmbracoRouteValues result = await factory.CreateAsync(new DefaultHttpContext(), request);

            Assert.IsNotNull(result);
            Assert.AreEqual(renderingDefaults.Value.DefaultControllerType, result.ControllerType);
            Assert.AreEqual(UmbracoRouteValues.DefaultActionName, result.ActionName);
            Assert.IsNull(result.TemplateName);
        }
示例#3
0
    private UmbracoRouteValuesFactory GetFactory(
        out Mock <IPublishedRouter> publishedRouter,
        out IOptions <UmbracoRenderingDefaultsOptions> renderingDefaults,
        out IPublishedRequest request)
    {
        var builder = new PublishedRequestBuilder(new Uri("https://example.com"), Mock.Of <IFileService>());

        builder.SetPublishedContent(Mock.Of <IPublishedContent>());
        var builtRequest = request = builder.Build();

        publishedRouter = new Mock <IPublishedRouter>();
        publishedRouter.Setup(x => x.UpdateRequestAsync(It.IsAny <IPublishedRequest>(), null))
        .Returns((IPublishedRequest r, IPublishedContent c) => Task.FromResult(builtRequest))
        .Verifiable();

        renderingDefaults =
            Mock.Of <IOptions <UmbracoRenderingDefaultsOptions> >(x =>
                                                                  x.Value.DefaultControllerType == typeof(RenderController));

        // add the default one
        var actionDescriptors = new List <ActionDescriptor>
        {
            new ControllerActionDescriptor
            {
                ControllerName     = ControllerExtensions.GetControllerName <RenderController>(),
                ActionName         = nameof(RenderController.Index),
                ControllerTypeInfo = typeof(RenderController).GetTypeInfo(),
            },
        };
        var actionSelector = new Mock <IActionSelector>();

        actionSelector.Setup(x => x.SelectCandidates(It.IsAny <RouteContext>())).Returns(actionDescriptors);

        var factory = new UmbracoRouteValuesFactory(
            renderingDefaults,
            Mock.Of <IShortStringHelper>(),
            new UmbracoFeatures(),
            new ControllerActionSearcher(
                new NullLogger <ControllerActionSearcher>(),
                actionSelector.Object),
            publishedRouter.Object);

        return(factory);
    }