/* * Copyright (c) 2017 OBiBa. All rights reserved. * * This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.obiba.magma.test; import java.io.IOException; import de.flapdoodle.embed.mongo.MongodExecutable; import de.flapdoodle.embed.mongo.MongodStarter; import de.flapdoodle.embed.mongo.config.MongodConfigBuilder; import de.flapdoodle.embed.mongo.config.Net; import de.flapdoodle.embed.mongo.distribution.Version; import de.flapdoodle.embed.process.runtime.Network; public class EmbeddedMongoProcessWrapper { private int dbPort; private static final MongodStarter starter = MongodStarter.getDefaultInstance(); private static MongodExecutable mongodExe; private String serverSocketAddress; public EmbeddedMongoProcessWrapper() { this(0); } public EmbeddedMongoProcessWrapper(int dbPort) { this.dbPort = dbPort; } public String getServerSocketAddress() { return serverSocketAddress; } public void start() throws IOException { Net net = this.dbPort == 0 ? new Net() : new Net(this.dbPort, Network.localhostIsIPv6()); serverSocketAddress = String.format("localhost:%s", net.getPort()); mongodExe = starter.prepare(new MongodConfigBuilder().version(Version.Main.V3_0).net(net).build()); mongodExe.start(); } public void stop() { mongodExe.stop(); } }