package de.juplo.kafka.chat.backend.persistence;
-import de.juplo.kafka.chat.backend.domain.ChatHome;
-import de.juplo.kafka.chat.backend.domain.ChatHomeService;
-import de.juplo.kafka.chat.backend.domain.ChatRoom;
-import de.juplo.kafka.chat.backend.domain.Message;
+import de.juplo.kafka.chat.backend.domain.*;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import java.util.List;
+import java.util.UUID;
import java.util.function.Supplier;
import static pl.rzrz.assertj.reactor.Assertions.*;
public abstract class AbstractStorageStrategyIT
{
protected ChatHome chathome;
+ protected ChatRoomFactory chatRoomFactory;
protected abstract StorageStrategy getStorageStrategy();
protected abstract Supplier<ChatHomeService> getChatHomeServiceSupplier();
+ protected abstract ChatRoomFactory getChatRoomFactory();
protected void start()
{
- chathome = new ChatHome(getChatHomeServiceSupplier().get());
+ chathome = new SimpleChatHome(getChatHomeServiceSupplier().get());
+ chatRoomFactory = getChatRoomFactory();
}
protected void stop()
assertThat(chathome.getChatRooms().toStream()).hasSize(0);
- ChatRoom chatroom = chathome.createChatroom("FOO").block();
+ UUID chatRoomId = UUID.fromString("5c73531c-6fc4-426c-adcb-afc5c140a0f7");
+ ChatRoom chatroom = chatRoomFactory.createChatRoom(chatRoomId, "FOO").block();
+ chathome.putChatRoom(chatroom);
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();