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