diff --git a/modules/mongodb/src/main/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainer.java b/modules/mongodb/src/main/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainer.java index 52067c01ff2..79e44d3ffb0 100644 --- a/modules/mongodb/src/main/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainer.java +++ b/modules/mongodb/src/main/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainer.java @@ -17,6 +17,10 @@ public class MongoDBAtlasLocalContainer extends GenericContainerdatabaseName. + * + * @param databaseName a database name. + * @return a database specific connection string. + */ + public String getDatabaseConnectionString(final String databaseName) { + if (!isRunning()) { + throw new IllegalStateException("MongoDBContainer should be started first"); + } + return baseConnectionString() + "/" + databaseName + "?" + DIRECT_CONNECTION; } } diff --git a/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainerTest.java b/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainerTest.java index 2d7664d51fa..720629d214c 100644 --- a/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainerTest.java +++ b/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBAtlasLocalContainerTest.java @@ -36,6 +36,26 @@ public void getConnectionString() { } } + @Test + public void getDatabaseConnectionString() { + try ( + MongoDBAtlasLocalContainer container = new MongoDBAtlasLocalContainer("mongodb/mongodb-atlas-local:7.0.9") + ) { + container.start(); + String databaseConnectionString = container.getDatabaseConnectionString(); + assertThat(databaseConnectionString).isNotNull(); + assertThat(databaseConnectionString).startsWith("mongodb://"); + assertThat(databaseConnectionString) + .isEqualTo( + String.format( + "mongodb://%s:%d/test?directConnection=true", + container.getHost(), + container.getFirstMappedPort() + ) + ); + } + } + @Test public void createAtlasIndexAndSearchIt() throws Exception { try (