X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fdomain%2FChatHomeTest.java;h=6282643265a2c0a7c4ac256dc08db51ea4bbc012;hb=df207aa9a8cd349fd43785270d250a7f55593801;hp=655c1b8c8da0a576f196b8ed71874f7d78163ef9;hpb=0e6fd57b277df31ef319f47c63bc182694e46082;p=demos%2Fkafka%2Fchat diff --git a/src/test/java/de/juplo/kafka/chat/backend/domain/ChatHomeTest.java b/src/test/java/de/juplo/kafka/chat/backend/domain/ChatHomeTest.java index 655c1b8c..62826432 100644 --- a/src/test/java/de/juplo/kafka/chat/backend/domain/ChatHomeTest.java +++ b/src/test/java/de/juplo/kafka/chat/backend/domain/ChatHomeTest.java @@ -1,35 +1,45 @@ package de.juplo.kafka.chat.backend.domain; +import de.juplo.kafka.chat.backend.domain.exceptions.LoadInProgressException; +import de.juplo.kafka.chat.backend.domain.exceptions.UnknownChatroomException; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.junit.jupiter.SpringExtension; import reactor.core.publisher.Mono; +import reactor.util.retry.Retry; -import java.time.Clock; +import java.time.Duration; import java.util.UUID; -import static org.mockito.Mockito.mock; import static pl.rzrz.assertj.reactor.Assertions.assertThat; -public class ChatHomeTest +@ExtendWith(SpringExtension.class) +public abstract class ChatHomeTest { + @Autowired + ChatHome chatHome; + + @Test @DisplayName("Assert chatroom is delivered, if it exists") void testGetExistingChatroom() { // Given - ChatHomeService chatHomeService = mock(ChatHomeService.class); - ChatRoomService chatRoomService = mock(ChatRoomService.class); - UUID chatroomId = UUID.randomUUID(); - ChatRoom chatRoom = new ChatRoom(chatroomId, "Foo", Clock.systemDefaultZone(), chatRoomService, 8); - ChatHome chatHome = new ChatHome(chatHomeService, Flux.just(chatRoom)); + UUID chatRoomId = UUID.fromString("5c73531c-6fc4-426c-adcb-afc5c140a0f7"); // When - Mono mono = chatHome.getChatroom(chatroomId); + Mono mono = Mono + .defer(() -> chatHome.getChatRoomData(chatRoomId)) + .log("testGetExistingChatroom") + .retryWhen(Retry + .backoff(5, Duration.ofSeconds(1)) + .filter(throwable -> throwable instanceof LoadInProgressException)); // Then - assertThat(mono).emitsExactly(chatRoom); + assertThat(mono).emitsCount(1); } @Test @@ -37,13 +47,22 @@ public class ChatHomeTest void testGetNonExistentChatroom() { // Given - ChatHomeService chatHomeService = mock(ChatHomeService.class); - ChatHome chatHome = new ChatHome(chatHomeService, Flux.empty()); + UUID chatRoomId = UUID.fromString("7f59ec77-832e-4a17-8d22-55ef46242c17"); // When - Mono mono = chatHome.getChatroom(UUID.randomUUID()); + Mono mono = Mono + .defer(() -> chatHome.getChatRoomData(chatRoomId)) + .log("testGetNonExistentChatroom") + .retryWhen(Retry + .backoff(5, Duration.ofSeconds(1)) + .filter(throwable -> throwable instanceof LoadInProgressException)); // Then - assertThat(mono).sendsError(); + assertThat(mono).sendsError(e -> + { + assertThat(e).isInstanceOf(UnknownChatroomException.class); + UnknownChatroomException unknownChatroomException = (UnknownChatroomException) e; + assertThat(unknownChatroomException.getChatroomId()).isEqualTo(chatRoomId); + }); } }