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