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()
{