1 package de.juplo.kafka.chat.backend.domain;
3 import org.junit.jupiter.api.DisplayName;
4 import org.junit.jupiter.api.Test;
5 import reactor.core.publisher.Mono;
7 import java.time.Clock;
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;
17 public class SimpleChatHomeTest
20 @DisplayName("Assert chatroom is delivered, if it exists")
21 void testGetExistingChatroom()
24 ChatHomeService chatHomeService = mock(ChatHomeService.class);
25 ChatRoom chatRoom = new ChatRoom(
28 Clock.systemDefaultZone(),
29 mock(ChatRoomService.class),
31 when(chatHomeService.getChatRoom(anyInt(), any(UUID.class))).thenReturn(Mono.just(chatRoom));
32 SimpleChatHome chatHome = new SimpleChatHome(chatHomeService);
35 Mono<ChatRoom> mono = chatHome.getChatRoom(chatRoom.getId());
38 assertThat(mono).emitsExactly(chatRoom);
42 @DisplayName("Assert UnknownChatroomException is thrown, if chatroom does not exist")
43 void testGetNonExistentChatroom()
46 ChatHomeService chatHomeService = mock(ChatHomeService.class);
47 when(chatHomeService.getChatRoom(anyInt(), any(UUID.class))).thenReturn(Mono.empty());
48 SimpleChatHome chatHome = new SimpleChatHome(chatHomeService);
51 Mono<ChatRoom> mono = chatHome.getChatRoom(UUID.randomUUID());
54 assertThat(mono).sendsError();