refactor: Pushed sharding one layer down in the architecture
[demos/kafka/chat] / src / test / java / de / juplo / kafka / chat / backend / persistence / InMemoryWithMongoDbStorageIT.java
index 8006711..7ca9cb2 100644 (file)
@@ -1,11 +1,6 @@
 package de.juplo.kafka.chat.backend.persistence;
 
-import de.juplo.kafka.chat.backend.api.ShardingStrategy;
-import de.juplo.kafka.chat.backend.domain.ChatHomeService;
-import de.juplo.kafka.chat.backend.domain.ChatRoomFactory;
-import de.juplo.kafka.chat.backend.persistence.inmemory.InMemoryChatHomeService;
 import de.juplo.kafka.chat.backend.persistence.InMemoryWithMongoDbStorageIT.DataSourceInitializer;
-import de.juplo.kafka.chat.backend.persistence.inmemory.InMemoryChatRoomFactory;
 import de.juplo.kafka.chat.backend.persistence.inmemory.InMemoryChatRoomService;
 import de.juplo.kafka.chat.backend.persistence.storage.mongodb.ChatRoomRepository;
 import de.juplo.kafka.chat.backend.persistence.storage.mongodb.MongoDbStorageStrategy;
@@ -28,7 +23,6 @@ import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;
 
 import java.time.Clock;
-import java.util.function.Supplier;
 
 
 @Testcontainers
@@ -37,31 +31,26 @@ import java.util.function.Supplier;
 @AutoConfigureDataMongo
 @ContextConfiguration(initializers = DataSourceInitializer.class)
 @Slf4j
-public class InMemoryWithMongoDbStorageIT extends AbstractStorageStrategyIT
+public class InMemoryWithMongoDbStorageIT extends AbstractInMemoryStorageIT
 {
   @Autowired
   MongoDbStorageStrategy storageStrategy;
   @Autowired
+  ChatRoomRepository repository;
+  @Autowired
   Clock clock;
 
 
-  @Override
-  protected StorageStrategy getStorageStrategy()
+  public InMemoryWithMongoDbStorageIT()
   {
-    return storageStrategy;
+    super(Clock.systemDefaultZone());
   }
 
-  @Override
-  protected Supplier<ChatHomeService> getChatHomeServiceSupplier()
-  {
-    return () -> new InMemoryChatHomeService(1, getStorageStrategy().read());
-  }
 
   @Override
-  protected ChatRoomFactory getChatRoomFactory()
+  protected StorageStrategy getStorageStrategy()
   {
-    ShardingStrategy strategy = chatRoomId -> 0;
-    return new InMemoryChatRoomFactory(strategy, clock, 8);
+    return storageStrategy;
   }
 
   @TestConfiguration
@@ -76,6 +65,7 @@ public class InMemoryWithMongoDbStorageIT extends AbstractStorageStrategyIT
           chatRoomRepository,
           clock,
           8,
+          chatRoomId -> 0,
           messageFlux -> new InMemoryChatRoomService(messageFlux));
     }
 
@@ -112,5 +102,6 @@ public class InMemoryWithMongoDbStorageIT extends AbstractStorageStrategyIT
   {
     Slf4jLogConsumer logConsumer = new Slf4jLogConsumer(log);
     CONTAINER.followOutput(logConsumer);
+    repository.deleteAll();
   }
 }