package com.lordofthejars.nosqlunit.mongodb.integration; import static org.junit.Assert.assertThat; import static org.hamcrest.CoreMatchers.is; import static com.lordofthejars.nosqlunit.mongodb.shard.ManagedMongosLifecycleManagerBuilder.newManagedMongosLifecycle; import static com.lordofthejars.nosqlunit.mongodb.ManagedMongoDbLifecycleManagerBuilder.newManagedMongoDbLifecycle; import static com.lordofthejars.nosqlunit.mongodb.shard.ShardedGroupBuilder.shardedGroup; import java.net.UnknownHostException; import org.junit.AfterClass; import org.junit.ClassRule; import org.junit.Test; import com.lordofthejars.nosqlunit.mongodb.shard.ShardedManagedMongoDb; import com.mongodb.CommandResult; import com.mongodb.DBObject; import com.mongodb.MongoClient; public class WhenShardingIsRequired { static { System.setProperty("MONGO_HOME", "/opt/mongo"); } @ClassRule public static ShardedManagedMongoDb shardedManagedMongoDb = shardedGroup() .shard(newManagedMongoDbLifecycle().port(27018).dbRelativePath("rs-1").logRelativePath("log-1").get()) .shard(newManagedMongoDbLifecycle().port(27019).dbRelativePath("rs-2").logRelativePath("log-2").get()) .config(newManagedMongoDbLifecycle().port(27020).dbRelativePath("rs-3").logRelativePath("log-3").get()) .mongos(newManagedMongosLifecycle().configServer(27020).get()) .get(); @AfterClass public static void tearDown() { System.clearProperty("MONGO_HOME"); } @Test public void two_shards_scenario_should_be_started() throws UnknownHostException { MongoClient mongoClient = new MongoClient("localhost", 27017); CommandResult stats = mongoClient.getDB("admin").getStats(); DBObject configServer = (DBObject)stats.get("raw"); assertThat(configServer.containsField("localhost:27020"), is(true)); } }