@@ -17,6 +17,10 @@ public class MongoDBAtlasLocalContainer extends GenericContainer<MongoDBAtlasLoc
17
17
18
18
private static final int MONGODB_INTERNAL_PORT = 27017 ;
19
19
20
+ private static final String MONGODB_DATABASE_NAME_DEFAULT = "test" ;
21
+
22
+ private static final String DIRECT_CONNECTION = "directConnection=true" ;
23
+
20
24
public MongoDBAtlasLocalContainer (final String dockerImageName ) {
21
25
this (DockerImageName .parse (dockerImageName ));
22
26
}
@@ -33,6 +37,32 @@ public MongoDBAtlasLocalContainer(final DockerImageName dockerImageName) {
33
37
* Get the connection string to MongoDB.
34
38
*/
35
39
public String getConnectionString () {
36
- return String .format ("mongodb://%s:%d/?directConnection=true" , getHost (), getMappedPort (MONGODB_INTERNAL_PORT ));
40
+ return baseConnectionString () + "/?" + DIRECT_CONNECTION ;
41
+ }
42
+
43
+ private String baseConnectionString () {
44
+ return String .format ("mongodb://%s:%d" , getHost (), getMappedPort (MONGODB_INTERNAL_PORT ));
45
+ }
46
+
47
+ /**
48
+ * Gets a database specific connection string for the default {@value #MONGODB_DATABASE_NAME_DEFAULT} database.
49
+ *
50
+ * @return a database specific connection string.
51
+ */
52
+ public String getDatabaseConnectionString () {
53
+ return getDatabaseConnectionString (MONGODB_DATABASE_NAME_DEFAULT );
54
+ }
55
+
56
+ /**
57
+ * Gets a database specific connection string for a provided <code>databaseName</code>.
58
+ *
59
+ * @param databaseName a database name.
60
+ * @return a database specific connection string.
61
+ */
62
+ public String getDatabaseConnectionString (final String databaseName ) {
63
+ if (!isRunning ()) {
64
+ throw new IllegalStateException ("MongoDBContainer should be started first" );
65
+ }
66
+ return baseConnectionString () + "/" + databaseName + "?" + DIRECT_CONNECTION ;
37
67
}
38
68
}
0 commit comments