X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fdomain%2FChatHomeTest.java;h=5b50314f78de7499ac97d2200f919f9d6d5cec36;hb=f7c3b95145be5e4a0c6d0139ead7ca755b0fbdff;hp=2eeca4076da4406cb77b9636c3815d288fb01968;hpb=9d61871563f4be4850cebca4fad0545d504522c3;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 2eeca407..5b50314f 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 @@ -2,41 +2,42 @@ package de.juplo.kafka.chat.backend.domain; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +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.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; 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); - ChatRoom chatRoom = new ChatRoom( - UUID.randomUUID(), - "Foo", - 0, - Clock.systemDefaultZone(), - mock(ChatRoomService.class), - 8); - when(chatHomeService.getChatRoom(anyInt(), any(UUID.class))).thenReturn(Mono.just(chatRoom)); - ChatHome chatHome = new ChatHome(chatHomeService, 0); + UUID chatRoomId = UUID.fromString("5c73531c-6fc4-426c-adcb-afc5c140a0f7"); // When - Mono mono = chatHome.getChatRoom(chatRoom.getId()); + 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 @@ -44,14 +45,22 @@ public class ChatHomeTest void testGetNonExistentChatroom() { // Given - ChatHomeService chatHomeService = mock(ChatHomeService.class); - when(chatHomeService.getChatRoom(anyInt(), any(UUID.class))).thenReturn(Mono.empty()); - ChatHome chatHome = new ChatHome(chatHomeService, 0); + 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); + }); } }