X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2FAbstractConfigurationIT.java;h=00734f2698183181e32bfd802170b80bba0b0f90;hb=24e2917e5580e2ac2f5f9268082aa6b540b2268e;hp=c424b294e5bbcbc40a926233deaad1d9a69e32e3;hpb=daca33d027e4c0d036fc2aa7c3d9b2120f3ad98a;p=demos%2Fkafka%2Fchat diff --git a/src/test/java/de/juplo/kafka/chat/backend/AbstractConfigurationIT.java b/src/test/java/de/juplo/kafka/chat/backend/AbstractConfigurationIT.java index c424b294..00734f26 100644 --- a/src/test/java/de/juplo/kafka/chat/backend/AbstractConfigurationIT.java +++ b/src/test/java/de/juplo/kafka/chat/backend/AbstractConfigurationIT.java @@ -10,6 +10,8 @@ import org.testcontainers.shaded.org.awaitility.Awaitility; import java.time.Duration; +import static org.hamcrest.Matchers.endsWith; + public abstract class AbstractConfigurationIT { @@ -18,10 +20,13 @@ public abstract class AbstractConfigurationIT @Autowired WebTestClient webTestClient; + @Test @DisplayName("The app starts, the data is restored and accessible") - void test() + void testAppStartsDataIsRestoredAndAccessible() { + String chatRoomId = "5c73531c-6fc4-426c-adcb-afc5c140a0f7"; + Awaitility .await() .atMost(Duration.ofSeconds(15)) @@ -29,13 +34,17 @@ public abstract class AbstractConfigurationIT { webTestClient .get() - .uri("http://localhost:{port}/actuator/health", port) + .uri( + "http://localhost:{port}/actuator/health", + port) .exchange() .expectStatus().isOk() .expectBody().jsonPath("$.status").isEqualTo("UP"); webTestClient .get() - .uri("http://localhost:{port}/list", port) + .uri( + "http://localhost:{port}/list", + port) .accept(MediaType.APPLICATION_JSON) .exchange() .expectStatus().isOk() @@ -44,25 +53,62 @@ public abstract class AbstractConfigurationIT .jsonPath("$[0].name").isEqualTo("FOO"); webTestClient .get() - .uri("http://localhost:{port}/5c73531c-6fc4-426c-adcb-afc5c140a0f7", port) + .uri( + "http://localhost:{port}/{chatRoomId}", + port, + chatRoomId) .accept(MediaType.APPLICATION_JSON) .exchange() .expectStatus().isOk() .expectBody().jsonPath("$.name").isEqualTo("FOO"); webTestClient .get() - .uri("http://localhost:{port}/5c73531c-6fc4-426c-adcb-afc5c140a0f7/ute/1", port) + .uri( + "http://localhost:{port}/{chatRoomId}/ute/1", + port, + chatRoomId) .accept(MediaType.APPLICATION_JSON) .exchange() .expectStatus().isOk() .expectBody().jsonPath("$.text").isEqualTo("Ich bin Ute..."); webTestClient .get() - .uri("http://localhost:{port}/5c73531c-6fc4-426c-adcb-afc5c140a0f7/peter/1", port) + .uri( + "http://localhost:{port}/{chatRoomId}/peter/1", + port, + chatRoomId) .accept(MediaType.APPLICATION_JSON) .exchange() .expectStatus().isOk() .expectBody().jsonPath("$.text").isEqualTo("Hallo, ich heiße Peter!"); }); } + + @Test + @DisplayName("A PUT-message for a non-existent chat-room yields 404 NOT FOUND") + void testNotFoundForPutMessageToNonExistentChatRoom() + { + String otherChatRoomId = "7f59ec77-832e-4a17-8d22-55ef46242c17"; + + Awaitility + .await() + .atMost(Duration.ofSeconds(15)) + .untilAsserted(() -> + { + webTestClient + .put() + .uri( + "http://localhost:{port}/{chatRoomId}/otto/66", + port, + otherChatRoomId) + .contentType(MediaType.TEXT_PLAIN) + .accept(MediaType.APPLICATION_JSON) + .bodyValue("The devil rules route 66") + .exchange() + .expectStatus().isNotFound() + .expectBody() + .jsonPath("$.type").value(endsWith("/problem/unknown-chatroom")) + .jsonPath("$.chatroomId").isEqualTo(otherChatRoomId); + }); + } }