WIP:refactor: Refined channel-states, introduced `ChannelState` -- ALIGN
[demos/kafka/chat] / src / test / java / de / juplo / kafka / chat / backend / InMemoryWithMongoDbStorageIT.java
1 package de.juplo.kafka.chat.backend;
2
3 import de.juplo.kafka.chat.backend.storage.mongodb.ChatRoomRepository;
4 import de.juplo.kafka.chat.backend.storage.mongodb.MessageRepository;
5 import lombok.extern.slf4j.Slf4j;
6 import org.junit.jupiter.api.BeforeEach;
7 import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
9 import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
10 import org.springframework.test.context.TestPropertySource;
11 import org.testcontainers.containers.GenericContainer;
12 import org.testcontainers.containers.MongoDBContainer;
13 import org.testcontainers.containers.output.Slf4jLogConsumer;
14 import org.testcontainers.junit.jupiter.Container;
15 import org.testcontainers.junit.jupiter.Testcontainers;
16
17
18 @TestPropertySource(properties = {
19     "chat.backend.inmemory.sharding-strategy=none",
20     "chat.backend.inmemory.storage-strategy=mongodb" })
21 @Testcontainers
22 @EnableAutoConfiguration
23 @Slf4j
24 public class InMemoryWithMongoDbStorageIT extends AbstractInMemoryStorageIT
25 {
26   @Container
27   @ServiceConnection
28   private static final GenericContainer MONGODB = new MongoDBContainer("mongo:6");
29
30   @BeforeEach
31   void resetStorage(
32       @Autowired ChatRoomRepository chatRoomRepository,
33       @Autowired MessageRepository messageRepository)
34   {
35     chatRoomRepository.deleteAll().block();
36     messageRepository.deleteAll().block();
37   }
38
39   @BeforeEach
40   void setUpLogging()
41   {
42     Slf4jLogConsumer logConsumer = new Slf4jLogConsumer(log);
43     MONGODB.followOutput(logConsumer);
44   }
45 }