Updated Request Matching JsonPartialWilcardMatcher (markdown)

Stef Heyenrath
2021-10-26 22:09:26 +02:00
parent ea7287db22
commit 6ea3ea0dcd

@@ -1 +1,66 @@
.
## JSON (JsonPartialWilcardMatcher)
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
```csharp
var server = WireMockServer.Start();
server
.Given(Request
.Create()
.WithPath("/jsonpartialmatcher1")
.WithBody(new JsonPartialWilcardMatcher("{ \"test\": \"*\" }"))
.UsingPost())
.WithGuid("debaf408-3b23-4c04-9d18-ef1c020e79f2")
.RespondWith(Response.Create().WithBody(@"{ ""result"": ""jsonpartialbodytest1"" }"));
```
#### JSON Mapping option 1
``` js
{
"Guid": "debaf408-3b23-4c04-9d18-ef1c020e79f2",
"Request": {
"Path": {
"Matchers": [
{
"Name": "WilcardMatcher",
"Pattern": "/jsonpartialmatcher1"
}
]
},
"Methods": [
"post"
],
"Body": {
"Matcher": {
"Name": "JsonPartialWilcardMatcher",
"Pattern": "{ \"test\": \"*\" }"
}
}
},
"Response": {
"StatusCode": 200,
"Body": "{ \"result\": \"jsonpartialbodytest1\" }",
"UseTransformer": false
}
}
```
``` js
// 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.