fix: Asserted, that `ChatHome` acts, as expected, if asked for a `ChatRoom`
[demos/kafka/chat] / src / test / java / de / juplo / kafka / chat / backend / domain / ChatHomeTest.java
1 package de.juplo.kafka.chat.backend.domain;
2
3 import org.junit.jupiter.api.DisplayName;
4 import org.junit.jupiter.api.Test;
5 import reactor.core.publisher.Flux;
6 import reactor.core.publisher.Mono;
7
8 import java.time.Clock;
9 import java.util.UUID;
10
11 import static org.mockito.Mockito.mock;
12 import static pl.rzrz.assertj.reactor.Assertions.assertThat;
13
14
15 public class ChatHomeTest
16 {
17   @Test
18   @DisplayName("Assert chatroom is delivered, if it exists")
19   void testGetExistingChatroom()
20   {
21     // Given
22     ChatHomeService chatHomeService = mock(ChatHomeService.class);
23     ChatRoomService chatRoomService = mock(ChatRoomService.class);
24     UUID chatroomId = UUID.randomUUID();
25     ChatRoom chatRoom = new ChatRoom(chatroomId, "Foo", Clock.systemDefaultZone(), chatRoomService, 8);
26     ChatHome chatHome = new ChatHome(chatHomeService, Flux.just(chatRoom));
27
28     // When
29     Mono<ChatRoom> mono = chatHome.getChatroom(chatroomId);
30
31     // Then
32     assertThat(mono).emitsExactly(chatRoom);
33   }
34
35   @Test
36   @DisplayName("Assert UnknownChatroomException is thrown, if chatroom does not exist")
37   void testGetNonExistentChatroom()
38   {
39     // Given
40     ChatHomeService chatHomeService = mock(ChatHomeService.class);
41     ChatHome chatHome = new ChatHome(chatHomeService, Flux.empty());
42
43     // When
44     Mono<ChatRoom> mono = chatHome.getChatroom(UUID.randomUUID());
45
46     // Then
47     assertThat(mono).sendsError();
48   }
49 }