diff --git a/src/WireMock.Net.Minimal/Matchers/FormUrlEncodedMatcher.cs b/src/WireMock.Net.Minimal/Matchers/FormUrlEncodedMatcher.cs index 02ef334e..3da45eff 100644 --- a/src/WireMock.Net.Minimal/Matchers/FormUrlEncodedMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/FormUrlEncodedMatcher.cs @@ -117,7 +117,7 @@ public class FormUrlEncodedMatcher : IStringMatcher, IIgnoreCaseMatcher var matches = GetMatches(inputNameValueCollection); var score = MatchScores.ToScore(matches, MatchOperator); - return MatchResult.From(Name, score); + return MatchResult.From(Name, MatchBehaviourHelper.Convert(MatchBehaviour, score)); } private List GetMatches(IDictionary> inputNameValueCollection) diff --git a/src/WireMock.Net.Shared/Matchers/MatchScores.cs b/src/WireMock.Net.Shared/Matchers/MatchScores.cs index 3db47cec..a5077be1 100644 --- a/src/WireMock.Net.Shared/Matchers/MatchScores.cs +++ b/src/WireMock.Net.Shared/Matchers/MatchScores.cs @@ -55,7 +55,7 @@ public static class MatchScores /// The values. /// The . /// average score - public static double ToScore(IEnumerable values, MatchOperator matchOperator) + public static double ToScore(IReadOnlyList values, MatchOperator matchOperator) { return ToScore(values.Select(ToScore).ToArray(), matchOperator); } @@ -66,9 +66,9 @@ public static class MatchScores /// The values. /// /// average score - public static double ToScore(IEnumerable values, MatchOperator matchOperator) + public static double ToScore(IReadOnlyList values, MatchOperator matchOperator) { - if (!values.Any()) + if (values.Count == 0) { return Mismatch; } diff --git a/test/WireMock.Net.Tests/Matchers/FormUrlEncodedMatcherTests.cs b/test/WireMock.Net.Tests/Matchers/FormUrlEncodedMatcherTests.cs index e4cfad9c..1f3fdeda 100644 --- a/test/WireMock.Net.Tests/Matchers/FormUrlEncodedMatcherTests.cs +++ b/test/WireMock.Net.Tests/Matchers/FormUrlEncodedMatcherTests.cs @@ -33,7 +33,7 @@ public class FormUrlEncodedMatcherTest public async Task FormUrlEncodedMatcher_IsMatch_Single_Or(bool expected, params string[] patterns) { // Arrange - var content = new FormUrlEncodedContent( + using var content = new FormUrlEncodedContent( [ new KeyValuePair("name", "John Doe"), new KeyValuePair("email", "johndoe@example.com") @@ -72,7 +72,7 @@ public class FormUrlEncodedMatcherTest public async Task FormUrlEncodedMatcher_IsMatch_Multiple_Or(bool expected, params string[] patterns) { // Arrange - var content = new FormUrlEncodedContent( + using var content = new FormUrlEncodedContent( [ new KeyValuePair("name", "John Doe"), new KeyValuePair("name", "Stef"), @@ -112,7 +112,7 @@ public class FormUrlEncodedMatcherTest public async Task FormUrlEncodedMatcher_IsMatch_Single_And(bool expected, params string[] patterns) { // Arrange - var content = new FormUrlEncodedContent( + using var content = new FormUrlEncodedContent( [ new KeyValuePair("name", "John Doe"), new KeyValuePair("email", "johndoe@example.com") @@ -151,7 +151,7 @@ public class FormUrlEncodedMatcherTest public async Task FormUrlEncodedMatcher_IsMatch_Multiple_And(bool expected, params string[] patterns) { // Arrange - var content = new FormUrlEncodedContent( + using var content = new FormUrlEncodedContent( [ new KeyValuePair("name", "John Doe"), new KeyValuePair("name", "Stef"), @@ -172,7 +172,7 @@ public class FormUrlEncodedMatcherTest public async Task FormUrlEncodedMatcher_IsMatch_And_MatchAllProperties_MissingRequiredKey_ShouldNotMatch() { // Arrange - var content = new FormUrlEncodedContent( + using var content = new FormUrlEncodedContent( [ new KeyValuePair("name", "John Doe"), new KeyValuePair("name", "Stef"), @@ -194,7 +194,7 @@ public class FormUrlEncodedMatcherTest public async Task FormUrlEncodedMatcher_IsMatch_And_MatchAllProperties_ConflictingEmailPatterns_ShouldNotMatch() { // Arrange - var content = new FormUrlEncodedContent( + using var content = new FormUrlEncodedContent( [ new KeyValuePair("name", "John Doe"), new KeyValuePair("name", "Stef"), diff --git a/test/WireMock.Net.Tests/WireMockServerTests.WithBody.cs b/test/WireMock.Net.Tests/WireMockServerTests.WithBody.cs index ebc01e22..cdd36eae 100644 --- a/test/WireMock.Net.Tests/WireMockServerTests.WithBody.cs +++ b/test/WireMock.Net.Tests/WireMockServerTests.WithBody.cs @@ -411,7 +411,7 @@ public partial class WireMockServerTests ); // Act - var content = new FormUrlEncodedContent( + using var content = new FormUrlEncodedContent( [ new KeyValuePair("name", "John Doe"), new KeyValuePair("email", "johndoe@example.com") @@ -429,7 +429,7 @@ public partial class WireMockServerTests public async Task WireMockServer_WithBodyAsFormUrlEncoded_Using_PostAsync_And_WithFormUrlEncodedMatcher() { // Arrange - var matcher = new FormUrlEncodedMatcher(["email=johndoe@example.com", "name=John Doe"]); + var matcher = new FormUrlEncodedMatcher(["email=johndoe@example.com", "name=John*"]); using var server = WireMockServer.Start(); server.Given( Request.Create() @@ -454,7 +454,7 @@ public partial class WireMockServerTests ); // Act 1 - var contentOrdered = new FormUrlEncodedContent( + using var contentOrdered = new FormUrlEncodedContent( [ new KeyValuePair("name", "John Doe"), new KeyValuePair("email", "johndoe@example.com") @@ -468,7 +468,7 @@ public partial class WireMockServerTests // Act 2 - var contentUnordered = new FormUrlEncodedContent( + using var contentUnordered = new FormUrlEncodedContent( [ new KeyValuePair("email", "johndoe@example.com"), new KeyValuePair("name", "John Doe"), @@ -476,7 +476,6 @@ public partial class WireMockServerTests var responseUnordered = await new HttpClient() .PostAsync($"{server.Url}/bar", contentUnordered, _ct) ; - // Assert 2 responseUnordered.StatusCode.Should().Be(HttpStatusCode.OK);