public void WhenUseDataTokensThenSetValue() { var value = new RouteValueDictionary(); var route = new AbsoluteRoute("{controller}/{action}/{id}", dataTokens: value); route.DataTokens.Should().Be.SameInstanceAs(value); }
public void WhenUseConstraintsThenSetValue() { var value = new RouteValueDictionary(); var route = new AbsoluteRoute("{controller}/{action}/{id}", constraints: value); route.Constraints.Should().Be.SameInstanceAs(value); }
public void WhenUrlPatternHasValuesThenSetValue() { string pattern = "{controller}/{action}/{id}"; var route = new AbsoluteRoute(pattern); route.UrlPattern.Should().Be(pattern); }
public void WhenNoMatchThenNull() { var route = new AbsoluteRoute("fixedvalue/{action}/{id}"); var context = "http://acme.com/pizza".AsUri().ToHttpContext(); route.GetRouteData(context).Should().Be.Null(); }
public void WhenUseRouteHandlerThenSetValue() { string pattern = "{controller}/{action}/{id}"; var stopRoutingHandler = new StopRoutingHandler(); var route = new AbsoluteRoute(pattern, routeHandler: stopRoutingHandler); route.RouteHandler.Should().Be(stopRoutingHandler); }
public void WhenMatchThenAssignRoute() { var route = new AbsoluteRoute("{controller}/{action}/{id}"); var context = "http://acme.com/pizza/calda/1".AsUri().ToHttpContext(); var routedata = route.GetRouteData(context); routedata.Route.Should().Be.SameInstanceAs(route); }
public void WhenNoMatchWithQueryStringThenNull() { var route = new AbsoluteRoute("http://{*host}/{category}"); var context = "http://acme.com/?p=5".AsUri().ToHttpContext(); var routedata = route.GetRouteData(context); routedata.Should().Be.Null(); }
public void WhenNoMatchByConstraintsThenNull() { var route = new AbsoluteRoute("{controller}/{action}/{id}", constraints: new RouteValueDictionary(new { controller = "nomatch" })); var context = "http://acme.com/pizza/calda/1".AsUri().ToHttpContext(); var routedata = route.GetRouteData(context); routedata.Should().Be.Null(); }
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/"); }
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(); }
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(); }
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/"); }
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(); }
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"); }
public void WhenMatchThenCopyDataTokens() { var route = new AbsoluteRoute("{controller}/{action}/{id}", dataTokens: new RouteValueDictionary(new { a = 1, b = 2 })); var context = "http://acme.com/pizza/calda/1".AsUri().ToHttpContext(); var routedata = route.GetRouteData(context); var tokens = routedata.DataTokens; tokens.Should().Not.Be.Null(); tokens["a"].Should().Be(1); tokens["b"].Should().Be(2); }
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"); }
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"); }
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"); }
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"); }
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¤tPage=2"); }
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"); }
public void WhenMatchThenAssignValues() { var route = new AbsoluteRoute("{controller}/{action}/{id}", constraints: new RouteValueDictionary(new { controller = "pazza|pizza" })); var context = "http://acme.com/pizza/calda/1".AsUri().ToHttpContext(); var routedata = route.GetRouteData(context); routedata.Values.Should().Not.Be.Null(); routedata.Values["controller"].Should().Be("pizza"); routedata.Values["action"].Should().Be("calda"); routedata.Values["id"].Should().Be("1"); }
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/"); }
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/"); }
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"); }
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); }
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"); }
internal static IAbsoluteFilePath AsFilePath(this string pathString, AbsoluteRoute routingBase) { return(AsFilePath(pathString, () => routingBase.GetFilePath(pathString), ext => routingBase.GetFilePathWithExtension(pathString, ext))); }