Updated Request Matching JsonPartialMatcher (markdown)

Stef Heyenrath
2022-07-24 16:01:44 +02:00
parent 09115b47a3
commit f01edc56e9

@@ -9,17 +9,17 @@ Matcher value
```csharp
var server = WireMockServer.Start();
server
.Given(Request
.Given(Request
.Create()
.WithPath("/jsonpartialmatcher1")
.WithBody(new JsonPartialMatcher("{ \"test\": \"abc\" }"))
.UsingPost())
.WithGuid("debaf408-3b23-4c04-9d18-ef1c020e79f2")
.RespondWith(Response.Create().WithBody(@"{ ""result"": ""jsonpartialbodytest1"" }"));
.WithPath("/jsonpartialmatcher1")
.WithBody(new JsonPartialMatcher("{ \"test\": \"abc\" }"))
.UsingPost())
.WithGuid("debaf408-3b23-4c04-9d18-ef1c020e79f2")
.RespondWith(Response.Create().WithBody(@"{ ""result"": ""jsonpartialbodytest1"" }"));
```
#### JSON Mapping option 1
``` js
``` json
{
"Guid": "debaf408-3b23-4c04-9d18-ef1c020e79f2",
"Request": {
@@ -59,4 +59,51 @@ server
#### 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.
Same logic as the normal JsonMatcher.
#### Use Regex
It's possible to add a property `Regex` with the value `true`, with this option set, PropertyValues are matched using a specified regular expression.
Example for C# when you want to match the `id` for any number.
```csharp
var server = WireMockServer.Start();
server
.Given(Request
.Create()
.WithPath("/jsonpartialmatcher1")
.WithBody(new JsonPartialMatcher("{ \"id\": \"^\\d+$\" }", false, false, true))
.UsingPost())
.WithGuid("debaf408-3b23-4c04-9d18-ef1c020e79f2")
.RespondWith(Response.Create().WithBody(@"{ ""result"": ""jsonpartialbodytest1"" }"));
```
Or in JSON mapping:
``` json
{
"Guid": "debaf408-3b23-4c04-9d18-ef1c020e79f2",
"Request": {
"Methods": [
"post"
],
"Body": {
"Matcher": {
"Name": "JsonPartialWildcardMatcher",
"Regex": true, // <--- add this property
"Pattern": {
"applicationId": "*",
"currency": "EUR",
"price": "^\\d*$", // <--- use regex
"externalId": "*",
"transactionDescription": "*",
},
"IgnoreCase": false
}
}
},
"Response": {
"StatusCode": 200,
"Body": "{ \"result\": \"jsonpartialbodytest1-with-regex\" }",
"UseTransformer": false
}
}
```