public void RegexInlineConstraint_IsCultureInsensitive(string culture) { if (TestPlatformHelper.IsMono) { // The Regex in Mono returns true when matching the Turkish I for the a-z range which causes the test // to fail. Tracked via #100. return; } // Arrange var constraint = new RegexInlineRouteConstraint("^([a-z]+)$"); var values = new RouteValueDictionary(new { controller = "\u0130" }); // Turkish upper-case dotted I using (new CultureReplacer(culture)) { // Act var match = constraint.Match( new DefaultHttpContext(), route: new Mock <IRouter>().Object, routeKey: "controller", values: values, routeDirection: RouteDirection.IncomingRequest); // Assert Assert.False(match); } }
public void RegexInlineConstraint_FailsIfKeyIsNotFoundInRouteValues() { // Arrange var constraint = new RegexInlineRouteConstraint("^abc$"); var values = new RouteValueDictionary(new { action = "abc" }); // Assert Assert.False(EasyMatch(constraint, "controller", values)); }
[InlineData("Abc", " abc", false)] // Missing char public void RegexInlineConstraintBuildRegexVerbatimFromInput(string routeValue, string constraintValue, bool shouldMatch) { // Arrange var constraint = new RegexInlineRouteConstraint(constraintValue); var values = new RouteValueDictionary(new { controller = routeValue }); // Assert Assert.Equal(shouldMatch, EasyMatch(constraint, "controller", values)); }
public void RegexInlineConstraint_FailsIfKeyIsNotFoundInRouteValues() { // Arrange var constraint = new RegexInlineRouteConstraint("^abc$"); var values = new RouteValueDictionary(new { action = "abc" }); // Act var match = constraint.Match( new DefaultHttpContext(), route: new Mock <IRouter>().Object, routeKey: "controller", values: values, routeDirection: RouteDirection.IncomingRequest); // Assert Assert.False(match); }
[InlineData("Abc", " abc", false)] // Missing char public void RegexInlineConstraintBuildRegexVerbatimFromInput( string routeValue, string constraintValue, bool shouldMatch) { // Arrange var constraint = new RegexInlineRouteConstraint(constraintValue); var values = new RouteValueDictionary(new { controller = routeValue }); // Act var match = constraint.Match( new DefaultHttpContext(), route: new Mock <IRouter>().Object, routeKey: "controller", values: values, routeDirection: RouteDirection.IncomingRequest); // Assert Assert.Equal(shouldMatch, match); }
public void RegexInlineConstraint_IsCultureInsensitive() { if (TestPlatformHelper.IsMono) { // The Regex in Mono returns true when matching the Turkish I for the a-z range which causes the test // to fail. Tracked via #100. return; } // Arrange var constraint = new RegexInlineRouteConstraint("^([a-z]+)$"); var values = new RouteValueDictionary(new { controller = "\u0130" }); // Turkish upper-case dotted I var currentThread = Thread.CurrentThread; var backupCulture = currentThread.CurrentCulture; bool matchInTurkish; bool matchInUsEnglish; // Act try { currentThread.CurrentCulture = new CultureInfo("tr-TR"); // Turkish culture matchInTurkish = EasyMatch(constraint, "controller", values); currentThread.CurrentCulture = new CultureInfo("en-US"); matchInUsEnglish = EasyMatch(constraint, "controller", values); } finally { currentThread.CurrentCulture = backupCulture; } // Assert Assert.False(matchInUsEnglish); // this just verifies the test Assert.False(matchInTurkish); }