diff --git a/spring-modulith-events/spring-modulith-events-mongodb/pom.xml b/spring-modulith-events/spring-modulith-events-mongodb/pom.xml
index 41424b9a..5ac27465 100644
--- a/spring-modulith-events/spring-modulith-events-mongodb/pom.xml
+++ b/spring-modulith-events/spring-modulith-events-mongodb/pom.xml
@@ -15,6 +15,18 @@
spring.modulith.events.mongodb
+
+
+
+ org.testcontainers
+ testcontainers-bom
+ ${testcontainers.version}
+ pom
+ import
+
+
+
+
@@ -46,10 +58,29 @@
test
+
+
- de.flapdoodle.embed
- de.flapdoodle.embed.mongo.spring3x
- ${flapdoodle-mongodb.version}
+ org.springframework.boot
+ spring-boot-testcontainers
+ test
+
+
+
+ org.testcontainers
+ testcontainers
+ test
+
+
+
+ org.testcontainers
+ junit-jupiter
+ test
+
+
+
+ org.testcontainers
+ mongodb
test
diff --git a/spring-modulith-events/spring-modulith-events-mongodb/src/test/java/org/springframework/modulith/events/mongodb/MongoDbEventPublicationRepositoryTest.java b/spring-modulith-events/spring-modulith-events-mongodb/src/test/java/org/springframework/modulith/events/mongodb/MongoDbEventPublicationRepositoryTest.java
index e121dcc4..d46b7b71 100644
--- a/spring-modulith-events/spring-modulith-events-mongodb/src/test/java/org/springframework/modulith/events/mongodb/MongoDbEventPublicationRepositoryTest.java
+++ b/spring-modulith-events/spring-modulith-events-mongodb/src/test/java/org/springframework/modulith/events/mongodb/MongoDbEventPublicationRepositoryTest.java
@@ -32,6 +32,10 @@ import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest;
+import org.springframework.boot.test.context.TestConfiguration;
+import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Import;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.modulith.events.core.PublicationTargetIdentifier;
@@ -40,17 +44,32 @@ import org.springframework.modulith.events.support.CompletionMode;
import org.springframework.modulith.testapp.TestApplication;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
+import org.testcontainers.containers.MongoDBContainer;
+import org.testcontainers.junit.jupiter.Testcontainers;
+import org.testcontainers.utility.DockerImageName;
/**
* @author Björn Kieling
* @author Dmitry Belyaev
* @author Oliver Drotbohm
*/
+@Testcontainers(disabledWithoutDocker = true)
class MongoDbEventPublicationRepositoryTest {
private static final PublicationTargetIdentifier TARGET_IDENTIFIER = PublicationTargetIdentifier.of("listener");
+ @TestConfiguration(proxyBeanMethods = false)
+ static class Infrastructure {
+
+ @Bean
+ @ServiceConnection
+ MongoDBContainer mongoDBContainer() {
+ return new MongoDBContainer(DockerImageName.parse("mongo:latest"));
+ }
+ }
+
@DataMongoTest
+ @Import(Infrastructure.class)
@ContextConfiguration(classes = TestApplication.class)
static abstract class TestBase {
@@ -84,8 +103,9 @@ class MongoDbEventPublicationRepositoryTest {
assertThat(eventPublications.get(0).getEvent()).isEqualTo(publication.getEvent());
assertThat(eventPublications.get(0).getTargetIdentifier()).isEqualTo(publication.getTargetIdentifier());
- assertThat(repository.findIncompletePublicationsByEventAndTargetIdentifier(new TestEvent("abc"), TARGET_IDENTIFIER))
- .isPresent();
+ assertThat(
+ repository.findIncompletePublicationsByEventAndTargetIdentifier(new TestEvent("abc"), TARGET_IDENTIFIER))
+ .isPresent();
// Complete publication
repository.markCompleted(publication, Instant.now());