diff --git a/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBContainerTest.java b/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBContainerTest.java index 816243d769e..57a0fc51b81 100644 --- a/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBContainerTest.java +++ b/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBContainerTest.java @@ -1,6 +1,10 @@ package org.testcontainers.mongodb; +import com.mongodb.client.MongoClient; +import com.mongodb.client.MongoClients; +import org.bson.Document; import org.junit.jupiter.api.Test; +import org.testcontainers.utility.MountableFile; import static org.assertj.core.api.Assertions.assertThat; @@ -30,6 +34,29 @@ void supportsMongoDB_7_0() { } } + @Test + void shouldRunInitScript() { + try ( + MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:4.0.10") + .withCopyFileToContainer( + MountableFile.forClasspathResource("mongo-init.js"), + "/docker-entrypoint-initdb.d/mongo-init.js" + ) + ) { + mongoDBContainer.start(); + + try (MongoClient mongoClient = MongoClients.create(mongoDBContainer.getConnectionString())) { + final Document document = mongoClient + .getDatabase("init-script-db") + .getCollection("messages") + .find() + .first(); + + assertThat(document).containsEntry("message", "init script ran"); + } + } + } + @Test void shouldTestDatabaseName() { try (MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:4.0.10")) { diff --git a/modules/mongodb/src/test/resources/mongo-init.js b/modules/mongodb/src/test/resources/mongo-init.js new file mode 100644 index 00000000000..e4e6fbed2f2 --- /dev/null +++ b/modules/mongodb/src/test/resources/mongo-init.js @@ -0,0 +1,2 @@ +db = db.getSiblingDB("init-script-db"); +db.messages.insertOne({ message: "init script ran" });