Skip to content

Request Matching JsonPartialWildcardMatcher

Stef Heyenrath edited this page Jan 26, 2022 · 2 revisions

JSON (JsonPartialWildcardMatcher)

Based on JsonPartialMatcher but with wildcard (*) support.

Example: Matcher value {"test":"*"} matches input {"test":"abc" }, but also input {"test":"test" } is matched.

C# option 1

var server = WireMockServer.Start();
server
    .Given(Request
    .Create()
    .WithPath("/jsonpartialmatcher1")
    .WithBody(new JsonPartialWildcardMatcher("{ \"test\": \"*\" }"))
    .UsingPost())
    .WithGuid("debaf408-3b23-4c04-9d18-ef1c020e79f2")
    .RespondWith(Response.Create().WithBody(@"{ ""result"": ""jsonpartialbodytest1"" }"));

JSON Mapping option 1

{
    "Guid": "debaf408-3b23-4c04-9d18-ef1c020e79f2",
    "Request": {
        "Path": {
            "Matchers": [
                {
                    "Name": "WilcardMatcher",
                    "Pattern": "/jsonpartialmatcher1"
                }
            ]
        },
        "Methods": [
            "post"
        ],
        "Body": {
            "Matcher": {
                "Name": "JsonPartialWildcardMatcher",
                "Pattern": "{ \"test\": \"*\" }"
            }
        }
    },
    "Response": {
        "StatusCode": 200,
        "Body": "{ \"result\": \"jsonpartialbodytest1\" }",
        "UseTransformer": false
    }
}
// matching
{ "test": "abc" }

// also matching
{ "test": "test" }

// and also matching
{ "test": "abc", "extra": "?" }

IgnoreCase

It's also possible to use set IgnoreCase to true, this means that the PropertNames and PropertyValues will be matched regarding any case. Same logic as the normal JsonMatcher.

Clone this wiki locally