1 package de.juplo.kafka.chat.backend;
3 import lombok.extern.slf4j.Slf4j;
4 import org.junit.jupiter.api.BeforeEach;
5 import org.springframework.boot.test.context.SpringBootTest;
6 import org.springframework.test.context.DynamicPropertyRegistry;
7 import org.springframework.test.context.DynamicPropertySource;
8 import org.testcontainers.containers.BindMode;
9 import org.testcontainers.containers.GenericContainer;
10 import org.testcontainers.containers.output.Slf4jLogConsumer;
11 import org.testcontainers.junit.jupiter.Container;
12 import org.testcontainers.junit.jupiter.Testcontainers;
16 webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
18 "chat.backend.storage=mongodb",
19 "spring.data.mongodb.host=localhost",
20 "spring.data.mongodb.database=test" })
23 class InMemoryWithMongoDbConfigurationIT extends AbstractConfigurationIT
25 private static final int MONGODB_PORT = 27017;
28 private static final GenericContainer CONTAINER =
29 new GenericContainer("mongo:6")
30 .withClasspathResourceMapping(
32 "/docker-entrypoint-initdb.d",
34 .withExposedPorts(MONGODB_PORT);
36 @DynamicPropertySource
37 static void addMongoPortProperty(DynamicPropertyRegistry registry)
39 registry.add("spring.data.mongodb.port", () -> CONTAINER.getMappedPort(27017));
45 Slf4jLogConsumer logConsumer = new Slf4jLogConsumer(log);
46 CONTAINER.followOutput(logConsumer);