5b53607f423a2054218b4df27cb6c512e6ab62af
[demos/kafka/chat] / src / test / java / de / juplo / kafka / chat / backend / domain / SimpleChatHomeTest.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.Mono;
6
7 import java.time.Clock;
8 import java.util.UUID;
9
10 import static org.mockito.ArgumentMatchers.any;
11 import static org.mockito.ArgumentMatchers.anyInt;
12 import static org.mockito.Mockito.mock;
13 import static org.mockito.Mockito.when;
14 import static pl.rzrz.assertj.reactor.Assertions.assertThat;
15
16
17 public class SimpleChatHomeTest
18 {
19   @Test
20   @DisplayName("Assert chatroom is delivered, if it exists")
21   void testGetExistingChatroom()
22   {
23     // Given
24     ChatHomeService chatHomeService = mock(ChatHomeService.class);
25     ChatRoom chatRoom = new ChatRoom(
26         UUID.randomUUID(),
27         "Foo",
28         0,
29         Clock.systemDefaultZone(),
30         mock(ChatRoomService.class),
31         8);
32     when(chatHomeService.getChatRoom(anyInt(), any(UUID.class))).thenReturn(Mono.just(chatRoom));
33     SimpleChatHome chatHome = new SimpleChatHome(chatHomeService);
34
35     // When
36     Mono<ChatRoom> mono = chatHome.getChatRoom(chatRoom.getId());
37
38     // Then
39     assertThat(mono).emitsExactly(chatRoom);
40   }
41
42   @Test
43   @DisplayName("Assert UnknownChatroomException is thrown, if chatroom does not exist")
44   void testGetNonExistentChatroom()
45   {
46     // Given
47     ChatHomeService chatHomeService = mock(ChatHomeService.class);
48     when(chatHomeService.getChatRoom(anyInt(), any(UUID.class))).thenReturn(Mono.empty());
49     SimpleChatHome chatHome = new SimpleChatHome(chatHomeService);
50
51     // When
52     Mono<ChatRoom> mono = chatHome.getChatRoom(UUID.randomUUID());
53
54     // Then
55     assertThat(mono).sendsError();
56   }
57 }