Add support for Matcher.Pattern in Pact Body mapping (#789)

* Add support for Matcher.Pattern in Pact Body mapping

* SavePact_Get_Request_And_Response_WithNullBody
This commit is contained in:
Stef Heyenrath
2022-08-15 09:28:16 +02:00
committed by GitHub
parent d2a1d0f069
commit e2bd56531d
3 changed files with 75 additions and 13 deletions

View File

@@ -101,6 +101,58 @@ public class PactTests
pact.Interactions[0].Response.Body.Should().Be("test");
}
[Fact]
public void SavePact_Get_Request_And_Response_WithNullBody()
{
// Act
var server = WireMockServer.Start();
server
.Given(Request.Create()
.UsingGet()
.WithPath("/tester")
)
.RespondWith(
Response.Create()
.WithStatusCode(HttpStatusCode.OK)
);
var memoryStream = new MemoryStream();
server.SavePact(memoryStream);
var json = Encoding.UTF8.GetString(memoryStream.ToArray());
var pact = JsonConvert.DeserializeObject<WireMock.Pact.Models.V2.Pact>(json)!;
// Assert
pact.Interactions.Should().HaveCount(1);
pact.Interactions[0].Response.Body.Should().BeNull();
}
[Fact]
public void SavePact_Post_Request_WithBody_JsonPartialMatcher()
{
// Act
var server = WireMockServer.Start();
server
.Given(Request.Create()
.UsingPost()
.WithBody(new JsonPartialMatcher(@"{ ""name"": ""stef"" }"))
.WithPath("/tester")
)
.RespondWith(Response.Create());
var memoryStream = new MemoryStream();
server.SavePact(memoryStream);
var json = Encoding.UTF8.GetString(memoryStream.ToArray());
var pact = JsonConvert.DeserializeObject<WireMock.Pact.Models.V2.Pact>(json)!;
// Assert
pact.Interactions.Should().HaveCount(1);
var expectedBody = new JObject { { "name", "stef" } };
pact.Interactions[0].Request.Body.Should().BeEquivalentTo(expectedBody);
}
[Fact]
public void SavePact_Multiple_Requests()
{

View File

@@ -32,7 +32,11 @@
"Accept": "application/json"
},
"method": "POST",
"path": "/add"
"path": "/add",
"body": {
"Id": "1",
"FirstName": "Totally"
}
},
"response": {
"body": {