You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rya.apache.org by pu...@apache.org on 2018/05/01 15:51:57 UTC

[2/3] incubator-rya git commit: RYA-491 Repackaged reusable Mongo DB test code into a project named 'rya.test.mongo'. Closes #293

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoPCJIndexIT.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoPCJIndexIT.java b/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoPCJIndexIT.java
index 8ff563d..c0bf4c5 100644
--- a/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoPCJIndexIT.java
+++ b/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoPCJIndexIT.java
@@ -31,7 +31,7 @@ import org.apache.rya.api.client.mongo.MongoConnectionDetails;
 import org.apache.rya.api.client.mongo.MongoRyaClientFactory;
 import org.apache.rya.indexing.accumulo.ConfigUtils;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.apache.rya.sail.config.RyaSailFactory;
 import org.eclipse.rdf4j.model.Statement;
 import org.eclipse.rdf4j.model.ValueFactory;
@@ -46,7 +46,7 @@ import org.eclipse.rdf4j.repository.sail.SailRepositoryConnection;
 import org.eclipse.rdf4j.sail.Sail;
 import org.junit.Test;
 
-public class MongoPCJIndexIT extends MongoITBase {
+public class MongoPCJIndexIT extends MongoRyaITBase {
     private static final ValueFactory VF = SimpleValueFactory.getInstance();
 
     @Override
@@ -75,13 +75,13 @@ public class MongoPCJIndexIT extends MongoITBase {
 
         //purge contents of rya triples collection
         getMongoClient().getDatabase(conf.getRyaInstanceName()).getCollection(conf.getTriplesCollectionName()).drop();
-        
+
         //run the query.  since the triples collection is gone, if the results match, they came from the PCJ index.
         conf.setBoolean(ConfigUtils.USE_PCJ, true);
         conf.setBoolean(ConfigUtils.USE_OPTIMAL_PCJ, true);
         conf.setBoolean(ConfigUtils.DISPLAY_QUERY_PLAN, true);
         final Sail sail = RyaSailFactory.getInstance(conf);
-        SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+        final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
         conn.begin();
         final TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, pcjQuery);
         tupleQuery.setBinding(RdfCloudTripleStoreConfiguration.CONF_QUERYPLAN_FLAG, RdfCloudTripleStoreConstants.VALUE_FACTORY.createLiteral(true));
@@ -91,7 +91,7 @@ public class MongoPCJIndexIT extends MongoITBase {
             final BindingSet bs = rez.next();
             results.add(bs);
         }
-        
+
      // Verify the correct results were loaded into the PCJ table.
         final Set<BindingSet> expectedResults = new HashSet<>();
 
@@ -122,7 +122,7 @@ public class MongoPCJIndexIT extends MongoITBase {
         assertEquals(6, results.size());
         assertEquals(expectedResults, results);
     }
-    
+
     @Test
     public void sparqlQuery_Test_complex() throws Exception {
         // Setup a Rya Client.
@@ -132,8 +132,8 @@ public class MongoPCJIndexIT extends MongoITBase {
         		+ " ?name <urn:likes> <urn:icecream> ."
         		+ " ?name <urn:hasEyeColor> <urn:blue> ."
         		+ " }";
-        
-        final String testQuery = 
+
+        final String testQuery =
         		  "SELECT ?name WHERE {"
         		+ " ?name <urn:hasHairColor> <urn:brown> ."
         		+ " ?name <urn:likes> <urn:icecream> ."
@@ -153,10 +153,10 @@ public class MongoPCJIndexIT extends MongoITBase {
 
         System.out.println("Triples: " + getMongoClient().getDatabase(conf.getRyaInstanceName()).getCollection(conf.getTriplesCollectionName()).count());
         System.out.println("PCJS: " + getMongoClient().getDatabase(conf.getRyaInstanceName()).getCollection("pcjs").count());
-        
+
         //run the query.  since the triples collection is gone, if the results match, they came from the PCJ index.
         final Sail sail = RyaSailFactory.getInstance(conf);
-        SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+        final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
         conn.begin();
         final TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, testQuery);
         tupleQuery.setBinding(RdfCloudTripleStoreConfiguration.CONF_QUERYPLAN_FLAG, RdfCloudTripleStoreConstants.VALUE_FACTORY.createLiteral(true));
@@ -167,7 +167,7 @@ public class MongoPCJIndexIT extends MongoITBase {
             final BindingSet bs = rez.next();
             results.add(bs);
         }
-        
+
      // Verify the correct results were loaded into the PCJ table.
         final Set<BindingSet> expectedResults = new HashSet<>();
 
@@ -187,7 +187,7 @@ public class MongoPCJIndexIT extends MongoITBase {
         assertEquals(3, results.size());
         assertEquals(expectedResults, results);
     }
-    
+
     private MongoConnectionDetails getConnectionDetails() {
         final java.util.Optional<char[]> password = conf.getMongoPassword() != null ?
                 java.util.Optional.of(conf.getMongoPassword().toCharArray()) :
@@ -210,7 +210,7 @@ public class MongoPCJIndexIT extends MongoITBase {
         statements.add(VF.createStatement(VF.createIRI("urn:Frank"), VF.createIRI("urn:likes"), VF.createIRI("urn:icecream")));
         statements.add(VF.createStatement(VF.createIRI("urn:George"), VF.createIRI("urn:likes"), VF.createIRI("urn:icecream")));
         statements.add(VF.createStatement(VF.createIRI("urn:Hillary"), VF.createIRI("urn:likes"), VF.createIRI("urn:icecream")));
-        
+
         statements.add(VF.createStatement(VF.createIRI("urn:Alice"), VF.createIRI("urn:hasEyeColor"), VF.createIRI("urn:blue")));
         statements.add(VF.createStatement(VF.createIRI("urn:Bob"), VF.createIRI("urn:hasEyeColor"), VF.createIRI("urn:blue")));
         statements.add(VF.createStatement(VF.createIRI("urn:Charlie"), VF.createIRI("urn:hasEyeColor"), VF.createIRI("urn:blue")));
@@ -219,7 +219,7 @@ public class MongoPCJIndexIT extends MongoITBase {
         statements.add(VF.createStatement(VF.createIRI("urn:Frank"), VF.createIRI("urn:hasEyeColor"), VF.createIRI("urn:blue")));
         statements.add(VF.createStatement(VF.createIRI("urn:George"), VF.createIRI("urn:hasEyeColor"), VF.createIRI("urn:green")));
         statements.add(VF.createStatement(VF.createIRI("urn:Hillary"), VF.createIRI("urn:hasEyeColor"), VF.createIRI("urn:brown")));
-        
+
         statements.add(VF.createStatement(VF.createIRI("urn:Alice"), VF.createIRI("urn:hasHairColor"), VF.createIRI("urn:blue")));
         statements.add(VF.createStatement(VF.createIRI("urn:Bob"), VF.createIRI("urn:hasHairColor"), VF.createIRI("urn:blue")));
         statements.add(VF.createStatement(VF.createIRI("urn:Charlie"), VF.createIRI("urn:hasHairColor"), VF.createIRI("urn:blue")));

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoPcjIntegrationTest.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoPcjIntegrationTest.java b/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoPcjIntegrationTest.java
index ea58d11..4877f83 100644
--- a/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoPcjIntegrationTest.java
+++ b/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoPcjIntegrationTest.java
@@ -35,7 +35,7 @@ import org.apache.rya.indexing.mongodb.pcj.MongoPcjIndexSetProvider;
 import org.apache.rya.indexing.mongodb.pcj.MongoPcjQueryNode;
 import org.apache.rya.indexing.pcj.matching.PCJOptimizer;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.apache.rya.mongodb.StatefulMongoDBRdfConfiguration;
 import org.apache.rya.sail.config.RyaSailFactory;
 import org.eclipse.rdf4j.model.IRI;
@@ -58,7 +58,7 @@ import org.junit.Test;
 
 import com.google.common.collect.Lists;
 
-public class MongoPcjIntegrationTest extends MongoITBase {
+public class MongoPcjIntegrationTest extends MongoRyaITBase {
     private static final ValueFactory VF = SimpleValueFactory.getInstance();
 
     private static final IRI talksTo = VF.createIRI("uri:talksTo");

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoTemporalIndexerIT.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoTemporalIndexerIT.java b/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoTemporalIndexerIT.java
index 5a7598e..b9743eb 100644
--- a/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoTemporalIndexerIT.java
+++ b/extras/indexing/src/test/java/org/apache/rya/indexing/mongo/MongoTemporalIndexerIT.java
@@ -39,7 +39,7 @@ import org.apache.rya.indexing.TemporalInterval;
 import org.apache.rya.indexing.accumulo.ConfigUtils;
 import org.apache.rya.indexing.mongodb.temporal.MongoTemporalIndexer;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.eclipse.rdf4j.common.iteration.CloseableIteration;
 import org.eclipse.rdf4j.model.IRI;
 import org.eclipse.rdf4j.model.Statement;
@@ -76,7 +76,7 @@ import com.mongodb.MongoSecurityException;
  * And a few more.
  *
  */
-public final class MongoTemporalIndexerIT extends MongoITBase {
+public final class MongoTemporalIndexerIT extends MongoRyaITBase {
 
     private static final String URI_PROPERTY_EVENT_TIME = "Property:event:time";
     private static final String URI_PROPERTY_CIRCA = "Property:circa";
@@ -232,7 +232,7 @@ public final class MongoTemporalIndexerIT extends MongoITBase {
 
             final String dbName = conf.getMongoDBName();
             final DB db = super.getMongoClient().getDB(dbName);
-            DBCollection collection = db.getCollection(conf.get(MongoDBRdfConfiguration.MONGO_COLLECTION_PREFIX, "rya") + tIndexer.getCollectionName());
+            final DBCollection collection = db.getCollection(conf.get(MongoDBRdfConfiguration.MONGO_COLLECTION_PREFIX, "rya") + tIndexer.getCollectionName());
 
             printTables(tIndexer, "junit testing: Temporal entities stored in testDelete before delete");
             assertEquals("Number of rows stored.", 2, collection.count()); // 4 index entries per statement
@@ -707,7 +707,7 @@ public final class MongoTemporalIndexerIT extends MongoITBase {
      * @return Count of entries in the index table.
      * @throws IOException
      */
-    public void printTables(MongoTemporalIndexer tIndexer, final String description) throws IOException {
+    public void printTables(final MongoTemporalIndexer tIndexer, final String description) throws IOException {
         System.out.println("-- start printTables() -- " + description);
         System.out.println("Reading : " + tIndexer.getCollection().getFullName());
         final DBCursor cursor = tIndexer.getCollection().find();

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexing/src/test/java/org/apache/rya/indexing/pcj/matching/PCJOptimizerTest.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/test/java/org/apache/rya/indexing/pcj/matching/PCJOptimizerTest.java b/extras/indexing/src/test/java/org/apache/rya/indexing/pcj/matching/PCJOptimizerTest.java
index 0d80797..ac56e21 100644
--- a/extras/indexing/src/test/java/org/apache/rya/indexing/pcj/matching/PCJOptimizerTest.java
+++ b/extras/indexing/src/test/java/org/apache/rya/indexing/pcj/matching/PCJOptimizerTest.java
@@ -32,8 +32,8 @@ import org.apache.rya.indexing.external.tupleSet.SimpleExternalTupleSet;
 import org.apache.rya.indexing.mongodb.pcj.MongoPcjIndexSetProvider;
 import org.apache.rya.indexing.pcj.matching.provider.AbstractPcjIndexSetProvider;
 import org.apache.rya.indexing.pcj.matching.provider.AccumuloIndexSetProvider;
-import org.apache.rya.mongodb.EmbeddedMongoSingleton;
 import org.apache.rya.mongodb.StatefulMongoDBRdfConfiguration;
+import org.apache.rya.test.mongo.EmbeddedMongoSingleton;
 import org.eclipse.rdf4j.query.algebra.Projection;
 import org.eclipse.rdf4j.query.algebra.QueryModelNode;
 import org.eclipse.rdf4j.query.algebra.StatementPattern;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexing/src/test/java/org/apache/rya/indexing/smarturi/duplication/DuplicateDataDetectorIT.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/test/java/org/apache/rya/indexing/smarturi/duplication/DuplicateDataDetectorIT.java b/extras/indexing/src/test/java/org/apache/rya/indexing/smarturi/duplication/DuplicateDataDetectorIT.java
index 9d26914..df0807e 100644
--- a/extras/indexing/src/test/java/org/apache/rya/indexing/smarturi/duplication/DuplicateDataDetectorIT.java
+++ b/extras/indexing/src/test/java/org/apache/rya/indexing/smarturi/duplication/DuplicateDataDetectorIT.java
@@ -62,7 +62,7 @@ import org.apache.rya.indexing.entity.storage.mongo.MongoTypeStorage;
 import org.apache.rya.indexing.mongodb.update.RyaObjectStorage.ObjectStorageException;
 import org.apache.rya.indexing.smarturi.SmartUriException;
 import org.apache.rya.indexing.smarturi.duplication.conf.DuplicateDataConfig;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.test.mongo.MongoITBase;
 import org.eclipse.rdf4j.model.ValueFactory;
 import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
 import org.joda.time.DateTime;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataIT.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataIT.java b/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataIT.java
index 611a141..7768d88 100644
--- a/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataIT.java
+++ b/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataIT.java
@@ -26,14 +26,14 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.rya.api.domain.RyaIRI;
 import org.apache.rya.api.domain.RyaStatement;
 import org.apache.rya.api.domain.RyaType;
-import org.apache.rya.api.domain.RyaIRI;
 import org.apache.rya.api.domain.StatementMetadata;
 import org.apache.rya.api.persist.RyaDAOException;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
 import org.apache.rya.mongodb.MongoDBRyaDAO;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.apache.rya.sail.config.RyaSailFactory;
 import org.eclipse.rdf4j.model.ValueFactory;
 import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
@@ -49,7 +49,7 @@ import org.eclipse.rdf4j.repository.sail.SailRepositoryConnection;
 import org.eclipse.rdf4j.sail.Sail;
 import org.junit.Test;
 
-public class MongoStatementMetadataIT extends MongoITBase {
+public class MongoStatementMetadataIT extends MongoRyaITBase {
     private static final ValueFactory VF = SimpleValueFactory.getInstance();
 
     private final String query1 = "prefix owl: <http://www.w3.org/2002/07/owl#> prefix ano: <http://www.w3.org/2002/07/owl#annotated> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select ?x ?y where {_:blankNode rdf:type owl:Annotation; ano:Source <http://Joe>; "
@@ -69,8 +69,8 @@ public class MongoStatementMetadataIT extends MongoITBase {
 
     @Test
     public void simpleQueryWithoutBindingSet() throws Exception {
-        Sail sail = RyaSailFactory.getInstance(conf);
-        MongoDBRyaDAO dao = new MongoDBRyaDAO();
+        final Sail sail = RyaSailFactory.getInstance(conf);
+        final MongoDBRyaDAO dao = new MongoDBRyaDAO();
         try {
             dao.setConf(conf);
             dao.init();
@@ -83,7 +83,7 @@ public class MongoStatementMetadataIT extends MongoITBase {
                     new RyaType("CoffeeShop"), new RyaIRI("http://context"), "", metadata);
             dao.add(statement);
 
-            SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+            final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
             final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query1).evaluate();
 
             final QueryBindingSet bs = new QueryBindingSet();
@@ -115,8 +115,8 @@ public class MongoStatementMetadataIT extends MongoITBase {
      */
     @Test
     public void simpleQueryWithoutBindingSetInvalidProperty() throws Exception {
-        Sail sail = RyaSailFactory.getInstance(conf);
-        MongoDBRyaDAO dao = new MongoDBRyaDAO();
+        final Sail sail = RyaSailFactory.getInstance(conf);
+        final MongoDBRyaDAO dao = new MongoDBRyaDAO();
         try {
             dao.setConf(conf);
             dao.init();
@@ -128,7 +128,7 @@ public class MongoStatementMetadataIT extends MongoITBase {
                     new RyaType("CoffeeShop"), new RyaIRI("http://context"), "", metadata);
             dao.add(statement);
 
-            SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+            final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
             final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query1).evaluate();
 
             final List<BindingSet> bsList = new ArrayList<>();
@@ -145,8 +145,8 @@ public class MongoStatementMetadataIT extends MongoITBase {
 
     @Test
     public void simpleQueryWithBindingSet() throws Exception {
-        Sail sail = RyaSailFactory.getInstance(conf);
-        MongoDBRyaDAO dao = new MongoDBRyaDAO();
+        final Sail sail = RyaSailFactory.getInstance(conf);
+        final MongoDBRyaDAO dao = new MongoDBRyaDAO();
         try {
             dao.setConf(conf);
             dao.init();
@@ -161,7 +161,7 @@ public class MongoStatementMetadataIT extends MongoITBase {
             dao.add(statement1);
             dao.add(statement2);
 
-            SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+            final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
             final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query1).evaluate();
 
             final Set<BindingSet> expected = new HashSet<>();
@@ -204,8 +204,8 @@ public class MongoStatementMetadataIT extends MongoITBase {
      */
     @Test
     public void simpleQueryWithBindingSetJoinPropertyToSubject() throws Exception {
-        Sail sail = RyaSailFactory.getInstance(conf);
-        MongoDBRyaDAO dao = new MongoDBRyaDAO();
+        final Sail sail = RyaSailFactory.getInstance(conf);
+        final MongoDBRyaDAO dao = new MongoDBRyaDAO();
         try {
             dao.setConf(conf);
             dao.init();
@@ -229,7 +229,7 @@ public class MongoStatementMetadataIT extends MongoITBase {
             dao.add(statement3);
             dao.add(statement4);
 
-            SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+            final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
             final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query2).evaluate();
 
             final Set<BindingSet> expected = new HashSet<>();

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataNodeIT.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataNodeIT.java b/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataNodeIT.java
index 4f06ace..56d8322 100644
--- a/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataNodeIT.java
+++ b/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataNodeIT.java
@@ -7,9 +7,9 @@ package org.apache.rya.indexing.statement.metadata;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -23,14 +23,14 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.rya.api.domain.RyaIRI;
 import org.apache.rya.api.domain.RyaStatement;
 import org.apache.rya.api.domain.RyaType;
-import org.apache.rya.api.domain.RyaIRI;
 import org.apache.rya.api.domain.StatementMetadata;
 import org.apache.rya.indexing.statement.metadata.matching.StatementMetadataNode;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
 import org.apache.rya.mongodb.MongoDBRyaDAO;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.eclipse.rdf4j.common.iteration.CloseableIteration;
 import org.eclipse.rdf4j.model.ValueFactory;
 import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
@@ -46,7 +46,7 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-public class MongoStatementMetadataNodeIT extends MongoITBase {
+public class MongoStatementMetadataNodeIT extends MongoRyaITBase {
     private static final ValueFactory VF = SimpleValueFactory.getInstance();
 
     private final String query = "prefix owl: <http://www.w3.org/2002/07/owl#> prefix ano: <http://www.w3.org/2002/07/owl#annotated> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select ?x ?y where {_:blankNode rdf:type owl:Annotation; ano:Source <http://Joe>; "
@@ -56,37 +56,37 @@ public class MongoStatementMetadataNodeIT extends MongoITBase {
 
     @Before
     public void init() throws Exception {
-        final Set<RyaIRI> propertySet = new HashSet<RyaIRI>(Arrays.asList(new RyaIRI("http://createdBy"), new RyaIRI("http://createdOn")));
+        final Set<RyaIRI> propertySet = new HashSet<>(Arrays.asList(new RyaIRI("http://createdBy"), new RyaIRI("http://createdOn")));
         conf.setUseStatementMetadata(true);
         conf.setStatementMetadataProperties(propertySet);
     }
 
     @Test
     public void simpleQueryWithoutBindingSet() throws Exception {
-        MongoDBRyaDAO dao = new MongoDBRyaDAO();
+        final MongoDBRyaDAO dao = new MongoDBRyaDAO();
         try {
             dao.setConf(conf);
             dao.init();
-            StatementMetadata metadata = new StatementMetadata();
+            final StatementMetadata metadata = new StatementMetadata();
             metadata.addMetadata(new RyaIRI("http://createdBy"), new RyaType("Joe"));
             metadata.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
 
-            RyaStatement statement = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
+            final RyaStatement statement = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
                     new RyaType("CoffeeShop"), new RyaIRI("http://context"), "", metadata);
             dao.add(statement);
 
-            SPARQLParser parser = new SPARQLParser();
-            ParsedQuery pq = parser.parseQuery(query, null);
-            List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+            final SPARQLParser parser = new SPARQLParser();
+            final ParsedQuery pq = parser.parseQuery(query, null);
+            final List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
 
-            StatementMetadataNode<?> node = new StatementMetadataNode<>(spList, conf);
-            CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(new QueryBindingSet());
+            final StatementMetadataNode<?> node = new StatementMetadataNode<>(spList, conf);
+            final CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(new QueryBindingSet());
 
-            QueryBindingSet bs = new QueryBindingSet();
+            final QueryBindingSet bs = new QueryBindingSet();
             bs.addBinding("x", VF.createLiteral("CoffeeShop"));
             bs.addBinding("y", VF.createLiteral("Joe"));
 
-            List<BindingSet> bsList = new ArrayList<>();
+            final List<BindingSet> bsList = new ArrayList<>();
             while (iteration.hasNext()) {
                 bsList.add(iteration.next());
             }
@@ -106,26 +106,26 @@ public class MongoStatementMetadataNodeIT extends MongoITBase {
      */
     @Test
     public void simpleQueryWithoutBindingSetInvalidProperty() throws Exception {
-        MongoDBRyaDAO dao = new MongoDBRyaDAO();
+        final MongoDBRyaDAO dao = new MongoDBRyaDAO();
         try {
             dao.setConf(conf);
-            dao.init();	
+            dao.init();
 
-            StatementMetadata metadata = new StatementMetadata();
+            final StatementMetadata metadata = new StatementMetadata();
             metadata.addMetadata(new RyaIRI("http://createdBy"), new RyaType("Doug"));
             metadata.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-02-15"));
 
-            RyaStatement statement = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
+            final RyaStatement statement = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
                     new RyaType("CoffeeShop"), new RyaIRI("http://context"), "", metadata);
             dao.add(statement);
 
-            SPARQLParser parser = new SPARQLParser();
-            ParsedQuery pq = parser.parseQuery(query, null);
-            List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
-            StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
-            CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(new QueryBindingSet());
+            final SPARQLParser parser = new SPARQLParser();
+            final ParsedQuery pq = parser.parseQuery(query, null);
+            final List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+            final StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
+            final CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(new QueryBindingSet());
 
-            List<BindingSet> bsList = new ArrayList<>();
+            final List<BindingSet> bsList = new ArrayList<>();
             while (iteration.hasNext()) {
                 bsList.add(iteration.next());
             }
@@ -138,38 +138,38 @@ public class MongoStatementMetadataNodeIT extends MongoITBase {
 
     @Test
     public void simpleQueryWithBindingSet() throws Exception {
-        MongoDBRyaDAO dao = new MongoDBRyaDAO();
+        final MongoDBRyaDAO dao = new MongoDBRyaDAO();
         try {
             dao.setConf(conf);
             dao.init();
-            StatementMetadata metadata = new StatementMetadata();
+            final StatementMetadata metadata = new StatementMetadata();
             metadata.addMetadata(new RyaIRI("http://createdBy"), new RyaType("Joe"));
             metadata.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
 
-            RyaStatement statement1 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
+            final RyaStatement statement1 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
                     new RyaType("CoffeeShop"), new RyaIRI("http://context"), "", metadata);
-            RyaStatement statement2 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
+            final RyaStatement statement2 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
                     new RyaType("HardwareStore"), new RyaIRI("http://context"), "", metadata);
             dao.add(statement1);
             dao.add(statement2);
 
-            SPARQLParser parser = new SPARQLParser();
-            ParsedQuery pq = parser.parseQuery(query, null);
-            List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
-            StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
+            final SPARQLParser parser = new SPARQLParser();
+            final ParsedQuery pq = parser.parseQuery(query, null);
+            final List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+            final StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
 
-            QueryBindingSet bsConstraint = new QueryBindingSet();
+            final QueryBindingSet bsConstraint = new QueryBindingSet();
             bsConstraint.addBinding("x", VF.createLiteral("CoffeeShop"));
             bsConstraint.addBinding("z", VF.createLiteral("Virginia"));
 
-            CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsConstraint);
+            final CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsConstraint);
 
-            QueryBindingSet expected = new QueryBindingSet();
+            final QueryBindingSet expected = new QueryBindingSet();
             expected.addBinding("x", VF.createLiteral("CoffeeShop"));
             expected.addBinding("y", VF.createLiteral("Joe"));
             expected.addBinding("z", VF.createLiteral("Virginia"));
 
-            List<BindingSet> bsList = new ArrayList<>();
+            final List<BindingSet> bsList = new ArrayList<>();
             while (iteration.hasNext()) {
                 bsList.add(iteration.next());
             }
@@ -195,45 +195,45 @@ public class MongoStatementMetadataNodeIT extends MongoITBase {
      */
     @Test
     public void simpleQueryWithBindingSetJoinPropertyToSubject() throws Exception {
-        MongoDBRyaDAO dao = new MongoDBRyaDAO();
+        final MongoDBRyaDAO dao = new MongoDBRyaDAO();
         try {
             dao.setConf(conf);
             dao.init();
-            StatementMetadata metadata = new StatementMetadata();
+            final StatementMetadata metadata = new StatementMetadata();
             metadata.addMetadata(new RyaIRI("http://createdBy"), new RyaIRI("http://Joe"));
             metadata.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
 
-            RyaStatement statement1 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
+            final RyaStatement statement1 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
                     new RyaType("CoffeeShop"), new RyaIRI("http://context"), "", metadata);
-            RyaStatement statement2 = new RyaStatement(new RyaIRI("http://Bob"), new RyaIRI("http://worksAt"),
+            final RyaStatement statement2 = new RyaStatement(new RyaIRI("http://Bob"), new RyaIRI("http://worksAt"),
                     new RyaType("HardwareStore"), new RyaIRI("http://context"), "", metadata);
             dao.add(statement1);
             dao.add(statement2);
 
-            SPARQLParser parser = new SPARQLParser();
-            ParsedQuery pq = parser.parseQuery(query2, null);
-            List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
-            StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
+            final SPARQLParser parser = new SPARQLParser();
+            final ParsedQuery pq = parser.parseQuery(query2, null);
+            final List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+            final StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
 
-            List<BindingSet> bsCollection = new ArrayList<>();
-            QueryBindingSet bsConstraint1 = new QueryBindingSet();
+            final List<BindingSet> bsCollection = new ArrayList<>();
+            final QueryBindingSet bsConstraint1 = new QueryBindingSet();
             bsConstraint1.addBinding("y", VF.createLiteral("CoffeeShop"));
             bsConstraint1.addBinding("z", VF.createLiteral("Virginia"));
 
-            QueryBindingSet bsConstraint2 = new QueryBindingSet();
+            final QueryBindingSet bsConstraint2 = new QueryBindingSet();
             bsConstraint2.addBinding("y", VF.createLiteral("HardwareStore"));
             bsConstraint2.addBinding("z", VF.createLiteral("Maryland"));
             bsCollection.add(bsConstraint1);
             bsCollection.add(bsConstraint2);
 
-            CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsCollection);
+            final CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsCollection);
 
-            QueryBindingSet expected = new QueryBindingSet();
+            final QueryBindingSet expected = new QueryBindingSet();
             expected.addBinding("y", VF.createLiteral("CoffeeShop"));
             expected.addBinding("x", VF.createIRI("http://Joe"));
             expected.addBinding("z", VF.createLiteral("Virginia"));
 
-            List<BindingSet> bsList = new ArrayList<>();
+            final List<BindingSet> bsList = new ArrayList<>();
             while (iteration.hasNext()) {
                 bsList.add(iteration.next());
             }
@@ -258,30 +258,30 @@ public class MongoStatementMetadataNodeIT extends MongoITBase {
      */
     @Test
     public void simpleQueryWithBindingSetJoinOnProperty() throws Exception {
-        MongoDBRyaDAO dao = new MongoDBRyaDAO();
+        final MongoDBRyaDAO dao = new MongoDBRyaDAO();
         try {
             dao.setConf(conf);
             dao.init();
-            StatementMetadata metadata = new StatementMetadata();
+            final StatementMetadata metadata = new StatementMetadata();
             metadata.addMetadata(new RyaIRI("http://createdBy"), new RyaType("Joe"));
             metadata.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
 
-            RyaStatement statement1 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
+            final RyaStatement statement1 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
                     new RyaType("CoffeeShop"), new RyaIRI("http://context"), "", metadata);
             dao.add(statement1);
 
-            SPARQLParser parser = new SPARQLParser();
-            ParsedQuery pq = parser.parseQuery(query, null);
-            List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
-            StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
+            final SPARQLParser parser = new SPARQLParser();
+            final ParsedQuery pq = parser.parseQuery(query, null);
+            final List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+            final StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
 
-            QueryBindingSet bsConstraint = new QueryBindingSet();
+            final QueryBindingSet bsConstraint = new QueryBindingSet();
             bsConstraint.addBinding("x", VF.createLiteral("CoffeeShop"));
             bsConstraint.addBinding("y", VF.createLiteral("Doug"));
 
-            CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsConstraint);
+            final CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsConstraint);
 
-            List<BindingSet> bsList = new ArrayList<>();
+            final List<BindingSet> bsList = new ArrayList<>();
             while (iteration.hasNext()) {
                 bsList.add(iteration.next());
             }
@@ -302,58 +302,58 @@ public class MongoStatementMetadataNodeIT extends MongoITBase {
      */
     @Test
     public void simpleQueryWithBindingSetCollection() throws Exception {
-        MongoDBRyaDAO dao = new MongoDBRyaDAO();
+        final MongoDBRyaDAO dao = new MongoDBRyaDAO();
         try {
             dao.setConf(conf);
             dao.init();
-            StatementMetadata metadata = new StatementMetadata();
+            final StatementMetadata metadata = new StatementMetadata();
             metadata.addMetadata(new RyaIRI("http://createdBy"), new RyaType("Joe"));
             metadata.addMetadata(new RyaIRI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
 
-            RyaStatement statement1 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
+            final RyaStatement statement1 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
                     new RyaType("CoffeeShop"), new RyaIRI("http://context"), "", metadata);
-            RyaStatement statement2 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
+            final RyaStatement statement2 = new RyaStatement(new RyaIRI("http://Joe"), new RyaIRI("http://worksAt"),
                     new RyaType("HardwareStore"), new RyaIRI("http://context"), "", metadata);
             dao.add(statement1);
             dao.add(statement2);
 
-            SPARQLParser parser = new SPARQLParser();
-            ParsedQuery pq = parser.parseQuery(query, null);
-            List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
-            StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
+            final SPARQLParser parser = new SPARQLParser();
+            final ParsedQuery pq = parser.parseQuery(query, null);
+            final List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+            final StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
 
-            List<BindingSet> bsCollection = new ArrayList<>();
-            QueryBindingSet bsConstraint1 = new QueryBindingSet();
+            final List<BindingSet> bsCollection = new ArrayList<>();
+            final QueryBindingSet bsConstraint1 = new QueryBindingSet();
             bsConstraint1.addBinding("x", VF.createLiteral("CoffeeShop"));
             bsConstraint1.addBinding("z", VF.createLiteral("Virginia"));
 
-            QueryBindingSet bsConstraint2 = new QueryBindingSet();
+            final QueryBindingSet bsConstraint2 = new QueryBindingSet();
             bsConstraint2.addBinding("x", VF.createLiteral("HardwareStore"));
             bsConstraint2.addBinding("z", VF.createLiteral("Maryland"));
 
-            QueryBindingSet bsConstraint3 = new QueryBindingSet();
+            final QueryBindingSet bsConstraint3 = new QueryBindingSet();
             bsConstraint3.addBinding("x", VF.createLiteral("BurgerShack"));
             bsConstraint3.addBinding("z", VF.createLiteral("Delaware"));
             bsCollection.add(bsConstraint1);
             bsCollection.add(bsConstraint2);
             bsCollection.add(bsConstraint3);
 
-            CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsCollection);
+            final CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsCollection);
 
-            Set<BindingSet> expected = new HashSet<>();
-            QueryBindingSet expected1 = new QueryBindingSet();
+            final Set<BindingSet> expected = new HashSet<>();
+            final QueryBindingSet expected1 = new QueryBindingSet();
             expected1.addBinding("x", VF.createLiteral("CoffeeShop"));
             expected1.addBinding("y", VF.createLiteral("Joe"));
             expected1.addBinding("z", VF.createLiteral("Virginia"));
 
-            QueryBindingSet expected2 = new QueryBindingSet();
+            final QueryBindingSet expected2 = new QueryBindingSet();
             expected2.addBinding("x", VF.createLiteral("HardwareStore"));
             expected2.addBinding("y", VF.createLiteral("Joe"));
             expected2.addBinding("z", VF.createLiteral("Maryland"));
             expected.add(expected1);
             expected.add(expected2);
 
-            Set<BindingSet> bsSet = new HashSet<>();
+            final Set<BindingSet> bsSet = new HashSet<>();
             while (iteration.hasNext()) {
                 bsSet.add(iteration.next());
             }

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexing/src/test/java/org/apache/rya/sail/config/RyaMongoDbSailFactoryTest.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/test/java/org/apache/rya/sail/config/RyaMongoDbSailFactoryTest.java b/extras/indexing/src/test/java/org/apache/rya/sail/config/RyaMongoDbSailFactoryTest.java
index 7e0ff34..c72c6da 100644
--- a/extras/indexing/src/test/java/org/apache/rya/sail/config/RyaMongoDbSailFactoryTest.java
+++ b/extras/indexing/src/test/java/org/apache/rya/sail/config/RyaMongoDbSailFactoryTest.java
@@ -20,7 +20,7 @@ package org.apache.rya.sail.config;
 
 import static org.junit.Assert.assertFalse;
 
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.eclipse.rdf4j.model.Statement;
 import org.eclipse.rdf4j.model.ValueFactory;
 import org.eclipse.rdf4j.repository.sail.SailRepository;
@@ -32,7 +32,7 @@ import org.junit.Test;
 /**
  * Tests {@link RyaSailFactory} with a MongoDB backend.
  */
-public class RyaMongoDbSailFactoryTest extends MongoITBase {
+public class RyaMongoDbSailFactoryTest extends MongoRyaITBase {
     @Test
     public void testCreateMongoDbSail() throws Exception {
         Sail sail = null;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexingExample/pom.xml
----------------------------------------------------------------------
diff --git a/extras/indexingExample/pom.xml b/extras/indexingExample/pom.xml
index abb03c3..ba69770 100644
--- a/extras/indexingExample/pom.xml
+++ b/extras/indexingExample/pom.xml
@@ -88,6 +88,10 @@ under the License.
             <artifactId>rya.api</artifactId>
             <type>test-jar</type>
         </dependency>
+        <dependency>
+            <groupId>org.apache.rya</groupId>
+            <artifactId>rya.test.mongo</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexingExample/src/main/java/InferenceExamples.java
----------------------------------------------------------------------
diff --git a/extras/indexingExample/src/main/java/InferenceExamples.java b/extras/indexingExample/src/main/java/InferenceExamples.java
index fa8fb21..96e4321 100644
--- a/extras/indexingExample/src/main/java/InferenceExamples.java
+++ b/extras/indexingExample/src/main/java/InferenceExamples.java
@@ -30,10 +30,10 @@ import org.apache.log4j.PatternLayout;
 import org.apache.rya.indexing.accumulo.ConfigUtils;
 import org.apache.rya.indexing.mongodb.MongoIndexingConfiguration;
 import org.apache.rya.indexing.mongodb.MongoIndexingConfiguration.MongoDBIndexingConfigBuilder;
-import org.apache.rya.mongodb.EmbeddedMongoFactory;
 import org.apache.rya.rdftriplestore.RdfCloudTripleStore;
 import org.apache.rya.rdftriplestore.inference.InferenceEngineException;
 import org.apache.rya.sail.config.RyaSailFactory;
+import org.apache.rya.test.mongo.EmbeddedMongoFactory;
 import org.apache.zookeeper.ClientCnxn;
 import org.eclipse.rdf4j.model.vocabulary.OWL;
 import org.eclipse.rdf4j.model.vocabulary.RDFS;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
----------------------------------------------------------------------
diff --git a/extras/indexingExample/src/main/java/MongoRyaDirectExample.java b/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
index cb38494..d4a8f8c 100644
--- a/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
+++ b/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
@@ -34,10 +34,10 @@ import org.apache.rya.api.utils.LubmQuery;
 import org.apache.rya.indexing.accumulo.ConfigUtils;
 import org.apache.rya.indexing.mongodb.MongoIndexingConfiguration;
 import org.apache.rya.indexing.mongodb.MongoIndexingConfiguration.MongoDBIndexingConfigBuilder;
-import org.apache.rya.mongodb.EmbeddedMongoFactory;
 import org.apache.rya.rdftriplestore.RdfCloudTripleStore;
 import org.apache.rya.rdftriplestore.inference.InferenceEngineException;
 import org.apache.rya.sail.config.RyaSailFactory;
+import org.apache.rya.test.mongo.EmbeddedMongoFactory;
 import org.apache.zookeeper.ClientCnxn;
 import org.eclipse.rdf4j.common.iteration.Iterations;
 import org.eclipse.rdf4j.model.IRI;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.export/export.integration/pom.xml
----------------------------------------------------------------------
diff --git a/extras/rya.export/export.integration/pom.xml b/extras/rya.export/export.integration/pom.xml
index 73cda66..577a0bf 100644
--- a/extras/rya.export/export.integration/pom.xml
+++ b/extras/rya.export/export.integration/pom.xml
@@ -36,12 +36,10 @@ under the License.
         <dependency>
             <groupId>org.apache.rya</groupId>
             <artifactId>rya.api</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.rya</groupId>
             <artifactId>rya.export.api</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.rya</groupId>
@@ -55,5 +53,10 @@ under the License.
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.rya</groupId>
+            <artifactId>rya.test.mongo</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.forwardchain/pom.xml
----------------------------------------------------------------------
diff --git a/extras/rya.forwardchain/pom.xml b/extras/rya.forwardchain/pom.xml
index 2fdaf15..2b93186 100644
--- a/extras/rya.forwardchain/pom.xml
+++ b/extras/rya.forwardchain/pom.xml
@@ -57,6 +57,11 @@ under the License.
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.rya</groupId>
+            <artifactId>rya.test.mongo</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/batch/MongoSpinIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/batch/MongoSpinIT.java b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/batch/MongoSpinIT.java
index 72fb085..84080e5 100644
--- a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/batch/MongoSpinIT.java
+++ b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/batch/MongoSpinIT.java
@@ -32,9 +32,9 @@ import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.apache.rya.indexing.mongodb.MongoIndexingConfiguration;
 import org.apache.rya.indexing.mongodb.MongoIndexingConfiguration.MongoDBIndexingConfigBuilder;
-import org.apache.rya.mongodb.EmbeddedMongoFactory;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
 import org.apache.rya.sail.config.RyaSailFactory;
+import org.apache.rya.test.mongo.EmbeddedMongoFactory;
 import org.eclipse.rdf4j.model.ValueFactory;
 import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
 import org.eclipse.rdf4j.query.BindingSet;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.geoindexing/geo.mongo/pom.xml
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/pom.xml b/extras/rya.geoindexing/geo.mongo/pom.xml
index 087207c..b33d57c 100644
--- a/extras/rya.geoindexing/geo.mongo/pom.xml
+++ b/extras/rya.geoindexing/geo.mongo/pom.xml
@@ -39,6 +39,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.rya</groupId>
+            <artifactId>rya.test.mongo</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.rya</groupId>
             <artifactId>mongodb.rya</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.geoindexing/geo.mongo/src/main/java/org/apache/rya/indexing/geoExamples/RyaMongoGeoDirectExample.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/main/java/org/apache/rya/indexing/geoExamples/RyaMongoGeoDirectExample.java b/extras/rya.geoindexing/geo.mongo/src/main/java/org/apache/rya/indexing/geoExamples/RyaMongoGeoDirectExample.java
index bed432d..39ea3a8 100644
--- a/extras/rya.geoindexing/geo.mongo/src/main/java/org/apache/rya/indexing/geoExamples/RyaMongoGeoDirectExample.java
+++ b/extras/rya.geoindexing/geo.mongo/src/main/java/org/apache/rya/indexing/geoExamples/RyaMongoGeoDirectExample.java
@@ -29,7 +29,7 @@ import org.apache.rya.indexing.accumulo.ConfigUtils;
 import org.apache.rya.indexing.accumulo.geo.OptionalConfigUtils;
 import org.apache.rya.indexing.mongodb.MongoIndexingConfiguration;
 import org.apache.rya.indexing.mongodb.MongoIndexingConfiguration.MongoDBIndexingConfigBuilder;
-import org.apache.rya.mongodb.EmbeddedMongoFactory;
+import org.apache.rya.test.mongo.EmbeddedMongoFactory;
 import org.eclipse.rdf4j.model.vocabulary.RDFS;
 import org.eclipse.rdf4j.query.BindingSet;
 import org.eclipse.rdf4j.query.QueryLanguage;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/MongoGeoTemporalIndexIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/MongoGeoTemporalIndexIT.java b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/MongoGeoTemporalIndexIT.java
index f49252a..d215c91 100644
--- a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/MongoGeoTemporalIndexIT.java
+++ b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/MongoGeoTemporalIndexIT.java
@@ -36,7 +36,7 @@ import org.apache.rya.indexing.geotemporal.model.Event;
 import org.apache.rya.indexing.geotemporal.mongo.MongoGeoTemporalIndexer;
 import org.apache.rya.indexing.geotemporal.storage.EventStorage;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.eclipse.rdf4j.model.IRI;
 import org.eclipse.rdf4j.model.Value;
 import org.eclipse.rdf4j.model.ValueFactory;
@@ -50,7 +50,7 @@ import org.eclipse.rdf4j.repository.sail.SailRepositoryConnection;
 import org.eclipse.rdf4j.sail.Sail;
 import org.junit.Test;
 
-public class MongoGeoTemporalIndexIT extends MongoITBase {
+public class MongoGeoTemporalIndexIT extends MongoRyaITBase {
     private static final String URI_PROPERTY_AT_TIME = "Property:atTime";
 
     private static final ValueFactory VF = SimpleValueFactory.getInstance();

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/model/EventQueryNode2IT.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/model/EventQueryNode2IT.java b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/model/EventQueryNode2IT.java
index e27b720..06c0ebc 100644
--- a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/model/EventQueryNode2IT.java
+++ b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/model/EventQueryNode2IT.java
@@ -38,7 +38,7 @@ import org.apache.rya.indexing.TemporalInstant;
 import org.apache.rya.indexing.TemporalInstantRfc3339;
 import org.apache.rya.indexing.geotemporal.mongo.MongoEventStorage;
 import org.apache.rya.indexing.geotemporal.storage.EventStorage;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.test.mongo.MongoITBase;
 import org.eclipse.rdf4j.common.iteration.CloseableIteration;
 import org.eclipse.rdf4j.model.IRI;
 import org.eclipse.rdf4j.model.Value;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/mongo/MongoEventStorageIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/mongo/MongoEventStorageIT.java b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/mongo/MongoEventStorageIT.java
index a10f05e..3db973f 100644
--- a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/mongo/MongoEventStorageIT.java
+++ b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/mongo/MongoEventStorageIT.java
@@ -31,7 +31,7 @@ import org.apache.rya.indexing.geotemporal.model.Event;
 import org.apache.rya.indexing.geotemporal.storage.EventStorage;
 import org.apache.rya.indexing.geotemporal.storage.EventStorage.EventAlreadyExistsException;
 import org.apache.rya.indexing.geotemporal.storage.EventStorage.EventStorageException;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.test.mongo.MongoITBase;
 import org.joda.time.DateTime;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/mongo/MongoGeoTemporalIndexerIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/mongo/MongoGeoTemporalIndexerIT.java b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/mongo/MongoGeoTemporalIndexerIT.java
index 5136a32..eb62a33 100644
--- a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/mongo/MongoGeoTemporalIndexerIT.java
+++ b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/mongo/MongoGeoTemporalIndexerIT.java
@@ -31,21 +31,21 @@ import org.apache.rya.indexing.GeoConstants;
 import org.apache.rya.indexing.TemporalInstant;
 import org.apache.rya.indexing.geotemporal.model.Event;
 import org.apache.rya.indexing.geotemporal.storage.EventStorage;
-import org.apache.rya.mongodb.MongoITBase;
-import org.junit.Before;
-import org.junit.Test;
-import org.eclipse.rdf4j.model.Resource;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.eclipse.rdf4j.model.IRI;
+import org.eclipse.rdf4j.model.Resource;
 import org.eclipse.rdf4j.model.Value;
 import org.eclipse.rdf4j.model.ValueFactory;
 import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
+import org.junit.Before;
+import org.junit.Test;
 
 import com.vividsolutions.jts.geom.Geometry;
 
 /**
  * Integration tests the methods of {@link MongoGeoTemporalIndexer}.
  */
-public class MongoGeoTemporalIndexerIT extends MongoITBase {
+public class MongoGeoTemporalIndexerIT extends MongoRyaITBase {
     private MongoGeoTemporalIndexer indexer;
 
     @Before

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerFilterIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerFilterIT.java b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerFilterIT.java
index 81e0682..bd451bc 100644
--- a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerFilterIT.java
+++ b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerFilterIT.java
@@ -31,7 +31,7 @@ import org.apache.rya.indexing.GeoRyaSailFactory;
 import org.apache.rya.indexing.accumulo.ConfigUtils;
 import org.apache.rya.indexing.accumulo.geo.OptionalConfigUtils;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.eclipse.rdf4j.model.IRI;
 import org.eclipse.rdf4j.model.Resource;
 import org.eclipse.rdf4j.model.Statement;
@@ -55,7 +55,7 @@ import com.vividsolutions.jts.io.ParseException;
 import com.vividsolutions.jts.io.WKTReader;
 import com.vividsolutions.jts.io.WKTWriter;
 
-public class MongoGeoIndexerFilterIT extends MongoITBase {
+public class MongoGeoIndexerFilterIT extends MongoRyaITBase {
     private static final GeometryFactory GF = new GeometryFactory();
     private static final Geometry WASHINGTON_MONUMENT = GF.createPoint(new Coordinate(38.8895, 77.0353));
     private static final Geometry LINCOLN_MEMORIAL = GF.createPoint(new Coordinate(38.8893, 77.0502));

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerIT.java b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerIT.java
index ff723f8..63d3bab 100644
--- a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerIT.java
+++ b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerIT.java
@@ -32,7 +32,7 @@ import org.apache.rya.indexing.accumulo.ConfigUtils;
 import org.apache.rya.indexing.accumulo.geo.OptionalConfigUtils;
 import org.apache.rya.indexing.mongodb.geo.MongoGeoIndexer;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.eclipse.rdf4j.model.IRI;
 import org.eclipse.rdf4j.model.Resource;
 import org.eclipse.rdf4j.model.Statement;
@@ -50,7 +50,7 @@ import com.vividsolutions.jts.geom.Polygon;
 import com.vividsolutions.jts.geom.PrecisionModel;
 import com.vividsolutions.jts.geom.impl.PackedCoordinateSequence;
 
-public class MongoGeoIndexerIT extends MongoITBase {
+public class MongoGeoIndexerIT extends MongoRyaITBase {
     private static final StatementConstraints EMPTY_CONSTRAINTS = new StatementConstraints();
     GeometryFactory gf = new GeometryFactory(new PrecisionModel(), 4326);
 

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerSfIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerSfIT.java b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerSfIT.java
index c6efc69..6918fae 100644
--- a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerSfIT.java
+++ b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoGeoIndexerSfIT.java
@@ -36,7 +36,7 @@ import org.apache.rya.indexing.accumulo.ConfigUtils;
 import org.apache.rya.indexing.accumulo.geo.OptionalConfigUtils;
 import org.apache.rya.indexing.mongodb.geo.MongoGeoIndexer;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.eclipse.rdf4j.common.iteration.CloseableIteration;
 import org.eclipse.rdf4j.model.IRI;
 import org.eclipse.rdf4j.model.Resource;
@@ -57,7 +57,7 @@ import com.vividsolutions.jts.geom.Polygon;
 /**
  * Tests all of the "simple functions" of the geoindexer.
  */
-public class MongoGeoIndexerSfIT extends MongoITBase {
+public class MongoGeoIndexerSfIT extends MongoRyaITBase {
     private static final StatementConstraints EMPTY_CONSTRAINTS = new StatementConstraints();
 
     // Here is the landscape:

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoIndexerDeleteIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoIndexerDeleteIT.java b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoIndexerDeleteIT.java
index 7f998b1..3352251 100644
--- a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoIndexerDeleteIT.java
+++ b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/mongo/MongoIndexerDeleteIT.java
@@ -30,7 +30,7 @@ import org.apache.rya.indexing.TemporalInstantRfc3339;
 import org.apache.rya.indexing.accumulo.ConfigUtils;
 import org.apache.rya.indexing.accumulo.geo.OptionalConfigUtils;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.eclipse.rdf4j.model.IRI;
 import org.eclipse.rdf4j.model.Resource;
 import org.eclipse.rdf4j.model.Statement;
@@ -52,7 +52,7 @@ import com.vividsolutions.jts.geom.Geometry;
 import com.vividsolutions.jts.geom.GeometryFactory;
 import com.vividsolutions.jts.io.WKTWriter;
 
-public class MongoIndexerDeleteIT extends MongoITBase {
+public class MongoIndexerDeleteIT extends MongoRyaITBase {
     @Override
     public void updateConfiguration(final MongoDBRdfConfiguration conf) {
         conf.setStrings(ConfigUtils.FREETEXT_PREDICATES_LIST, new String[] {RDFS.LABEL.stringValue()});

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.indexing.pcj/pom.xml
----------------------------------------------------------------------
diff --git a/extras/rya.indexing.pcj/pom.xml b/extras/rya.indexing.pcj/pom.xml
index f40fb38..d92b04a 100644
--- a/extras/rya.indexing.pcj/pom.xml
+++ b/extras/rya.indexing.pcj/pom.xml
@@ -91,6 +91,11 @@ under the License.
         </dependency>
         <dependency>
             <groupId>org.apache.rya</groupId>
+            <artifactId>rya.test.mongo</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.rya</groupId>
             <artifactId>rya.test.accumulo</artifactId>
             <scope>test</scope>
         </dependency>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/MongoPcjDocumentsTest.java
----------------------------------------------------------------------
diff --git a/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/MongoPcjDocumentsTest.java b/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/MongoPcjDocumentsTest.java
index 0596daf..856b245 100644
--- a/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/MongoPcjDocumentsTest.java
+++ b/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/MongoPcjDocumentsTest.java
@@ -26,7 +26,7 @@ import java.util.List;
 import org.apache.rya.api.model.VisibilityBindingSet;
 import org.apache.rya.indexing.pcj.storage.PcjMetadata;
 import org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.bson.Document;
 import org.eclipse.rdf4j.model.ValueFactory;
 import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
@@ -36,7 +36,7 @@ import org.junit.Test;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 
-public class MongoPcjDocumentsTest extends MongoITBase {
+public class MongoPcjDocumentsTest extends MongoRyaITBase {
     private static final ValueFactory VF = SimpleValueFactory.getInstance();
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/MongoPcjStorageIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/MongoPcjStorageIT.java b/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/MongoPcjStorageIT.java
index d87f597..8a2bd17 100644
--- a/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/MongoPcjStorageIT.java
+++ b/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/MongoPcjStorageIT.java
@@ -43,7 +43,7 @@ import org.apache.rya.indexing.pcj.storage.PrecomputedJoinStorage;
 import org.apache.rya.indexing.pcj.storage.accumulo.AccumuloPcjStorage;
 import org.apache.rya.indexing.pcj.storage.accumulo.ShiftVarOrderFactory;
 import org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.apache.rya.mongodb.instance.MongoRyaInstanceDetailsRepository;
 import org.eclipse.rdf4j.model.ValueFactory;
 import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
@@ -60,7 +60,7 @@ import com.google.common.collect.ImmutableMap;
  * These tests ensures that the PCJ tables are maintained and that these operations
  * also update the Rya instance's details.
  */
-public class MongoPcjStorageIT extends MongoITBase {
+public class MongoPcjStorageIT extends MongoRyaITBase {
     private static final ValueFactory VF = SimpleValueFactory.getInstance();
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/PcjDocumentsIntegrationTest.java
----------------------------------------------------------------------
diff --git a/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/PcjDocumentsIntegrationTest.java b/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/PcjDocumentsIntegrationTest.java
index e326339..46245d5 100644
--- a/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/PcjDocumentsIntegrationTest.java
+++ b/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/PcjDocumentsIntegrationTest.java
@@ -42,7 +42,7 @@ import org.apache.rya.indexing.pcj.storage.accumulo.PcjTables;
 import org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
 import org.apache.rya.mongodb.MongoDBRyaDAO;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.apache.rya.mongodb.StatefulMongoDBRdfConfiguration;
 import org.apache.rya.rdftriplestore.RdfCloudTripleStore;
 import org.apache.rya.rdftriplestore.RyaSailRepository;
@@ -62,7 +62,7 @@ import com.google.common.collect.Sets;
  * Performs integration test using {@link MiniAccumuloCluster} to ensure the
  * functions of {@link PcjTables} work within a cluster setting.
  */
-public class PcjDocumentsIntegrationTest extends MongoITBase {
+public class PcjDocumentsIntegrationTest extends MongoRyaITBase {
     private static final ValueFactory VF = SimpleValueFactory.getInstance();
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/PcjDocumentsWithMockTest.java
----------------------------------------------------------------------
diff --git a/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/PcjDocumentsWithMockTest.java b/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/PcjDocumentsWithMockTest.java
index 2666b85..d684388 100644
--- a/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/PcjDocumentsWithMockTest.java
+++ b/extras/rya.indexing.pcj/src/test/java/org/apache/rya/indexing/pcj/storage/mongo/PcjDocumentsWithMockTest.java
@@ -30,7 +30,7 @@ import org.apache.rya.indexing.pcj.storage.PcjMetadata;
 import org.apache.rya.indexing.pcj.storage.accumulo.PcjTableNameFactory;
 import org.apache.rya.mongodb.MongoDBRdfConfiguration;
 import org.apache.rya.mongodb.MongoDBRyaDAO;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.mongodb.MongoRyaITBase;
 import org.apache.rya.mongodb.StatefulMongoDBRdfConfiguration;
 import org.apache.rya.rdftriplestore.RdfCloudTripleStore;
 import org.apache.rya.rdftriplestore.RyaSailRepository;
@@ -40,7 +40,7 @@ import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
 import org.eclipse.rdf4j.repository.sail.SailRepositoryConnection;
 import org.junit.Test;
 
-public class PcjDocumentsWithMockTest extends MongoITBase {
+public class PcjDocumentsWithMockTest extends MongoRyaITBase {
     private static final ValueFactory VF = SimpleValueFactory.getInstance();
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/shell/pom.xml
----------------------------------------------------------------------
diff --git a/extras/shell/pom.xml b/extras/shell/pom.xml
index d650ab3..d2f92b9 100644
--- a/extras/shell/pom.xml
+++ b/extras/shell/pom.xml
@@ -103,6 +103,11 @@
             <artifactId>rya.test.accumulo</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.rya</groupId>
+            <artifactId>rya.test.mongo</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/shell/src/test/java/org/apache/rya/shell/MongoRyaShellIT.java
----------------------------------------------------------------------
diff --git a/extras/shell/src/test/java/org/apache/rya/shell/MongoRyaShellIT.java b/extras/shell/src/test/java/org/apache/rya/shell/MongoRyaShellIT.java
index bf44db4..ab0fe01 100644
--- a/extras/shell/src/test/java/org/apache/rya/shell/MongoRyaShellIT.java
+++ b/extras/shell/src/test/java/org/apache/rya/shell/MongoRyaShellIT.java
@@ -21,30 +21,22 @@ package org.apache.rya.shell;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.io.IOException;
-import java.util.Optional;
 
 import org.apache.rya.api.client.Install.InstallConfiguration;
-import org.apache.rya.api.client.RyaClient;
-import org.apache.rya.api.client.mongo.MongoConnectionDetails;
-import org.apache.rya.api.client.mongo.MongoRyaClientFactory;
 import org.apache.rya.shell.SharedShellState.ConnectionState;
 import org.apache.rya.shell.SharedShellState.ShellState;
 import org.apache.rya.shell.util.ConsolePrinter;
 import org.apache.rya.shell.util.InstallPrompt;
 import org.apache.rya.shell.util.PasswordPrompt;
-import org.apache.rya.shell.util.SparqlPrompt;
 import org.junit.Test;
 import org.springframework.context.ApplicationContext;
 import org.springframework.shell.Bootstrap;
 import org.springframework.shell.core.CommandResult;
 import org.springframework.shell.core.JLineShellComponent;
 
-import com.mongodb.MongoClient;
-
 /**
  * Integration tests the functions of the Mongo Rya Shell.
  */
@@ -57,8 +49,8 @@ public class MongoRyaShellIT extends RyaShellMongoITBase {
         // Connect to the Mongo instance.
         final String cmd =
                 RyaConnectionCommands.CONNECT_MONGO_CMD + " " +
-                        "--hostname " + super.conf.getMongoHostname() + " " +
-                        "--port " + super.conf.getMongoPort();
+                        "--hostname " + super.getMongoHostname() + " " +
+                        "--port " + super.getMongoPort();
 
         final CommandResult connectResult = shell.executeCommand(cmd);
 
@@ -85,8 +77,8 @@ public class MongoRyaShellIT extends RyaShellMongoITBase {
         // Connect to the Mongo instance.
         final String cmd =
                 RyaConnectionCommands.CONNECT_MONGO_CMD + " " +
-                        "--hostname " + super.conf.getMongoHostname() + " " +
-                        "--port " + super.conf.getMongoPort();
+                        "--hostname " + super.getMongoHostname() + " " +
+                        "--port " + super.getMongoPort();
         shell.executeCommand(cmd);
 
         // Run the print connection details command.
@@ -95,8 +87,8 @@ public class MongoRyaShellIT extends RyaShellMongoITBase {
 
         final String expected =
                 "The shell is connected to an instance of MongoDB using the following parameters:\n" +
-                "    Hostname: " + super.conf.getMongoHostname() + "\n" +
-                "    Port: " + super.conf.getMongoPort() + "\n";
+                "    Hostname: " + super.getMongoHostname() + "\n" +
+                "    Port: " + super.getMongoPort() + "\n";
         assertEquals(expected, msg);
     }
 
@@ -113,8 +105,8 @@ public class MongoRyaShellIT extends RyaShellMongoITBase {
         // Connect to the Mongo instance.
         final String cmd =
                 RyaConnectionCommands.CONNECT_MONGO_CMD + " " +
-                        "--hostname " + super.conf.getMongoHostname() + " " +
-                        "--port " + super.conf.getMongoPort() + " " +
+                        "--hostname " + super.getMongoHostname() + " " +
+                        "--port " + super.getMongoPort() + " " +
                         "--username bob";
         shell.executeCommand(cmd);
 
@@ -124,8 +116,8 @@ public class MongoRyaShellIT extends RyaShellMongoITBase {
 
         final String expected =
                 "The shell is connected to an instance of MongoDB using the following parameters:\n" +
-                "    Hostname: " + super.conf.getMongoHostname() + "\n" +
-                "    Port: " + super.conf.getMongoPort() + "\n" +
+                "    Hostname: " + super.getMongoHostname() + "\n" +
+                "    Port: " + super.getMongoPort() + "\n" +
                 "    Username: bob\n";
         assertEquals(expected, msg);
     }
@@ -137,8 +129,8 @@ public class MongoRyaShellIT extends RyaShellMongoITBase {
         // Connect to the Mongo instance.
         String cmd =
                 RyaConnectionCommands.CONNECT_MONGO_CMD + " " +
-                        "--hostname " + super.conf.getMongoHostname() + " " +
-                        "--port " + super.conf.getMongoPort();
+                        "--hostname " + super.getMongoHostname() + " " +
+                        "--port " + super.getMongoPort();
         shell.executeCommand(cmd);
 
         // Try to connect to a non-existing instance.
@@ -155,8 +147,8 @@ public class MongoRyaShellIT extends RyaShellMongoITBase {
         // Connect to the Mongo instance.
         String cmd =
                 RyaConnectionCommands.CONNECT_MONGO_CMD + " " +
-                        "--hostname " + super.conf.getMongoHostname() + " " +
-                        "--port " + super.conf.getMongoPort();
+                        "--hostname " + super.getMongoHostname() + " " +
+                        "--port " + super.getMongoPort();
         shell.executeCommand(cmd);
 
         // Install an instance of rya.
@@ -190,8 +182,8 @@ public class MongoRyaShellIT extends RyaShellMongoITBase {
         // Connect to the Mongo instance.
         final String cmd =
                 RyaConnectionCommands.CONNECT_MONGO_CMD + " " +
-                        "--hostname " + super.conf.getMongoHostname() + " " +
-                        "--port " + super.conf.getMongoPort();
+                        "--hostname " + super.getMongoHostname() + " " +
+                        "--port " + super.getMongoPort();
         shell.executeCommand(cmd);
 
         // Disconnect from it.
@@ -201,28 +193,6 @@ public class MongoRyaShellIT extends RyaShellMongoITBase {
 
     // TODO the rest of them?
 
-
-    @Test
-    public void blah() throws Exception {
-        final MongoConnectionDetails details =
-                new MongoConnectionDetails(
-                        "localhost",
-                        27017,
-                        Optional.empty(),
-                        Optional.empty());
-        final RyaClient client = MongoRyaClientFactory.build(details, new MongoClient("localhost", 27017));
-        final SharedShellState state = new SharedShellState();
-        state.connectedToMongo(details, client);
-        state.connectedToInstance("rya_");
-        final ShellState shell = state.getShellState();
-        final SparqlPrompt sparqlPrompt = mock(SparqlPrompt.class);
-        when(sparqlPrompt.getSparql()).thenReturn(
-                com.google.common.base.Optional.<String>of("SELECT * WHERE { ?a ?b ?c }"));
-        final RyaCommands cmnds = new RyaCommands
-                (state, sparqlPrompt, systemPrinter);
-        cmnds.sparqlQuery(null);
-    }
-
     private static final ConsolePrinter systemPrinter = new ConsolePrinter() {
 
         @Override

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/extras/shell/src/test/java/org/apache/rya/shell/RyaShellMongoITBase.java
----------------------------------------------------------------------
diff --git a/extras/shell/src/test/java/org/apache/rya/shell/RyaShellMongoITBase.java b/extras/shell/src/test/java/org/apache/rya/shell/RyaShellMongoITBase.java
index 7e83dbf..6a0129e 100644
--- a/extras/shell/src/test/java/org/apache/rya/shell/RyaShellMongoITBase.java
+++ b/extras/shell/src/test/java/org/apache/rya/shell/RyaShellMongoITBase.java
@@ -22,7 +22,7 @@ import java.io.IOException;
 
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
-import org.apache.rya.mongodb.MongoITBase;
+import org.apache.rya.test.mongo.MongoITBase;
 import org.junit.After;
 import org.junit.Before;
 import org.springframework.shell.Bootstrap;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 932d443..699fccf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -541,6 +541,11 @@ under the License.
             </dependency>
             <dependency>
                 <groupId>org.apache.rya</groupId>
+                <artifactId>rya.test.mongo</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.rya</groupId>
                 <artifactId>rya.test.rdf</artifactId>
                 <version>${project.version}</version>
             </dependency>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/test/mongo/pom.xml
----------------------------------------------------------------------
diff --git a/test/mongo/pom.xml b/test/mongo/pom.xml
new file mode 100644
index 0000000..bfd6318
--- /dev/null
+++ b/test/mongo/pom.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <parent>
+        <groupId>org.apache.rya</groupId>
+        <artifactId>rya.test.parent</artifactId>
+        <version>4.0.0-incubating-SNAPSHOT</version>
+    </parent>
+    
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>rya.test.mongo</artifactId>
+    
+    <name>Apache Rya Test Mongo DB</name>
+    <description>
+        This module contains the Rya Test Mongo DB components that help write 
+        Mongo DB based integration tests.
+    </description>
+
+    <dependencies>
+        <!-- 3rd party dependencies. -->
+        <dependency>
+            <groupId>com.github.stephenc.findbugs</groupId>
+            <artifactId>findbugs-annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.accumulo</groupId>
+            <artifactId>accumulo-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mongodb</groupId>
+            <artifactId>mongo-java-driver</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>de.flapdoodle.embed</groupId>
+            <artifactId>de.flapdoodle.embed.mongo</artifactId>
+        </dependency>
+    
+        <!-- Testing dependencies. -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/2c1efd22/test/mongo/src/main/java/org/apache/rya/test/mongo/EmbeddedMongoFactory.java
----------------------------------------------------------------------
diff --git a/test/mongo/src/main/java/org/apache/rya/test/mongo/EmbeddedMongoFactory.java b/test/mongo/src/main/java/org/apache/rya/test/mongo/EmbeddedMongoFactory.java
new file mode 100644
index 0000000..7c4ab86
--- /dev/null
+++ b/test/mongo/src/main/java/org/apache/rya/test/mongo/EmbeddedMongoFactory.java
@@ -0,0 +1,103 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rya.test.mongo;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.UnknownHostException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.mongodb.MongoClient;
+import com.mongodb.MongoException;
+import com.mongodb.ServerAddress;
+
+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.IFeatureAwareVersion;
+import de.flapdoodle.embed.mongo.distribution.Version;
+
+public class EmbeddedMongoFactory {
+    private static Logger logger = LoggerFactory.getLogger(EmbeddedMongoFactory.class.getName());
+
+    public static EmbeddedMongoFactory newFactory() throws IOException {
+        return EmbeddedMongoFactory.with(Version.Main.PRODUCTION);
+    }
+
+    public static EmbeddedMongoFactory with(final IFeatureAwareVersion version) throws IOException {
+        return new EmbeddedMongoFactory(version);
+    }
+
+    private final MongodExecutable mongodExecutable;
+    private final MongodProcess mongodProcess;
+
+    /**
+     * Create the testing utility using the specified version of MongoDB.
+     *
+     * @param version
+     *            version of MongoDB.
+     */
+    private EmbeddedMongoFactory(final IFeatureAwareVersion version) throws IOException {
+        final MongodStarter runtime = MongodStarter.getInstance(new RuntimeConfigBuilder().defaultsWithLogger(Command.MongoD, logger).build());
+        mongodExecutable = runtime.prepare(newMongodConfig(version));
+        mongodProcess = mongodExecutable.start();
+    }
+
+    private IMongodConfig newMongodConfig(final IFeatureAwareVersion version) throws UnknownHostException, IOException {
+        final Net net = new Net(findRandomOpenPortOnAllLocalInterfaces(), false);
+        return new MongodConfigBuilder().version(version).net(net).build();
+    }
+
+    private int findRandomOpenPortOnAllLocalInterfaces() throws IOException {
+        try (ServerSocket socket = new ServerSocket(0);) {
+            return socket.getLocalPort();
+        }
+    }
+
+    /**
+     * @return A new Mongo client that is connected to the embedded MongoDB Server.
+     * @throws UnknownHostException The hostname used was unknown.
+     * @throws MongoException Couldn't create the client.
+     */
+    public MongoClient newMongoClient() throws UnknownHostException, MongoException {
+        return new MongoClient(new ServerAddress(mongodProcess.getConfig().net().getServerAddress(), mongodProcess.getConfig().net().getPort()));
+    }
+
+    /**
+     * @return The process configuration.
+     */
+    public IMongodConfig getMongoServerDetails() {
+        return mongodProcess.getConfig();
+    }
+
+    /**
+     * Cleans up the resources created by the utility.
+     */
+    public void shutdown() {
+        mongodProcess.stop();
+        mongodExecutable.stop();
+    }
+}
\ No newline at end of file