Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ public class MongoDBAtlasLocalContainer extends GenericContainer<MongoDBAtlasLoc

private static final int MONGODB_INTERNAL_PORT = 27017;

private static final String MONGODB_DATABASE_NAME_DEFAULT = "test";

private static final String DIRECT_CONNECTION = "directConnection=true";

public MongoDBAtlasLocalContainer(final String dockerImageName) {
this(DockerImageName.parse(dockerImageName));
}
Expand All @@ -33,6 +37,32 @@ public MongoDBAtlasLocalContainer(final DockerImageName dockerImageName) {
* Get the connection string to MongoDB.
*/
public String getConnectionString() {
return String.format("mongodb://%s:%d/?directConnection=true", getHost(), getMappedPort(MONGODB_INTERNAL_PORT));
return baseConnectionString() + "/?" + DIRECT_CONNECTION;
}

private String baseConnectionString() {
return String.format("mongodb://%s:%d", getHost(), getMappedPort(MONGODB_INTERNAL_PORT));
}

/**
* Gets a database specific connection string for the default {@value #MONGODB_DATABASE_NAME_DEFAULT} database.
*
* @return a database specific connection string.
*/
public String getDatabaseConnectionString() {
return getDatabaseConnectionString(MONGODB_DATABASE_NAME_DEFAULT);
}

/**
* Gets a database specific connection string for a provided <code>databaseName</code>.
*
* @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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
Expand Down
Loading