Skip to content

Commit 5b65f11

Browse files
committed
test: create new document database
Signed-off-by: Otavio Santana <[email protected]>
1 parent 37b6e1b commit 5b65f11

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package org.soujava.demos.mongodb.document;
2+
3+
import com.mongodb.ConnectionString;
4+
import com.mongodb.client.MongoClient;
5+
import com.mongodb.client.MongoClients;
6+
import org.eclipse.jnosql.communication.Settings;
7+
import org.eclipse.jnosql.databases.mongodb.communication.MongoDBDocumentConfiguration;
8+
import org.eclipse.jnosql.databases.mongodb.communication.MongoDBDocumentConfigurations;
9+
import org.eclipse.jnosql.databases.mongodb.communication.MongoDBDocumentManager;
10+
import org.eclipse.jnosql.databases.mongodb.communication.MongoDBDocumentManagerFactory;
11+
import org.testcontainers.containers.GenericContainer;
12+
import org.testcontainers.containers.wait.strategy.Wait;
13+
14+
import java.util.HashMap;
15+
import java.util.Map;
16+
public enum DocumentDatabase {
17+
18+
INSTANCE;
19+
20+
private final GenericContainer<?> mongodb =
21+
new GenericContainer<>("mongo:latest")
22+
.withExposedPorts(27017)
23+
.waitingFor(Wait.defaultWaitStrategy());
24+
25+
{
26+
mongodb.start();
27+
}
28+
29+
public MongoClient mongoClient() {
30+
return MongoClients.create(new ConnectionString("mongodb://" + host()));
31+
}
32+
33+
public MongoDBDocumentManager get(String database) {
34+
Settings settings = getSettings();
35+
MongoDBDocumentConfiguration configuration = new MongoDBDocumentConfiguration();
36+
MongoDBDocumentManagerFactory factory = configuration.apply(settings);
37+
return factory.apply(database);
38+
}
39+
40+
41+
private Settings getSettings() {
42+
Map<String,Object> settings = new HashMap<>();
43+
settings.put(MongoDBDocumentConfigurations.HOST.get()+".1", host());
44+
return Settings.of(settings);
45+
}
46+
47+
public String host() {
48+
return mongodb.getHost() + ":" + mongodb.getFirstMappedPort();
49+
}
50+
}

0 commit comments

Comments
 (0)