X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2FAbstractConfigurationIT.java;h=452e4244bf25d0e4b6b42bb688cab30abe24d07f;hb=ab1eee218b7944a848148ed4ba0272fea9f23780;hp=41618e56c488e440f1c0cf1e3955d5d9190f8f47;hpb=e2c3774ce9f781fc48f5bcc18c4342796728d450;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 41618e56..452e4244 100644 --- a/src/test/java/de/juplo/kafka/chat/backend/AbstractConfigurationIT.java +++ b/src/test/java/de/juplo/kafka/chat/backend/AbstractConfigurationIT.java @@ -9,6 +9,7 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.http.MediaType; +import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.web.reactive.server.WebTestClient; import org.testcontainers.shaded.org.awaitility.Awaitility; @@ -22,6 +23,7 @@ import static org.hamcrest.Matchers.endsWith; @Slf4j +@DirtiesContext public abstract class AbstractConfigurationIT { final static String EXISTING_CHATROOM = "5c73531c-6fc4-426c-adcb-afc5c140a0f7"; @@ -186,28 +188,33 @@ public abstract class AbstractConfigurationIT @DisplayName("A message can be put into a newly created chat-room") void testPutMessageInNewChatRoom() throws IOException { + ChatRoomInfoTo chatRoomInfo; + do + { + // The first request creates a new chat-room + // It must be repeated, until a chat-room was created, + // that is owned by the instance + chatRoomInfo = webTestClient + .post() + .uri("http://localhost:{port}/create", port) + .contentType(MediaType.TEXT_PLAIN) + .bodyValue("bar") + .accept(MediaType.APPLICATION_JSON) + .exchange() + .returnResult(ChatRoomInfoTo.class) + .getResponseBody() + .retry(30) + .blockFirst(); + } + while(!(chatRoomInfo.getShard() == null || chatRoomInfo.getShard().intValue() == 2)); + + UUID chatRoomId = chatRoomInfo.getId(); + Awaitility .await() .atMost(Duration.ofSeconds(15)) .untilAsserted(() -> { - byte[] result = webTestClient - .post() - .uri("http://localhost:{port}/create", port) - .contentType(MediaType.TEXT_PLAIN) - .bodyValue("bar") - .accept(MediaType.APPLICATION_JSON) - .exchange() - .expectStatus().isOk() - .expectBody() - .jsonPath("$.id").exists() - .jsonPath("$.name").isEqualTo("bar") - // The hard must not be asserted, because not all implementations ar aware of it - // .jsonPath("$.shard").isEqualTo(Integer.valueOf(2)) - .returnResult() - .getResponseBody(); - ChatRoomInfoTo chatRoomInfo = objectMapper.readValue(result, ChatRoomInfoTo.class); - UUID chatRoomId = chatRoomInfo.getId(); webTestClient .put() .uri(