]> juplo.de Git - demos/pact/commitdiff
WIP
authorKai Moritz <kai@juplo.de>
Sat, 13 Mar 2021 15:13:42 +0000 (16:13 +0100)
committerKai Moritz <kai@juplo.de>
Sat, 13 Mar 2021 15:13:42 +0000 (16:13 +0100)
consumer/src/main/java/de/juplo/demos/consumer/adapter/RemoteUsersServiceConsumer.java
consumer/src/main/java/de/juplo/demos/consumer/domain/UsersService.java
consumer/src/test/java/de/juplo/demos/consumer/adapter/RemoteUsersServiceConsumerIT.java
pom.xml

index fd09ddc7204783a6cc4b6eda4594f0a1378a5a6a..d47283c7d03de068545204373a1c3e75d59f6067 100644 (file)
@@ -1,7 +1,7 @@
 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;
@@ -12,7 +12,7 @@ import java.util.UUID;
 
 
 @RequiredArgsConstructor
-public class RemoteUsersServiceConsumer implements UserService
+public class RemoteUsersServiceConsumer implements UsersService
 {
   private String uriTemplate;
   private RestTemplate restTemplate;
index b65f4ebb382b81f1b58aefef1bae10edda931983..dc82975f5213f114ba8ddd8c4ad6b7419d82ada9 100644 (file)
@@ -4,7 +4,7 @@ import java.util.Optional;
 import java.util.UUID;
 
 
-public interface UserService
+public interface UsersService
 {
   Optional<User> getUser(UUID id);
 }
index 12ce6c97fa021054ad990df5d8db9a7239555e1d..ee8bd61e55a6331ae8a37d95a1883dce296e187f 100644 (file)
@@ -1,7 +1,9 @@
 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;
 
 
@@ -9,5 +11,22 @@ 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();
+  }
 }
diff --git a/pom.xml b/pom.xml
index b365df01656eee072b83c223cb77fab781ba4d89..cefbc41b68dfe1a87d033d69566cc3702bf1ee94 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
        <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>