Esempio n. 1
0
    public void RuntimeState_All_Routes(RuntimeLevel level)
    {
        var routes    = GetRoutes(level);
        var endpoints = new TestRouteBuilder();

        routes.CreateRoutes(endpoints);

        Assert.AreEqual(2, endpoints.DataSources.Count);
        var route = endpoints.DataSources.First();

        Assert.AreEqual(2, route.Endpoints.Count);

        var endpoint0 = (RouteEndpoint)route.Endpoints[0];

        Assert.AreEqual($"{routes.GetPreviewHubRoute()}/negotiate", endpoint0.RoutePattern.RawText);
        var endpoint1 = (RouteEndpoint)route.Endpoints[1];

        Assert.AreEqual($"{routes.GetPreviewHubRoute()}", endpoint1.RoutePattern.RawText);

        var endpoint3             = (RouteEndpoint)endpoints.DataSources.Last().Endpoints[0];
        var previewControllerName = ControllerExtensions.GetControllerName <PreviewController>();

        Assert.AreEqual(
            $"umbraco/{previewControllerName.ToLowerInvariant()}/{{action}}/{{id?}}",
            endpoint3.RoutePattern.RawText);
        Assert.AreEqual(Constants.Web.Mvc.BackOfficeArea, endpoint3.RoutePattern.Defaults["area"]);
        Assert.AreEqual("Index", endpoint3.RoutePattern.Defaults[ActionToken]);
        Assert.AreEqual(previewControllerName, endpoint3.RoutePattern.Defaults[ControllerToken]);
        Assert.AreEqual(
            endpoint3.RoutePattern.Defaults["area"],
            typeof(PreviewController).GetCustomAttribute <AreaAttribute>(false).RouteValue);
    }
Esempio n. 2
0
    public void RuntimeState_No_Routes(RuntimeLevel level)
    {
        var routes    = GetBackOfficeAreaRoutes(level);
        var endpoints = new TestRouteBuilder();

        routes.CreateRoutes(endpoints);

        Assert.AreEqual(0, endpoints.DataSources.Count);
    }
Esempio n. 3
0
    public void MapUmbracoApiRoute(string umbracoPath, string area, bool isBackOffice, string defaultAction)
    {
        var endpoints = new TestRouteBuilder();

        endpoints.MapUmbracoApiRoute <Testing1Controller>(umbracoPath, area, isBackOffice, defaultAction);

        var route    = endpoints.DataSources.First();
        var endpoint = (RouteEndpoint)route.Endpoints[0];

        var controllerName        = ControllerExtensions.GetControllerName <Testing1Controller>();
        var controllerNamePattern = controllerName.ToLowerInvariant();
        var areaPattern           = area?.ToLowerInvariant();

        if (isBackOffice)
        {
            if (area.IsNullOrWhiteSpace())
            {
                Assert.AreEqual(
                    $"{umbracoPath}/backoffice/api/{controllerNamePattern}/{{action}}/{{id?}}",
                    endpoint.RoutePattern.RawText);
            }
            else
            {
                Assert.AreEqual(
                    $"{umbracoPath}/backoffice/{areaPattern}/{controllerNamePattern}/{{action}}/{{id?}}",
                    endpoint.RoutePattern.RawText);
            }
        }
        else
        {
            if (area.IsNullOrWhiteSpace())
            {
                Assert.AreEqual(
                    $"{umbracoPath}/api/{controllerNamePattern}/{{action}}/{{id?}}",
                    endpoint.RoutePattern.RawText);
            }
            else
            {
                Assert.AreEqual(
                    $"{umbracoPath}/{areaPattern}/{controllerNamePattern}/{{action}}/{{id?}}",
                    endpoint.RoutePattern.RawText);
            }
        }

        if (!area.IsNullOrWhiteSpace())
        {
            Assert.AreEqual(area, endpoint.RoutePattern.Defaults[AreaToken]);
        }

        if (!defaultAction.IsNullOrWhiteSpace())
        {
            Assert.AreEqual(defaultAction, endpoint.RoutePattern.Defaults["action"]);
        }

        Assert.AreEqual(controllerName, endpoint.RoutePattern.Defaults[ControllerToken]);
    }
Esempio n. 4
0
        public void TestRoute2_Regression_WhenExplicitlyProvided()
        {
            var route = TestRouteBuilder.BuildRoute(
                System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(
                    "Itinero.Test.test_data.routes.route2.json"));

            Assert.IsNotNull(route);

            Itinero.Profiles.Profile.ClearRegistered();
            var instructions = route.GenerateInstructions(Itinero.Osm.Vehicles.Vehicle.Car.Fastest());
        }
Esempio n. 5
0
        public void TestRoute2_Regression_WhenRegistered()
        {
            Itinero.Osm.Vehicles.Vehicle.RegisterVehicles();

            var route = TestRouteBuilder.BuildRoute(
                System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(
                    "Itinero.Test.test_data.routes.route2.json"));

            Assert.IsNotNull(route);
            var instructions = route.GenerateInstructions();
        }
Esempio n. 6
0
        public void TestRoute2_Regression_ThrowsWhenProfileNotRegistered()
        {
            var route = TestRouteBuilder.BuildRoute(
                System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(
                    "Itinero.Test.test_data.routes.route2.json"));

            Assert.IsNotNull(route);
            Itinero.Profiles.Profile.ClearRegistered();
            Assert.Catch <Exception>(() =>
            {
                var instructions = route.GenerateInstructions();
            });
        }
Esempio n. 7
0
    public void RuntimeState_Run()
    {
        var routes    = GetInstallAreaRoutes(RuntimeLevel.Run);
        var endpoints = new TestRouteBuilder();

        routes.CreateRoutes(endpoints);

        Assert.AreEqual(1, endpoints.DataSources.Count);
        var route = endpoints.DataSources.First();

        Assert.AreEqual(1, route.Endpoints.Count);

        Assert.AreEqual("install/{controller?}/{action?} HTTP: GET", route.Endpoints[0].ToString());
    }
Esempio n. 8
0
    public void RuntimeState_Install(RuntimeLevel level)
    {
        var routes    = GetInstallAreaRoutes(level);
        var endpoints = new TestRouteBuilder();

        routes.CreateRoutes(endpoints);

        Assert.AreEqual(2, endpoints.DataSources.Count);
        var route = endpoints.DataSources.First();

        Assert.AreEqual(2, route.Endpoints.Count);

        var endpoint1 = (RouteEndpoint)route.Endpoints[0];

        Assert.AreEqual("install/api/{action}/{id?}", endpoint1.RoutePattern.RawText);
        Assert.AreEqual(Constants.Web.Mvc.InstallArea, endpoint1.RoutePattern.Defaults[AreaToken]);
        Assert.AreEqual("Index", endpoint1.RoutePattern.Defaults[ActionToken]);
        Assert.AreEqual(
            ControllerExtensions.GetControllerName <InstallApiController>(),
            endpoint1.RoutePattern.Defaults[ControllerToken]);
        Assert.AreEqual(
            endpoint1.RoutePattern.Defaults[AreaToken],
            typeof(InstallApiController).GetCustomAttribute <AreaAttribute>(false).RouteValue);

        var endpoint2 = (RouteEndpoint)route.Endpoints[1];

        Assert.AreEqual("install/{action}/{id?}", endpoint2.RoutePattern.RawText);
        Assert.AreEqual(Constants.Web.Mvc.InstallArea, endpoint2.RoutePattern.Defaults[AreaToken]);
        Assert.AreEqual("Index", endpoint2.RoutePattern.Defaults[ActionToken]);
        Assert.AreEqual(
            ControllerExtensions.GetControllerName <InstallController>(),
            endpoint2.RoutePattern.Defaults[ControllerToken]);
        Assert.AreEqual(
            endpoint2.RoutePattern.Defaults[AreaToken],
            typeof(InstallController).GetCustomAttribute <AreaAttribute>(false).RouteValue);

        var fallbackRoute = endpoints.DataSources.Last();

        Assert.AreEqual(1, fallbackRoute.Endpoints.Count);

        Assert.AreEqual("Fallback {*path:nonfile}", fallbackRoute.Endpoints[0].ToString());
    }
Esempio n. 9
0
    public void RuntimeState_All_Routes(RuntimeLevel level)
    {
        var routes    = GetBackOfficeAreaRoutes(level);
        var endpoints = new TestRouteBuilder();

        routes.CreateRoutes(endpoints);

        Assert.AreEqual(1, endpoints.DataSources.Count);
        var route = endpoints.DataSources.First();

        Assert.AreEqual(3, route.Endpoints.Count);

        AssertMinimalBackOfficeRoutes(route);

        var endpoint4         = (RouteEndpoint)route.Endpoints[2];
        var apiControllerName = ControllerExtensions.GetControllerName <Testing1Controller>();

        Assert.AreEqual(
            $"umbraco/backoffice/api/{apiControllerName.ToLowerInvariant()}/{{action}}/{{id?}}",
            endpoint4.RoutePattern.RawText);
        Assert.IsFalse(endpoint4.RoutePattern.Defaults.ContainsKey(AreaToken));
        Assert.IsFalse(endpoint4.RoutePattern.Defaults.ContainsKey(ActionToken));
        Assert.AreEqual(apiControllerName, endpoint4.RoutePattern.Defaults[ControllerToken]);
    }