From 6573a6b85a088bd5c9c68dc3a78d581e13a09fa7 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Tue, 19 Nov 2024 17:51:07 +0100 Subject: [PATCH 1/2] wip --- .../Matchers/JsonPartialMatcherTests.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/WireMock.Net.Tests/Matchers/JsonPartialMatcherTests.cs b/test/WireMock.Net.Tests/Matchers/JsonPartialMatcherTests.cs index 0b3ff78f..7b3802d1 100644 --- a/test/WireMock.Net.Tests/Matchers/JsonPartialMatcherTests.cs +++ b/test/WireMock.Net.Tests/Matchers/JsonPartialMatcherTests.cs @@ -293,6 +293,23 @@ public void JsonPartialMatcher_IsMatch_JObjectAsString() Assert.Equal(1.0, match); } + [Fact] + public void JsonPartialMatcher_IsMatch_JObjectAsStringWithDottedPropertyName() + { + // Assign + var matcher = new JsonPartialMatcher("{ \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\" : \"Test\" }"); + + // Act + var jObject = new JObject + { + { "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", new JValue("Test") } + }; + var match = matcher.IsMatch(jObject).Score; + + // Assert + Assert.Equal(1.0, match); + } + [Fact] public void JsonPartialMatcher_IsMatch_GuidAsString() { From e9862b317692d3d76993c8490b53c1d0453bcfe4 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Thu, 5 Dec 2024 15:23:07 +0100 Subject: [PATCH 2/2] fix --- src/WireMock.Net/Matchers/AbstractJsonPartialMatcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/WireMock.Net/Matchers/AbstractJsonPartialMatcher.cs b/src/WireMock.Net/Matchers/AbstractJsonPartialMatcher.cs index f3449458..234c6a85 100644 --- a/src/WireMock.Net/Matchers/AbstractJsonPartialMatcher.cs +++ b/src/WireMock.Net/Matchers/AbstractJsonPartialMatcher.cs @@ -82,7 +82,7 @@ protected override bool IsMatch(JToken value, JToken? input) case JTokenType.Object: var nestedValues = value.ToObject>(); return nestedValues?.Any() != true || - nestedValues.All(pair => IsMatch(pair.Value, input.SelectToken(pair.Key))); + nestedValues.All(pair => IsMatch(pair.Value, input.SelectToken(pair.Key) ?? input[pair.Key])); // First try to select based on JPath expression, else just get the value. case JTokenType.Array: var valuesArray = value.ToObject();