public void GetVirtualPathWithNonParameterConstraintReturnsUrlWithoutQueryString() { // Arrange var context = CreateVirtualPathContext(new { p1 = "hello", p2 = "1234" }); var target = new Mock <IRouteConstraint>(); target.Setup(e => e.Match(It.IsAny <HttpContext>(), It.IsAny <IRouter>(), It.IsAny <string>(), It.IsAny <IDictionary <string, object> >(), It.IsAny <RouteDirection>())) .Returns(true) .Verifiable(); TemplateRoute r = CreateRoute( "{p1}/{p2}", new { p2 = "catchall" }, true, new RouteValueDictionary(new { p2 = target.Object })); // Act var virtualPath = r.GetVirtualPath(context); // Assert Assert.True(context.IsBound); Assert.NotNull(virtualPath); Assert.Equal("hello/1234", virtualPath); target.VerifyAll(); }
public void RouteWithCatchAllRejectsConstraints() { // Arrange var context = CreateVirtualPathContext(new { p1 = "abcd" }); TemplateRoute r = CreateRoute( "{p1}/{*p2}", new { p2 = "catchall" }, true, new RouteValueDictionary(new { p2 = "\\d{4}" })); // Act var virtualPath = r.GetVirtualPath(context); // Assert Assert.False(context.IsBound); Assert.Null(virtualPath); }
public void RouteGenerationAcceptsConstraints() { // Arrange var context = CreateVirtualPathContext(new { p1 = "hello", p2 = "1234" }); TemplateRoute r = CreateRoute( "{p1}/{p2}", new { p2 = "catchall" }, true, new RouteValueDictionary(new { p2 = "\\d{4}" })); // Act var virtualPath = r.GetVirtualPath(context); // Assert Assert.True(context.IsBound); Assert.NotNull(virtualPath); Assert.Equal("hello/1234", virtualPath); }