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 org.junit.jupiter.api.DisplayName;
6 import org.junit.jupiter.api.Test;
7 import reactor.core.publisher.Mono;
9 import java.time.Clock;
10 import java.util.UUID;
12 import static org.mockito.ArgumentMatchers.any;
13 import static org.mockito.ArgumentMatchers.anyInt;
14 import static org.mockito.Mockito.mock;
15 import static org.mockito.Mockito.when;
16 import static pl.rzrz.assertj.reactor.Assertions.assertThat;
19 public class SimpleChatHomeTest
22 @DisplayName("Assert chatroom is delivered, if it exists")
23 void testGetExistingChatroom()
26 InMemoryChatHomeService chatHomeService = mock(InMemoryChatHomeService.class);
27 ChatRoom chatRoom = new ChatRoom(
31 Clock.systemDefaultZone(),
32 mock(ChatRoomService.class),
34 when(chatHomeService.getChatRoom(anyInt(), any(UUID.class))).thenReturn(Mono.just(chatRoom));
35 SimpleChatHome chatHome = new SimpleChatHome(chatHomeService);
38 Mono<ChatRoom> mono = chatHome.getChatRoom(chatRoom.getId());
41 assertThat(mono).emitsExactly(chatRoom);
45 @DisplayName("Assert UnknownChatroomException is thrown, if chatroom does not exist")
46 void testGetNonExistentChatroom()
49 InMemoryChatHomeService chatHomeService = mock(InMemoryChatHomeService.class);
50 when(chatHomeService.getChatRoom(anyInt(), any(UUID.class))).thenReturn(Mono.empty());
51 SimpleChatHome chatHome = new SimpleChatHome(chatHomeService);
54 Mono<ChatRoom> mono = chatHome.getChatRoom(UUID.randomUUID());
57 assertThat(mono).sendsError();