public void Should_parse_RewriteMapSegment_and_successfully_evaluate_result() { const string expectedMapName = "apiMap"; const string expectedKey = "api.test.com"; const string expectedValue = "test.com/api"; var map = new IISRewriteMap(expectedMapName); map[expectedKey] = expectedValue; var maps = new IISRewriteMapCollection { map }; var inputString = $"{{{expectedMapName}:{{R:1}}}}"; var pattern = new InputParser(maps, false).ParseInputString(inputString, UriMatchPart.Path); Assert.Equal(1, pattern.PatternSegments.Count); var segment = pattern.PatternSegments.Single(); var rewriteMapSegment = segment as RewriteMapSegment; Assert.NotNull(rewriteMapSegment); var result = rewriteMapSegment.Evaluate(CreateTestRewriteContext(), CreateRewriteMapRuleMatch(expectedKey).BackReferences, CreateRewriteMapConditionMatch(inputString).BackReferences); Assert.Equal(expectedValue, result); }
public void Should_throw_FormatException_if_rewrite_map_not_found() { const string definedMapName = "testMap"; const string undefinedMapName = "apiMap"; var map = new IISRewriteMap(definedMapName); var maps = new IISRewriteMapCollection { map }; Assert.Throws <FormatException>(() => new InputParser(maps, false).ParseInputString($"{{{undefinedMapName}:{{R:1}}}}", UriMatchPart.Path)); }
public RewriteMapSegment(IISRewriteMap rewriteMap, Pattern pattern) { _rewriteMap = rewriteMap; _pattern = pattern; }