1 package de.juplo.kafka.chat.backend.persistence.inmemory;
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;
11 import java.time.Clock;
12 import java.util.UUID;
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;
21 public class SimpleChatHomeTest
24 @DisplayName("Assert chatroom is delivered, if it exists")
25 void testGetExistingChatroom()
28 ChatHomeService chatHomeService = mock(ChatHomeService.class);
29 ChatRoom chatRoom = new ChatRoom(
33 Clock.systemDefaultZone(),
34 mock(ChatRoomService.class),
36 when(chatHomeService.getChatRoom(anyInt(), any(UUID.class))).thenReturn(Mono.just(chatRoom));
37 SimpleChatHome chatHome = new SimpleChatHome(chatHomeService);
40 Mono<ChatRoom> mono = chatHome.getChatRoom(chatRoom.getId());
43 assertThat(mono).emitsExactly(chatRoom);
47 @DisplayName("Assert UnknownChatroomException is thrown, if chatroom does not exist")
48 void testGetNonExistentChatroom()
51 ChatHomeService chatHomeService = mock(ChatHomeService.class);
52 when(chatHomeService.getChatRoom(anyInt(), any(UUID.class))).thenReturn(Mono.empty());
53 SimpleChatHome chatHome = new SimpleChatHome(chatHomeService);
56 Mono<ChatRoom> mono = chatHome.getChatRoom(UUID.randomUUID());
59 assertThat(mono).sendsError();