X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fpersistence%2FLocalJsonFilesStorageStrategyIT.java;h=fd413c3b09355ec2c799afc2181e93c5b7e2bb5b;hb=aa0efd1151673c5f0f1576c3026f6fdd0dfad691;hp=81778812480085758217c0e43511f49afebc701b;hpb=084a922c47f5ecacc7e86c03abd5155fa3255440;p=demos%2Fkafka%2Fchat diff --git a/src/test/java/de/juplo/kafka/chat/backend/persistence/LocalJsonFilesStorageStrategyIT.java b/src/test/java/de/juplo/kafka/chat/backend/persistence/LocalJsonFilesStorageStrategyIT.java index 81778812..fd413c3b 100644 --- a/src/test/java/de/juplo/kafka/chat/backend/persistence/LocalJsonFilesStorageStrategyIT.java +++ b/src/test/java/de/juplo/kafka/chat/backend/persistence/LocalJsonFilesStorageStrategyIT.java @@ -9,7 +9,6 @@ import de.juplo.kafka.chat.backend.domain.Message; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import reactor.core.publisher.Flux; import java.io.IOException; import java.nio.file.Files; @@ -18,7 +17,7 @@ import java.nio.file.Paths; import java.time.Clock; import java.util.List; -import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat; +import static pl.rzrz.assertj.reactor.Assertions.*; @Slf4j @@ -26,24 +25,24 @@ public class LocalJsonFilesStorageStrategyIT { final static Path path = Paths.get("target","local-json-files"); - InMemoryChatHomeService service; + InMemoryChatHomeService chatHomeService; StorageStrategy storageStrategy; ChatHome chathome; void start() { Clock clock = Clock.systemDefaultZone(); - service = new InMemoryChatHomeService(clock, 8); ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JavaTimeModule()); mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); - storageStrategy = new LocalJsonFilesStorageStrategy(path, mapper, service); - chathome = new ChatHome(service, storageStrategy.readChatrooms()); + storageStrategy = new LocalJsonFilesStorageStrategy(path, clock, 8, mapper); + chatHomeService = new InMemoryChatHomeService(storageStrategy.readChatrooms(), clock, 8); + chathome = new ChatHome(chatHomeService); } void stop() { - storageStrategy.writeChatrooms(Flux.fromStream(chathome.list())); + storageStrategy.writeChatrooms(chathome.getChatRooms()); } @Test @@ -51,24 +50,28 @@ public class LocalJsonFilesStorageStrategyIT { start(); - assertThat(chathome.list()).hasSize(0); + assertThat(chathome.getChatRooms().toStream()).hasSize(0); - ChatRoom chatroom = chathome.createChatroom("FOO"); + ChatRoom chatroom = chathome.createChatroom("FOO").block(); Message m1 = chatroom.addMessage(1l,"Peter", "Hallo, ich heiße Peter!").block(); Message m2 = chatroom.addMessage(1l, "Ute", "Ich bin Ute...").block(); Message m3 = chatroom.addMessage(2l, "Peter", "Willst du mit mir gehen?").block(); Message m4 = chatroom.addMessage(1l, "Klaus", "Ja? Nein? Vielleicht??").block(); - assertThat(chathome.list()).containsExactlyElementsOf(List.of(chatroom)); - assertThat(chathome.getChatroom(chatroom.getId())).contains(chatroom); - assertThat(chathome.getChatroom(chatroom.getId()).get().getMessages().toStream()).containsExactlyElementsOf(List.of(m1, m2, m3, m4)); + assertThat(chathome.getChatRooms().toStream()).containsExactlyElementsOf(List.of(chatroom)); + assertThat(chathome.getChatRoom(chatroom.getId())).emitsExactly(chatroom); + assertThat(chathome + .getChatRoom(chatroom.getId()) + .flatMapMany(cr -> cr.getMessages())).emitsExactly(m1, m2, m3, m4); stop(); start(); - assertThat(chathome.list()).containsExactlyElementsOf(List.of(chatroom)); - assertThat(chathome.getChatroom(chatroom.getId())).contains(chatroom); - assertThat(chathome.getChatroom(chatroom.getId()).get().getMessages().toStream()).containsExactlyElementsOf(List.of(m1, m2, m3, m4)); + assertThat(chathome.getChatRooms().toStream()).containsExactlyElementsOf(List.of(chatroom)); + assertThat(chathome.getChatRoom(chatroom.getId())).emitsExactly(chatroom); + assertThat(chathome + .getChatRoom(chatroom.getId()) + .flatMapMany(cr -> cr.getMessages())).emitsExactly(m1, m2, m3, m4); } @BeforeEach