Skip to content

Commit 209c0d8

Browse files
committed
fix(module/mongodb):move to org.testcontainers.mongodb.MongoDBContainer
1 parent e2adfb1 commit 209c0d8

File tree

3 files changed

+34
-27
lines changed

3 files changed

+34
-27
lines changed

modules/mongodb/src/main/java/org/testcontainers/mongodb/MongoDBContainer.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,4 +204,23 @@ public String getReplicaSetUrl(String databaseName) {
204204
}
205205
return getConnectionString() + "/" + databaseName;
206206
}
207+
208+
/**
209+
* Executes a MongoDB initialization script from the classpath during startup.
210+
* <p>
211+
* The script will be copied to {@code /docker-entrypoint-initdb.d/init.js}.
212+
* This method also adjusts the {@link org.testcontainers.containers.wait.strategy.WaitStrategy}
213+
* to expect the "waiting for connections" log message twice, as the execution of an init script
214+
* causes MongoDB to restart.
215+
*
216+
* @param scriptPath the path to the init script file on the classpath
217+
* @return this container instance
218+
*/
219+
public MongoDBContainer withInitScript(String scriptPath) {
220+
withCopyFileToContainer(MountableFile.forClasspathResource(scriptPath), "/docker-entrypoint-initdb.d/init.js");
221+
222+
this.waitStrategy = Wait.forLogMessage("(?i).*waiting for connections.*", 2);
223+
224+
return this;
225+
}
207226
}

modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBContainerTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
import static org.assertj.core.api.Assertions.assertThat;
66

7+
import java.time.Duration;
8+
79
class MongoDBContainerTest extends AbstractMongo {
810

911
/**
@@ -38,4 +40,17 @@ void shouldTestDatabaseName() {
3840
assertThat(mongoDBContainer.getReplicaSetUrl(databaseName)).endsWith(databaseName);
3941
}
4042
}
43+
44+
@Test
45+
void testWithInitScript() {
46+
try (
47+
MongoDBContainer mongoDB = new MongoDBContainer("mongo:4.0.10")
48+
.withInitScript("init.js")
49+
.withStartupTimeout(Duration.ofSeconds(30))
50+
) {
51+
mongoDB.start();
52+
53+
assertThat(mongoDB.isRunning()).isTrue();
54+
}
55+
}
4156
}

modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBInitScriptTest.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)