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=3f25cedfb314f0ec50657225fe09fcb2ac967d2f;hpb=ad2750e7cc30a885119c2ef3396374d81c3806ed;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 3f25cedf..452e4244 100644 --- a/src/test/java/de/juplo/kafka/chat/backend/AbstractConfigurationIT.java +++ b/src/test/java/de/juplo/kafka/chat/backend/AbstractConfigurationIT.java @@ -3,8 +3,6 @@ package de.juplo.kafka.chat.backend; import com.fasterxml.jackson.databind.ObjectMapper; import de.juplo.kafka.chat.backend.api.ChatRoomInfoTo; import lombok.extern.slf4j.Slf4j; -import org.hamcrest.BaseMatcher; -import org.hamcrest.Description; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -190,44 +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(() -> { - // The first request creates a new chat-room - // It must be repeated, until a chat-room was created, - // that is owned by the instance - 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") - .jsonPath("$.shard").value(new BaseMatcher() { - @Override - public boolean matches(Object actual) - { - return actual == null - ? true - : actual.equals(Integer.valueOf(2)); - } - - @Override - public void describeTo(Description description) - { - description.appendText("shard has expected value 2, or is empty"); - } - }) - .returnResult() - .getResponseBody(); - ChatRoomInfoTo chatRoomInfo = objectMapper.readValue(result, ChatRoomInfoTo.class); - UUID chatRoomId = chatRoomInfo.getId(); webTestClient .put() .uri(