From ca5056aed3cb0e074b1722ff04991c31237d581b Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Sun, 6 May 2018 10:40:42 +0200 Subject: [PATCH] RejectOnMatch (wip) --- GitReleaseNotes.txt | 2 +- .../WireMock.Net.ConsoleApplication/MainApp.cs | 1 + .../WireMock.Net.StandAlone.csproj | 2 +- src/WireMock.Net/Matchers/RegexMatcher.cs | 2 +- .../Request/RequestMessageHeaderMatcher.cs | 1 + src/WireMock.Net/Matchers/WildcardMatcher.cs | 2 +- src/WireMock.Net/WireMock.Net.csproj | 2 +- .../Matchers/ExactObjectMatcherTests.cs | 14 ++++++++++++++ .../Matchers/JsonPathMatcherTests.cs | 4 ++-- .../Matchers/RegexMatcherTests.cs | 12 ++++++++++++ 10 files changed, 35 insertions(+), 7 deletions(-) diff --git a/GitReleaseNotes.txt b/GitReleaseNotes.txt index 70081d4b..b4b12ecc 100644 --- a/GitReleaseNotes.txt +++ b/GitReleaseNotes.txt @@ -1,5 +1,5 @@ https://github.com/GitTools/GitReleaseNotes -GitReleaseNotes.exe . /OutputFile CHANGELOG.md /Version 1.0.3.16 +GitReleaseNotes.exe . /OutputFile CHANGELOG.md /Version 1.0.3.17 GitReleaseNotes.exe . /OutputFile CHANGELOG.md /allTags diff --git a/examples/WireMock.Net.ConsoleApplication/MainApp.cs b/examples/WireMock.Net.ConsoleApplication/MainApp.cs index 2d2b97aa..fc208efc 100644 --- a/examples/WireMock.Net.ConsoleApplication/MainApp.cs +++ b/examples/WireMock.Net.ConsoleApplication/MainApp.cs @@ -153,6 +153,7 @@ namespace WireMock.Net.ConsoleApplication server .Given(Request.Create() .WithPath("/reject") + .UsingGet() .WithHeader("x", "1", MatchBehaviour.RejectOnMatch) .UsingAnyMethod()) .RespondWith(Response.Create() diff --git a/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj b/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj index e8d40dde..0c462bc5 100644 --- a/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj +++ b/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj @@ -3,7 +3,7 @@ Lightweight StandAlone Http Mocking Server for .Net. WireMock.Net.StandAlone - 1.0.3.16 + 1.0.3.17 Stef Heyenrath net452;net46;netstandard1.3;netstandard2.0 true diff --git a/src/WireMock.Net/Matchers/RegexMatcher.cs b/src/WireMock.Net/Matchers/RegexMatcher.cs index 0c73e592..4947cdc4 100644 --- a/src/WireMock.Net/Matchers/RegexMatcher.cs +++ b/src/WireMock.Net/Matchers/RegexMatcher.cs @@ -96,7 +96,7 @@ namespace WireMock.Matchers } /// - public string Name => "RegexMatcher"; + public virtual string Name => "RegexMatcher"; /// public bool IgnoreCase { get; } diff --git a/src/WireMock.Net/Matchers/Request/RequestMessageHeaderMatcher.cs b/src/WireMock.Net/Matchers/Request/RequestMessageHeaderMatcher.cs index 21c21bd3..f8e16d5c 100644 --- a/src/WireMock.Net/Matchers/Request/RequestMessageHeaderMatcher.cs +++ b/src/WireMock.Net/Matchers/Request/RequestMessageHeaderMatcher.cs @@ -59,6 +59,7 @@ namespace WireMock.Matchers.Request Check.NotNull(name, nameof(name)); Check.NotNull(patterns, nameof(patterns)); + _matchBehaviour = matchBehaviour; Name = name; Matchers = patterns.Select(pattern => new WildcardMatcher(matchBehaviour, pattern, ignoreCase)).Cast().ToArray(); } diff --git a/src/WireMock.Net/Matchers/WildcardMatcher.cs b/src/WireMock.Net/Matchers/WildcardMatcher.cs index 0ceb2151..5b735f52 100644 --- a/src/WireMock.Net/Matchers/WildcardMatcher.cs +++ b/src/WireMock.Net/Matchers/WildcardMatcher.cs @@ -58,6 +58,6 @@ namespace WireMock.Matchers } /// - public new string Name => "WildcardMatcher"; + public override string Name => "WildcardMatcher"; } } \ No newline at end of file diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj index 28618f8c..00f63d1b 100644 --- a/src/WireMock.Net/WireMock.Net.csproj +++ b/src/WireMock.Net/WireMock.Net.csproj @@ -3,7 +3,7 @@ Lightweight Http Mocking Server for .Net, inspired by WireMock from the Java landscape. WireMock.Net - 1.0.3.16 + 1.0.3.17 Stef Heyenrath net452;net46;netstandard1.3;netstandard2.0 true diff --git a/test/WireMock.Net.Tests/Matchers/ExactObjectMatcherTests.cs b/test/WireMock.Net.Tests/Matchers/ExactObjectMatcherTests.cs index d6422e07..fa7cd6b4 100644 --- a/test/WireMock.Net.Tests/Matchers/ExactObjectMatcherTests.cs +++ b/test/WireMock.Net.Tests/Matchers/ExactObjectMatcherTests.cs @@ -20,6 +20,20 @@ namespace WireMock.Net.Tests.Matchers Check.That(name).Equals("ExactObjectMatcher"); } + [Fact] + public void ExactObjectMatcher_IsMatch_ByteArray() + { + // Assign + object checkValue = new byte[] { 1, 2 }; + + // Act + var matcher = new ExactObjectMatcher(new byte[] { 1, 2 }); + double result = matcher.IsMatch(checkValue); + + // Assert + Check.That(result).IsEqualTo(1.0); + } + [Fact] public void ExactObjectMatcher_IsMatch_AcceptOnMatch() { diff --git a/test/WireMock.Net.Tests/Matchers/JsonPathMatcherTests.cs b/test/WireMock.Net.Tests/Matchers/JsonPathMatcherTests.cs index 9183dd79..8d25cc1b 100644 --- a/test/WireMock.Net.Tests/Matchers/JsonPathMatcherTests.cs +++ b/test/WireMock.Net.Tests/Matchers/JsonPathMatcherTests.cs @@ -78,10 +78,10 @@ namespace WireMock.Net.Tests.Matchers public void JsonPathMatcher_IsMatch_Object_Exception_Mismatch() { // Assign - var matcher = new JsonPathMatcher("xxx"); + var matcher = new JsonPathMatcher(""); // Act - double match = matcher.IsMatch(""); + double match = matcher.IsMatch("x"); // Assert Check.That(match).IsEqualTo(0); diff --git a/test/WireMock.Net.Tests/Matchers/RegexMatcherTests.cs b/test/WireMock.Net.Tests/Matchers/RegexMatcherTests.cs index aa390cf6..6f2c7aee 100644 --- a/test/WireMock.Net.Tests/Matchers/RegexMatcherTests.cs +++ b/test/WireMock.Net.Tests/Matchers/RegexMatcherTests.cs @@ -32,6 +32,18 @@ namespace WireMock.Net.Tests.Matchers Check.That(patterns).ContainsExactly("X"); } + [Fact] + public void RegexMatcher_GetIgnoreCase() + { + // Act + bool case1 = new RegexMatcher("X").IgnoreCase; + bool case2 = new RegexMatcher("X", true).IgnoreCase; + + // Assert + Check.That(case1).IsFalse(); + Check.That(case2).IsTrue(); + } + [Fact] public void RegexMatcher_IsMatch() {