package de.juplo.demos.consumer.adapter;
import de.juplo.demos.consumer.domain.User;
-import de.juplo.demos.consumer.domain.UserService;
+import de.juplo.demos.consumer.domain.UsersService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@RequiredArgsConstructor
-public class RemoteUsersServiceConsumer implements UserService
+public class RemoteUsersServiceConsumer implements UsersService
{
private String uriTemplate;
private RestTemplate restTemplate;
package de.juplo.demos.consumer.adapter;
+import au.com.dius.pact.consumer.dsl.PactDslWithProvider;
import au.com.dius.pact.consumer.junit5.PactConsumerTestExt;
import au.com.dius.pact.consumer.junit5.PactTestFor;
+import au.com.dius.pact.core.model.RequestResponsePact;
import org.junit.jupiter.api.extension.ExtendWith;
@PactTestFor(providerName = "UsersProvider")
public class RemoteUsersServiceConsumerIT
{
-
+ @Pact(provider="UsersProvider", consumer="EmailServicesConsumer")
+ public RequestResponsePact createPact(PactDslWithProvider builder) {
+ return builder
+ .given("User with email pact@juplo.de exists")
+ .uponReceiving("Request for user with email pact@juplo.de")
+ .path("/get")
+ .matchQuery(
+ "email",
+ // See: https://stackoverflow.com/a/201378/247276
+ "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])",
+ "pact@juplo.de")
+ .method("GET")
+ .matchHeader("", "", "")
+ .willRespondWith()
+ .status(200)
+ .body("{\"responsetest\": true}")
+ .toPact();
+ }
}
<description>Pact-Demo based on Spring Boot</description>
<properties>
<java.version>11</java.version>
- <pact.version>4.1.0</pact.version>
+ <pact.version>4.2.2</pact.version>
</properties>
<modules>
<module>consumer</module>