Exemplo n.º 1
0
        public void BuildHttpRoute_ChainedConstraints()
        {
            IHttpRoute route = BuildRoute(@"hello/{param:regex(\d+):regex(\w+)}");

            Assert.Equal("hello/{param}", route.RouteTemplate);

            Assert.IsType <CompoundHttpRouteConstraint>(route.Constraints["param"]);
            CompoundHttpRouteConstraint constraint = (CompoundHttpRouteConstraint)route.Constraints["param"];

            Assert.Equal(@"\d+", ((RegexHttpRouteConstraint)constraint.Constraints.ElementAt(0)).Pattern);
            Assert.Equal(@"\w+", ((RegexHttpRouteConstraint)constraint.Constraints.ElementAt(1)).Pattern);
        }
Exemplo n.º 2
0
        public void BuildHttpRoute_ConstraintsDefaultsAndOptionalsInMultipleSections()
        {
            IHttpRoute route = BuildRoute(@"some/url-{p1:alpha:length(3)=hello}/{p2=abc}/{p3?}");

            Assert.Equal("some/url-{p1}/{p2}/{p3}", route.RouteTemplate);

            Assert.Equal("hello", route.Defaults["p1"]);
            Assert.Equal("abc", route.Defaults["p2"]);
            Assert.Equal(RouteParameter.Optional, route.Defaults["p3"]);

            Assert.IsType <CompoundHttpRouteConstraint>(route.Constraints["p1"]);
            CompoundHttpRouteConstraint constraint = (CompoundHttpRouteConstraint)route.Constraints["p1"];

            Assert.IsType <AlphaHttpRouteConstraint>(constraint.Constraints.ElementAt(0));
            Assert.IsType <LengthHttpRouteConstraint>(constraint.Constraints.ElementAt(1));
        }