You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by dr...@apache.org on 2020/03/21 22:39:46 UTC
[gora] 05/07: GORA-647 Refactor GoraMongodbTestDriver
This is an automated email from the ASF dual-hosted git repository.
drazzib pushed a commit to branch GORA-647-test-containers-mongo
in repository https://gitbox.apache.org/repos/asf/gora.git
commit 0b8dfa51c17fde173b5501a240f36116b29aaf6a
Author: Damien Raude-Morvan <dr...@drazzib.com>
AuthorDate: Sat Mar 21 23:35:02 2020 +0100
GORA-647 Refactor GoraMongodbTestDriver
* Provided container (passed in constructor) to configure Gora properties
---
.../apache/gora/mongodb/GoraMongodbTestDriver.java | 58 +++++-----------------
1 file changed, 13 insertions(+), 45 deletions(-)
diff --git a/gora-mongodb/src/test/java/org/apache/gora/mongodb/GoraMongodbTestDriver.java b/gora-mongodb/src/test/java/org/apache/gora/mongodb/GoraMongodbTestDriver.java
index a7fe2cf..9859b1c 100644
--- a/gora-mongodb/src/test/java/org/apache/gora/mongodb/GoraMongodbTestDriver.java
+++ b/gora-mongodb/src/test/java/org/apache/gora/mongodb/GoraMongodbTestDriver.java
@@ -19,81 +19,50 @@ package org.apache.gora.mongodb;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
-import de.flapdoodle.embed.mongo.Command;
-import de.flapdoodle.embed.mongo.MongodExecutable;
-import de.flapdoodle.embed.mongo.MongodProcess;
-import de.flapdoodle.embed.mongo.MongodStarter;
-import de.flapdoodle.embed.mongo.config.IMongodConfig;
-import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
-import de.flapdoodle.embed.mongo.config.Net;
-import de.flapdoodle.embed.mongo.config.RuntimeConfigBuilder;
-import de.flapdoodle.embed.mongo.distribution.Version;
-import de.flapdoodle.embed.process.config.IRuntimeConfig;
-import de.flapdoodle.embed.process.config.io.ProcessOutput;
-import de.flapdoodle.embed.process.runtime.Network;
+import com.mongodb.ServerAddress;
import org.apache.gora.GoraTestDriver;
import org.apache.gora.mongodb.store.MongoStore;
import org.apache.gora.mongodb.store.MongoStoreParameters;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-
/**
* Driver to set up an embedded MongoDB database instance for use in our
- * unit tests. We use embedded mongodb which is available from
- * https://github.com/flapdoodle-oss/embedmongo.flapdoodle.de
+ * unit tests. We use testcontainers.org project.
*/
public class GoraMongodbTestDriver extends GoraTestDriver {
private static Logger log = LoggerFactory
.getLogger(GoraMongodbTestDriver.class);
- private MongodExecutable _mongodExe;
- private MongodProcess _mongod;
+ private MongoContainer _container;
private MongoClient _mongo;
- private final Version.Main version;
/**
* Constructor for this class.
*/
- public GoraMongodbTestDriver() {
- this(Version.Main.PRODUCTION);
- }
-
- public GoraMongodbTestDriver(Version.Main version) {
+ public GoraMongodbTestDriver(MongoContainer startedContainer) {
super(MongoStore.class);
- this.version = version;
+ this._container = startedContainer;
}
/**
* Initiate the MongoDB server on the default port
*/
@Override
- public void setUpClass() throws IOException {
- IRuntimeConfig runtimeConfig = new RuntimeConfigBuilder()
- .defaultsWithLogger(Command.MongoD, log)
- .processOutput(ProcessOutput.getDefaultInstanceSilent())
- .build();
-
- MongodStarter runtime = MongodStarter.getInstance(runtimeConfig);
-
- int port = Network.getFreeServerPort();
- IMongodConfig mongodConfig = new MongodConfigBuilder()
- .version(version)
- .net(new Net(port, Network.localhostIsIPv6())).build();
+ public void setUpClass() {
+ ServerAddress address = _container.getServerAddress();
+ int port = address.getPort();
+ String host = address.getHost();
// Store Mongo server "host:port" in Hadoop configuration
// so that MongoStore will be able to get it latter
- conf.set(MongoStoreParameters.PROP_MONGO_SERVERS, "127.0.0.1:" + port);
+ String mongoServersProp = String.format("%s:%d", host, port);
+ conf.set(MongoStoreParameters.PROP_MONGO_SERVERS, mongoServersProp);
log.info("Starting embedded Mongodb server on {} port.", port);
try {
-
- _mongodExe = runtime.prepare(mongodConfig);
- _mongod = _mongodExe.start();
-
- _mongo = new MongoClient("localhost", port);
+ _mongo = new MongoClient(address);
} catch (Exception e) {
log.error("Error starting embedded Mongodb server... tearing down test driver.");
tearDownClass();
@@ -106,8 +75,7 @@ public class GoraMongodbTestDriver extends GoraTestDriver {
@Override
public void tearDownClass() {
log.info("Shutting down mongodb server...");
- _mongod.stop();
- _mongodExe.stop();
+ _container.stop();
}
public Mongo getMongo() {