package de.juplo.demos.pact;
import au.com.dius.pact.consumer.MockServer;
-import au.com.dius.pact.consumer.dsl.PactDslJsonBody;
-import au.com.dius.pact.consumer.dsl.PactDslWithProvider;
+import au.com.dius.pact.consumer.dsl.*;
import au.com.dius.pact.consumer.junit5.PactConsumerTestExt;
import au.com.dius.pact.consumer.junit5.PactTestFor;
import au.com.dius.pact.core.model.RequestResponsePact;
@Pact(consumer="SpringConsumer")
public RequestResponsePact getOrders(PactDslWithProvider builder)
{
- PactDslJsonBody body = new PactDslJsonBody()
- .stringType("name")
- .booleanType("happy")
- .hexValue("hexCode")
- .id()
- .ipAddress("localAddress")
- .numberValue("age", 100);
return builder
.uponReceiving("get all orders")
.path("/orders")
.willRespondWith()
.status(200)
.headers(Map.of("Content-Type", "application/vnd.siren+json"))
- .body(body)
+ .body(LambdaDsl.newJsonBody(body ->
+ {
+ body.array("entities", entities ->
+ {
+ body.arrayContaining("actions", actions ->
+ {
+ actions.object(object ->
+ {
+ object.stringType("name","update");
+ object.stringType("method", "PUT");
+ object.matchUrl2("href", Matchers.regexp("\\d+", "1234"));
+ });
+ });
+ });
+ }).build())
.toPact();
}