Exemple #1
0
        public void WhenNoMatchByConstraintsThenNull()
        {
            var context        = "http://acme.com/pizza/calda/1".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{controller}/{action}/{id}", constraints: new RouteValueDictionary(new { controller = "nomatch" }));
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { controller = "pizza", action = "calda", id = 1 }));

            virtualPath.Should().Be.Null();
        }
Exemple #2
0
        public void WhenSchemeAndHostHasJustCatchAllWithNoValueThenUseContextAsDefault()
        {
            var context        = "https://ar.acme.com/pizza".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{scheme}://{*domain}");
            var virtualPath = route.GetVirtualPath(requestContext, null);

            virtualPath.VirtualPath.Should().Be("https://ar.acme.com/");
        }
Exemple #3
0
        public void WhenHostHasCatchAllWithValueThenUseValue()
        {
            var context        = "http://ar.acme.com/pizza".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{topLevelDomain}.{*domain}");
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { topLevelDomain = "cl", domain = "google.net" }));

            virtualPath.VirtualPath.Should().Be("http://cl.google.net/");
        }
Exemple #4
0
        public void WhenPathWithRequiredParamWithoutValueThenNull()
        {
            var context        = "http://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{controller}/{action}/{id}");
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { controller = "pizza", id = 1 }));

            virtualPath.Should().Be.Null();
        }
Exemple #5
0
        public void WhenNoVariableValeAndNewsValuesAreNotEqualsThenNull()
        {
            var context        = "http://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("SomeController/{action}/{id}", new RouteValueDictionary(new { controller = "SomeController", action = "someaction", id = 1 }));
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { controller = "pizza", id = 1 }));

            virtualPath.Should().Be.Null();
        }
Exemple #6
0
        public void WhenPathMatchAndHasAdditionalValuesThenCreateRelativePathWithQueryString()
        {
            var context        = "http://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{controller}/{action}");
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { controller = "pizza", action = "calda", topLevelDomain = "xx", currentPage = 2 }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("pizza/calda?topLevelDomain=xx&currentPage=2");
        }
Exemple #7
0
        public void WhenMatchThenAssignValues()
        {
            var context        = "http://acme.com/pizza/calda/1".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{controller}/{action}/{id}", constraints: new RouteValueDictionary(new { controller = "pazza|pizza" }));
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { controller = "pizza", action = "calda", id = 1 }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("pizza/calda/1");
        }
Exemple #8
0
        public void WhenHostMatchThenCreateAbsolutePathWithSchemeFromContext()
        {
            var context        = "https://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{host}.com/{controller}");
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { host = "acme", controller = "pizza" }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("https://acme.com/pizza");
        }
Exemple #9
0
        public void WhenHostMatchThenCreateAbsolutePathWithSchemeFromContext()
        {
            var context        = "https://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("http://{host}.com/{controller}/{action}", defaults: new RouteValueDictionary(new { controller = "Home", action = "Index" }));
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { host = "acme", page = 10 }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("https://acme.com/?page=10");
        }
Exemple #10
0
        public void WhenHostAndPathMatchThenCreateAbsolutePath()
        {
            var context        = "http://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("http://{host}.com/{controller}/{action}/{id}");
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { controller = "pizza", action = "calda", id = 1, host = "acme" }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("http://acme.com/pizza/calda/1");
        }
Exemple #11
0
        public void WhenPathContainsCostantsThenCreateRelativePath()
        {
            var context        = "http://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{controller}/bubu/{id}");
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { controller = "pizza", id = 1 }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("pizza/bubu/1");
        }
Exemple #12
0
        public void WhenPathMatchCaseInsensitiveThenCreateRelativePath()
        {
            var context        = "http://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{controller}/{action}/{id}");
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { Controller = "pizza", Action = "calda", ID = 1 }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("pizza/calda/1");
        }
Exemple #13
0
        public void WhenHasDefaultsAndValuesAndContextThenDoesNotUseContextForNotRequiredParameters()
        {
            // when has default and some values are explicitly defined then use defaults and values to create the URL
            var context        = "https://something.acme.com/Super/Action/1234".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{subdomain}.acme.com/{controller}/{action}/{id}", defaults: new RouteValueDictionary(new { controller = "Home", action = "Index", id = string.Empty }));
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { controller = "Pizza" }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("https://something.acme.com/Pizza");
        }
Exemple #14
0
        public void WhenHostHasDefaultsAndValuesThenUseValues()
        {
            // when has default and some values are explicitly defined then use defaults and values to create the URL
            var context        = "https://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("http://{host}.com/{controller}/{action}", defaults: new RouteValueDictionary(new { host = "acme", controller = "Home", action = "Index" }));
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { host = "bubu" }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("https://bubu.com/");
        }
Exemple #15
0
        public void WhenHostMatchAndRouteHasDefaultsThenCreateAbsolutePathWithoutNotNeededDefaults()
        {
            // when has default and values are not explicitly defined then does not use those values to create the URL
            var context        = "https://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("http://{host}.com/{controller}/{action}", defaults: new RouteValueDictionary(new { controller = "Home", action = "Index" }));
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { host = "acme" }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("https://acme.com/");
        }
Exemple #16
0
        public void WhenMatchRouteContainsDataTokensThenCopyDataTokens()
        {
            var context        = "http://acme.com".AsUri().ToHttpContext();
            var requestContext = new RequestContext(context, new RouteData());

            var route       = new AbsoluteRoute("{controller}/{action}/{id}", dataTokens: new RouteValueDictionary(new { a = 1, b = 2 }));
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { controller = "pizza", action = "calda", id = 1 }));
            var tokens      = virtualPath.DataTokens;

            tokens.Should().Not.Be.Null();
            tokens["a"].Should().Be(1);
            tokens["b"].Should().Be(2);
        }
Exemple #17
0
        public void WhenPathMatchThenOverrideValuesInRouteData()
        {
            var context   = "http://acme.com/pizza/calda/1".AsUri().ToHttpContext();
            var routeData = new RouteData();

            routeData.Values.Add("controller", "pizza");
            var requestContext = new RequestContext(context, routeData);

            var route       = new AbsoluteRoute("{controller}/{action}/{id}");
            var virtualPath = route.GetVirtualPath(requestContext, new RouteValueDictionary(new { controller = "tepiso", action = "calda", id = 1 }));

            virtualPath.Route.Should().Be.SameInstanceAs(route);
            virtualPath.VirtualPath.Should().Be("tepiso/calda/1");
        }