diff --git a/src/WireMock.Net/Matchers/Request/RequestMessageBodyMatcher.cs b/src/WireMock.Net/Matchers/Request/RequestMessageBodyMatcher.cs index 36d79009..f5e13047 100644 --- a/src/WireMock.Net/Matchers/Request/RequestMessageBodyMatcher.cs +++ b/src/WireMock.Net/Matchers/Request/RequestMessageBodyMatcher.cs @@ -104,7 +104,7 @@ public class RequestMessageBodyMatcher : IRequestMatcher /// Initializes a new instance of the class. /// /// The function. - public RequestMessageBodyMatcher(Func func) + public RequestMessageBodyMatcher(Func func) { BodyDataFunc = Guard.NotNull(func); } diff --git a/test/WireMock.Net.Tests/RequestMatchers/RequestMessageParamMatcherTests.cs b/test/WireMock.Net.Tests/RequestMatchers/RequestMessageParamMatcherTests.cs index 048040e6..cd9dcd4d 100644 --- a/test/WireMock.Net.Tests/RequestMatchers/RequestMessageParamMatcherTests.cs +++ b/test/WireMock.Net.Tests/RequestMatchers/RequestMessageParamMatcherTests.cs @@ -1,7 +1,9 @@ +using FluentAssertions; using NFluent; using WireMock.Matchers; using WireMock.Matchers.Request; using WireMock.Models; +using WireMock.Owin; using Xunit; namespace WireMock.Net.Tests.RequestMatchers @@ -172,5 +174,25 @@ namespace WireMock.Net.Tests.RequestMatchers // Assert Check.That(score).IsEqualTo(1.0d); } + + // Issue #849 + [Fact] + public void RequestMessageParamMatcher_With1ParamContainingComma_Using_QueryParameterMultipleValueSupport_NoComma() + { + // Assign + var options = new WireMockMiddlewareOptions + { + QueryParameterMultipleValueSupport = QueryParameterMultipleValueSupport.NoComma + }; + var requestMessage = new RequestMessage(options, new UrlDetails("http://localhostquery=SELECT id, value FROM table WHERE id = 1&test=42"), "GET", "127.0.0.1"); + var matcher = new RequestMessageParamMatcher(MatchBehaviour.AcceptOnMatch, "query", false, "SELECT id, value FROM table WHERE id = 1"); + + // Act + var result = new RequestMatchResult(); + double score = matcher.GetMatchingScore(requestMessage, result); + + // Assert + score.Should().Be(1.0); + } } } \ No newline at end of file diff --git a/test/WireMock.Net.Tests/Util/QueryStringParserTests.cs b/test/WireMock.Net.Tests/Util/QueryStringParserTests.cs index c273c297..1d9d8fdd 100644 --- a/test/WireMock.Net.Tests/Util/QueryStringParserTests.cs +++ b/test/WireMock.Net.Tests/Util/QueryStringParserTests.cs @@ -274,7 +274,7 @@ public class QueryStringParserTests } [Fact] - public void Parse_With1ParamContainingSpacesAndEqualSign() + public void Parse_With1ParamContainingSpacesSingleQuoteAndEqualSign() { // Assign string query = "?q=SELECT Id from User where username='user@gmail.com'"; @@ -287,6 +287,23 @@ public class QueryStringParserTests result["q"].Should().Equal(new WireMockList("SELECT Id from User where username='user@gmail.com'")); } + + // Issue #849 + [Fact] + public void Parse_With1ParamContainingComma_Using_QueryParameterMultipleValueSupport_NoComma() + { + // Assign + string query = "?query=SELECT id, value FROM table WHERE id = 1&test=42"; + + // Act + var result = QueryStringParser.Parse(query, QueryParameterMultipleValueSupport.NoComma); + + // Assert + result.Count.Should().Be(2); + result["query"].Should().Equal(new WireMockList("SELECT id, value FROM table WHERE id = 1")); + result["test"].Should().Equal(new WireMockList("42")); + } + [Fact] public void Parse_WithComplex() {