http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/44a2dcf0/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/DefineTripleQueryRangeFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/DefineTripleQueryRangeFactoryTest.java
 
b/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/DefineTripleQueryRangeFactoryTest.java
deleted file mode 100644
index 7c3331d..0000000
--- 
a/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/DefineTripleQueryRangeFactoryTest.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * 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 mvm.rya.accumulo;
-
-//
-//import junit.framework.TestCase;
-//import mvm.rya.accumulo.AccumuloRdfConfiguration;
-//import mvm.rya.accumulo.DefineTripleQueryRangeFactory;
-//import mvm.rya.accumulo.AccumuloRdfConfiguration;
-//import mvm.rya.accumulo.DefineTripleQueryRangeFactory;
-//import mvm.rya.api.domain.RangeValue;
-//import org.apache.accumulo.core.data.Range;
-//import org.openrdf.model.URI;
-//import org.openrdf.model.Value;
-//import org.openrdf.model.ValueFactory;
-//import org.openrdf.model.impl.ValueFactoryImpl;
-//
-//import java.util.Map;
-//
-//import static mvm.rya.api.RdfCloudTripleStoreConstants.*;
-//
-///**
-// */
-//public class DefineTripleQueryRangeFactoryTest extends TestCase {
-//
-//    public static final String DELIM_BYTES_STR = new String(DELIM_BYTES);
-//    public static final String URI_MARKER_STR = "\u0007";
-//    public static final String RANGE_ENDKEY_SUFFIX = "\u0000";
-//    DefineTripleQueryRangeFactory factory = new 
DefineTripleQueryRangeFactory();
-//    ValueFactory vf = ValueFactoryImpl.getInstance();
-//    static String litdupsNS = "urn:test:litdups#";
-//
-//    private AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration();
-//
-//    public void testSPOCases() throws Exception {
-//        URI cpu = vf.createURI(litdupsNS, "cpu");
-//        URI loadPerc = vf.createURI(litdupsNS, "loadPerc");
-//        URI obj = vf.createURI(litdupsNS, "uri1");
-//
-//        //spo
-//        Map.Entry<TABLE_LAYOUT, Range> entry =
-//                factory.defineRange(cpu, loadPerc, obj, conf);
-//        assertEquals(TABLE_LAYOUT.SPO, entry.getKey());
-//        String expected_start = URI_MARKER_STR + cpu.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + loadPerc.stringValue() + DELIM_BYTES_STR +
-//                URI_MARKER_STR + obj.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        assertEquals(expected_start + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//
-//
-//        //sp
-//        entry = factory.defineRange(cpu, loadPerc, null, conf);
-//        assertEquals(TABLE_LAYOUT.SPO, entry.getKey());
-//        expected_start = URI_MARKER_STR + cpu.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + loadPerc.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        assertEquals(expected_start + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//
-//        //s
-//        entry = factory.defineRange(cpu, null, null, conf);
-//        assertEquals(TABLE_LAYOUT.SPO, entry.getKey());
-//        expected_start = URI_MARKER_STR + cpu.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        assertEquals(expected_start + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//
-//        //all
-//        entry = factory.defineRange(null, null, null, conf);
-//        assertEquals(TABLE_LAYOUT.SPO, entry.getKey());
-//        assertEquals("",
-//                entry.getValue().getStartKey().getRow().toString());
-//        assertEquals(new String(new byte[]{Byte.MAX_VALUE}) + DELIM_STOP + 
RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//    }
-//
-//    public void testSPOCasesWithRanges() throws Exception {
-//        URI subj_start = vf.createURI(litdupsNS, "subj_start");
-//        URI subj_end = vf.createURI(litdupsNS, "subj_stop");
-//        URI pred_start = vf.createURI(litdupsNS, "pred_start");
-//        URI pred_end = vf.createURI(litdupsNS, "pred_stop");
-//        URI obj_start = vf.createURI(litdupsNS, "obj_start");
-//        URI obj_end = vf.createURI(litdupsNS, "obj_stop");
-//
-//        Value subj = new RangeValue(subj_start, subj_end);
-//        Value pred = new RangeValue(pred_start, pred_end);
-//        Value obj = new RangeValue(obj_start, obj_end);
-//
-//        //spo - o has range
-//        Map.Entry<TABLE_LAYOUT, Range> entry =
-//                factory.defineRange(subj_start, pred_start, obj, conf);
-//        assertEquals(TABLE_LAYOUT.SPO, entry.getKey());
-//        String expected_start = URI_MARKER_STR + subj_start.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + pred_start.stringValue() + DELIM_BYTES_STR +
-//                URI_MARKER_STR + obj_start.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        String expected_end = URI_MARKER_STR + subj_start.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + pred_start.stringValue() + DELIM_BYTES_STR +
-//                URI_MARKER_STR + obj_end.stringValue();
-//        assertEquals(expected_end + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//
-//        //sp - p has range
-//        entry = factory.defineRange(subj_start, pred, null, conf);
-//        assertEquals(TABLE_LAYOUT.SPO, entry.getKey());
-//        expected_start = URI_MARKER_STR + subj_start.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + pred_start.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        expected_end = URI_MARKER_STR + subj_start.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + pred_end.stringValue();
-//        assertEquals(expected_end + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//
-//        //s - s has range
-//        entry = factory.defineRange(subj, null, null, conf);
-//        assertEquals(TABLE_LAYOUT.SPO, entry.getKey());
-//        expected_start = URI_MARKER_STR + subj_start.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        expected_end = URI_MARKER_STR + subj_end.stringValue();
-//        assertEquals(expected_end + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//    }
-//
-//    public void testPOCases() throws Exception {
-//        URI loadPerc = vf.createURI(litdupsNS, "loadPerc");
-//        URI obj = vf.createURI(litdupsNS, "uri1");
-//
-//        //po
-//        Map.Entry<TABLE_LAYOUT, Range> entry =
-//                factory.defineRange(null, loadPerc, obj, conf);
-//        assertEquals(TABLE_LAYOUT.PO, entry.getKey());
-//        String expected_start = URI_MARKER_STR + loadPerc.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + obj.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        assertEquals(expected_start + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//
-//        //p
-//        entry = factory.defineRange(null, loadPerc, null, conf);
-//        assertEquals(TABLE_LAYOUT.PO, entry.getKey());
-//        expected_start = URI_MARKER_STR + loadPerc.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        assertEquals(expected_start + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//    }
-//
-//    public void testPOCasesWithRanges() throws Exception {
-//        URI pred_start = vf.createURI(litdupsNS, "pred_start");
-//        URI pred_end = vf.createURI(litdupsNS, "pred_stop");
-//        URI obj_start = vf.createURI(litdupsNS, "obj_start");
-//        URI obj_end = vf.createURI(litdupsNS, "obj_stop");
-//
-//        Value pred = new RangeValue(pred_start, pred_end);
-//        Value obj = new RangeValue(obj_start, obj_end);
-//
-//        //po
-//        Map.Entry<TABLE_LAYOUT, Range> entry =
-//                factory.defineRange(null, pred_start, obj, conf);
-//        assertEquals(TABLE_LAYOUT.PO, entry.getKey());
-//        String expected_start = URI_MARKER_STR + pred_start.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + obj_start.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        String expected_end = URI_MARKER_STR + pred_start.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + obj_end.stringValue();
-//        assertEquals(expected_end + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//
-//        //p
-//        entry = factory.defineRange(null, pred, null, conf);
-//        assertEquals(TABLE_LAYOUT.PO, entry.getKey());
-//        expected_start = URI_MARKER_STR + pred_start.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        expected_end = URI_MARKER_STR + pred_end.stringValue();
-//        assertEquals(expected_end + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//    }
-//
-//    public void testOSPCases() throws Exception {
-//        URI cpu = vf.createURI(litdupsNS, "cpu");
-//        URI obj = vf.createURI(litdupsNS, "uri1");
-//
-//        //so
-//        Map.Entry<TABLE_LAYOUT, Range> entry =
-//                factory.defineRange(cpu, null, obj, conf);
-//        assertEquals(TABLE_LAYOUT.OSP, entry.getKey());
-//        String expected_start = URI_MARKER_STR + obj.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + cpu.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        assertEquals(expected_start + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//
-//        //o
-//        entry = factory.defineRange(null, null, obj, conf);
-//        assertEquals(TABLE_LAYOUT.OSP, entry.getKey());
-//        expected_start = URI_MARKER_STR + obj.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        assertEquals(expected_start + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//    }
-//
-//
-//    public void testOSPCasesWithRanges() throws Exception {
-//        URI subj_start = vf.createURI(litdupsNS, "subj_start");
-//        URI subj_end = vf.createURI(litdupsNS, "subj_stop");
-//        URI obj_start = vf.createURI(litdupsNS, "obj_start");
-//        URI obj_end = vf.createURI(litdupsNS, "obj_stop");
-//
-//        Value subj = new RangeValue(subj_start, subj_end);
-//        Value obj = new RangeValue(obj_start, obj_end);
-//
-//        //so - s should be the range
-//        Map.Entry<TABLE_LAYOUT, Range> entry =
-//                factory.defineRange(subj, null, obj_start, conf);
-//        assertEquals(TABLE_LAYOUT.OSP, entry.getKey());
-//        String expected_start = URI_MARKER_STR + obj_start.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + subj_start.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        String expected_end = URI_MARKER_STR + obj_start.stringValue() + 
DELIM_BYTES_STR +
-//                URI_MARKER_STR + subj_end.stringValue();
-//        assertEquals(expected_end + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//
-//        //o - o is range
-//        entry = factory.defineRange(null, null, obj, conf);
-//        assertEquals(TABLE_LAYOUT.OSP, entry.getKey());
-//        expected_start = URI_MARKER_STR + obj_start.stringValue();
-//        assertEquals(expected_start,
-//                entry.getValue().getStartKey().getRow().toString());
-//        expected_end = URI_MARKER_STR + obj_end.stringValue();
-//        assertEquals(expected_end + DELIM_STOP + RANGE_ENDKEY_SUFFIX,
-//                entry.getValue().getEndKey().getRow().toString());
-//    }
-//
-//}

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/44a2dcf0/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/MiniAccumuloClusterInstance.java
----------------------------------------------------------------------
diff --git 
a/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/MiniAccumuloClusterInstance.java
 
b/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/MiniAccumuloClusterInstance.java
deleted file mode 100644
index eb11ed8..0000000
--- 
a/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/MiniAccumuloClusterInstance.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * 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 mvm.rya.accumulo;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.apache.accumulo.core.client.AccumuloException;
-import org.apache.accumulo.core.client.AccumuloSecurityException;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.minicluster.MiniAccumuloCluster;
-import org.apache.accumulo.minicluster.MiniAccumuloConfig;
-import org.apache.log4j.Logger;
-
-import com.google.common.io.Files;
-
-/**
- * Contains boilerplate code that can be used by an integration test that
- * uses a {@link MiniAccumuloCluster}.
- * <p>
- * You can just extend {@link AccumuloITBase} if your test only requires 
Accumulo.
- */
-public class MiniAccumuloClusterInstance {
-
-    private static final Logger log = 
Logger.getLogger(MiniAccumuloClusterInstance.class);
-
-    private static final String USERNAME = "root";
-    private static final String PASSWORD = "password";
-
-    /**
-     * A mini Accumulo cluster that can be used by the tests.
-     */
-    private static MiniAccumuloCluster cluster = null;
-
-    /**
-     * Start the {@link MiniAccumuloCluster}.
-     */
-    public void startMiniAccumulo() throws IOException, InterruptedException, 
AccumuloException, AccumuloSecurityException {
-        final File miniDataDir = Files.createTempDir();
-
-        // Setup and start the Mini Accumulo.
-        final MiniAccumuloConfig cfg = new MiniAccumuloConfig(miniDataDir, 
PASSWORD);
-        cluster = new MiniAccumuloCluster(cfg);
-        cluster.start();
-    }
-
-    /**
-     * Stop the {@link MiniAccumuloCluster}.
-     */
-    public void stopMiniAccumulo() throws IOException, InterruptedException {
-        if(cluster != null) {
-            try {
-                log.info("Shutting down the Mini Accumulo being used as a Rya 
store.");
-                cluster.stop();
-                log.info("Mini Accumulo being used as a Rya store shut down.");
-            } catch(final Exception e) {
-                log.error("Could not shut down the Mini Accumulo.", e);
-            }
-        }
-    }
-
-    /**
-     * @return The {@link MiniAccumuloCluster} managed by this class.
-     */
-    public MiniAccumuloCluster getCluster() {
-        return cluster;
-    }
-
-    /**
-     * @return An accumulo connector that is connected to the mini cluster.
-     */
-    public Connector getConnector() throws AccumuloException, 
AccumuloSecurityException {
-        return cluster.getConnector(USERNAME, PASSWORD);
-    }
-
-    /**
-     * @return The root username.
-     */
-    public String getUsername() {
-        return USERNAME;
-    }
-
-    /**
-     * @return The root password.
-     */
-    public String getPassword() {
-        return PASSWORD;
-    }
-
-    /**
-     * @return The MiniAccumulo's zookeeper instance name.
-     */
-    public String getInstanceName() {
-        return cluster.getInstanceName();
-    }
-
-    /**
-     * @return The MiniAccumulo's zookeepers.
-     */
-    public String getZookeepers() {
-        return cluster.getZooKeepers();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/44a2dcf0/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/instance/AccumuloRyaDetailsRepositoryIT.java
----------------------------------------------------------------------
diff --git 
a/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/instance/AccumuloRyaDetailsRepositoryIT.java
 
b/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/instance/AccumuloRyaDetailsRepositoryIT.java
deleted file mode 100644
index bdd6059..0000000
--- 
a/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/instance/AccumuloRyaDetailsRepositoryIT.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * 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 mvm.rya.accumulo.instance;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.util.Date;
-
-import org.apache.accumulo.core.client.AccumuloException;
-import org.apache.accumulo.core.client.AccumuloSecurityException;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.Instance;
-import org.apache.accumulo.core.client.ZooKeeperInstance;
-import org.apache.accumulo.core.client.mock.MockInstance;
-import org.apache.accumulo.core.client.security.tokens.PasswordToken;
-import org.apache.accumulo.minicluster.MiniAccumuloCluster;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.zookeeper.ClientCnxn;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import com.google.common.base.Optional;
-
-import mvm.rya.accumulo.AccumuloITBase;
-import mvm.rya.accumulo.MiniAccumuloClusterInstance;
-import mvm.rya.api.instance.RyaDetails;
-import mvm.rya.api.instance.RyaDetails.EntityCentricIndexDetails;
-import mvm.rya.api.instance.RyaDetails.FreeTextIndexDetails;
-import mvm.rya.api.instance.RyaDetails.GeoIndexDetails;
-import mvm.rya.api.instance.RyaDetails.JoinSelectivityDetails;
-import mvm.rya.api.instance.RyaDetails.PCJIndexDetails;
-import mvm.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails;
-import mvm.rya.api.instance.RyaDetails.PCJIndexDetails.PCJDetails;
-import 
mvm.rya.api.instance.RyaDetails.PCJIndexDetails.PCJDetails.PCJUpdateStrategy;
-import mvm.rya.api.instance.RyaDetails.ProspectorDetails;
-import mvm.rya.api.instance.RyaDetails.TemporalIndexDetails;
-import mvm.rya.api.instance.RyaDetailsRepository;
-import mvm.rya.api.instance.RyaDetailsRepository.AlreadyInitializedException;
-import mvm.rya.api.instance.RyaDetailsRepository.ConcurrentUpdateException;
-import mvm.rya.api.instance.RyaDetailsRepository.NotInitializedException;
-import mvm.rya.api.instance.RyaDetailsRepository.RyaDetailsRepositoryException;
-
-/**
- * Tests the methods of {@link AccumuloRyaDetailsRepository} by using a {@link 
MiniAccumuloCluster}.
- */
-public class AccumuloRyaDetailsRepositoryIT extends AccumuloITBase {
-
-    @Test
-    public void initializeAndGet() throws AccumuloException, 
AccumuloSecurityException, AlreadyInitializedException, 
RyaDetailsRepositoryException {
-        final String instanceName = "testInstance";
-
-        // Create the metadata object the repository will be initialized with.
-        final RyaDetails details = RyaDetails.builder()
-            .setRyaInstanceName(instanceName)
-            .setRyaVersion("1.2.3.4")
-            .setEntityCentricIndexDetails( new EntityCentricIndexDetails(true) 
)
-            .setGeoIndexDetails( new GeoIndexDetails(true) )
-            .setTemporalIndexDetails( new TemporalIndexDetails(true) )
-            .setFreeTextDetails( new FreeTextIndexDetails(true) )
-            .setPCJIndexDetails(
-                    PCJIndexDetails.builder()
-                        .setEnabled(true)
-                        .setFluoDetails( new 
FluoDetails("test_instance_rya_pcj_updater") )
-                        .addPCJDetails(
-                                PCJDetails.builder()
-                                    .setId("pcj 1")
-                                    .setUpdateStrategy(PCJUpdateStrategy.BATCH)
-                                    .setLastUpdateTime( new Date() ))
-                        .addPCJDetails(
-                                PCJDetails.builder()
-                                    .setId("pcj 2")))
-            .setProspectorDetails( new ProspectorDetails(Optional.of(new 
Date())) )
-            .setJoinSelectivityDetails( new 
JoinSelectivityDetails(Optional.of(new Date())) )
-            .build();
-
-        // Setup the repository that will be tested using a mini instance of 
Accumulo.
-        final Connector connector = getClusterInstance().getConnector();
-        final RyaDetailsRepository repo = new 
AccumuloRyaInstanceDetailsRepository(connector, instanceName);
-
-        // Initialize the repository
-        repo.initialize(details);
-
-        // Fetch the stored details.
-        final RyaDetails stored = repo.getRyaInstanceDetails();
-
-        // Ensure the fetched object is equivalent to what was stored.
-        assertEquals(details, stored);
-    }
-
-    @Test(expected = AlreadyInitializedException.class)
-    public void initialize_alreadyInitialized() throws 
AlreadyInitializedException, RyaDetailsRepositoryException, AccumuloException, 
AccumuloSecurityException {
-        final String instanceName = "testInstance";
-
-        // Create the metadata object the repository will be initialized with.
-        final RyaDetails details = RyaDetails.builder()
-            .setRyaInstanceName(instanceName)
-            .setRyaVersion("1.2.3.4")
-            .setEntityCentricIndexDetails( new EntityCentricIndexDetails(true) 
)
-            .setGeoIndexDetails( new GeoIndexDetails(true) )
-            .setTemporalIndexDetails( new TemporalIndexDetails(true) )
-            .setFreeTextDetails( new FreeTextIndexDetails(true) )
-            .setPCJIndexDetails(
-                    PCJIndexDetails.builder()
-                        .setEnabled(true)
-                        .setFluoDetails( new 
FluoDetails("test_instance_rya_pcj_updater") )
-                        .addPCJDetails(
-                                PCJDetails.builder()
-                                    .setId("pcj 1")
-                                    .setUpdateStrategy(PCJUpdateStrategy.BATCH)
-                                    .setLastUpdateTime( new Date() ))
-                        .addPCJDetails(
-                                PCJDetails.builder()
-                                    .setId("pcj 2")))
-            .setProspectorDetails( new ProspectorDetails(Optional.of(new 
Date())) )
-            .setJoinSelectivityDetails( new 
JoinSelectivityDetails(Optional.of(new Date())) )
-            .build();
-
-        // Setup the repository that will be tested using a mini instance of 
Accumulo.
-        final Connector connector = getClusterInstance().getConnector();
-        final RyaDetailsRepository repo = new 
AccumuloRyaInstanceDetailsRepository(connector, instanceName);
-
-        // Initialize the repository
-        repo.initialize(details);
-
-        // Initialize it again.
-        repo.initialize(details);
-    }
-
-    @Test(expected = NotInitializedException.class)
-    public void getRyaInstance_notInitialized() throws AccumuloException, 
AccumuloSecurityException, NotInitializedException, 
RyaDetailsRepositoryException {
-        // Setup the repository that will be tested using a mini instance of 
Accumulo.
-        final Connector connector = getClusterInstance().getConnector();
-        final RyaDetailsRepository repo = new 
AccumuloRyaInstanceDetailsRepository(connector, "testInstance");
-
-        // Try to fetch the details from the uninitialized repository.
-        repo.getRyaInstanceDetails();
-    }
-
-    @Test
-    public void isInitialized_true() throws AccumuloException, 
AccumuloSecurityException, AlreadyInitializedException, 
RyaDetailsRepositoryException {
-        final String instanceName = "testInstance";
-
-        // Create the metadata object the repository will be initialized with.
-        final RyaDetails details = RyaDetails.builder()
-            .setRyaInstanceName(instanceName)
-            .setRyaVersion("1.2.3.4")
-            .setEntityCentricIndexDetails( new EntityCentricIndexDetails(true) 
)
-            .setGeoIndexDetails( new GeoIndexDetails(true) )
-            .setTemporalIndexDetails( new TemporalIndexDetails(true) )
-            .setFreeTextDetails( new FreeTextIndexDetails(true) )
-            .setPCJIndexDetails(
-                    PCJIndexDetails.builder()
-                        .setEnabled(true)
-                        .setFluoDetails( new 
FluoDetails("test_instance_rya_pcj_updater") )
-                        .addPCJDetails(
-                                PCJDetails.builder()
-                                    .setId("pcj 1")
-                                    .setUpdateStrategy(PCJUpdateStrategy.BATCH)
-                                    .setLastUpdateTime( new Date() ))
-                        .addPCJDetails(
-                                PCJDetails.builder()
-                                    .setId("pcj 2")))
-            .setProspectorDetails( new ProspectorDetails(Optional.of(new 
Date())) )
-            .setJoinSelectivityDetails( new 
JoinSelectivityDetails(Optional.of(new Date())) )
-            .build();
-
-        // Setup the repository that will be tested using a mini instance of 
Accumulo.
-        final MiniAccumuloClusterInstance clusterInstance = 
getClusterInstance();
-        final Connector connector = clusterInstance.getConnector();
-        final RyaDetailsRepository repo = new 
AccumuloRyaInstanceDetailsRepository(connector, "testInstance");
-
-        // Initialize the repository
-        repo.initialize(details);
-
-        // Ensure the repository reports that it has been initialized.
-        assertTrue( repo.isInitialized() );
-    }
-
-    @Test
-    public void isInitialized_false() throws AccumuloException, 
AccumuloSecurityException, RyaDetailsRepositoryException {
-        // Setup the repository that will be tested using a mock instance of 
Accumulo.
-        final Connector connector = getClusterInstance().getConnector();
-        final RyaDetailsRepository repo = new 
AccumuloRyaInstanceDetailsRepository(connector, "testInstance");
-
-        // Ensure the repository reports that is has not been initialized.
-        assertFalse( repo.isInitialized() );
-    }
-
-    @Test
-    public void update() throws AlreadyInitializedException, 
RyaDetailsRepositoryException, AccumuloException, AccumuloSecurityException {
-        final String instanceName = "testInstance";
-
-        // Create the metadata object the repository will be initialized with.
-        final RyaDetails details = RyaDetails.builder()
-            .setRyaInstanceName(instanceName)
-            .setRyaVersion("1.2.3.4")
-            .setEntityCentricIndexDetails( new EntityCentricIndexDetails(true) 
)
-            .setGeoIndexDetails( new GeoIndexDetails(true) )
-            .setTemporalIndexDetails( new TemporalIndexDetails(true) )
-            .setFreeTextDetails( new FreeTextIndexDetails(true) )
-            .setPCJIndexDetails(
-                    PCJIndexDetails.builder()
-                        .setEnabled(true)
-                        .setFluoDetails( new 
FluoDetails("test_instance_rya_pcj_updater") )
-                        .addPCJDetails(
-                                PCJDetails.builder()
-                                    .setId("pcj 1")
-                                    .setUpdateStrategy(PCJUpdateStrategy.BATCH)
-                                    .setLastUpdateTime( new Date() ))
-                        .addPCJDetails(
-                                PCJDetails.builder()
-                                    .setId("pcj 2")))
-            .setProspectorDetails( new ProspectorDetails(Optional.of(new 
Date())) )
-            .setJoinSelectivityDetails( new 
JoinSelectivityDetails(Optional.of(new Date())) )
-            .build();
-
-        // Setup the repository that will be tested using a mini instance of 
Accumulo.
-        final Connector connector = getClusterInstance().getConnector();
-        final RyaDetailsRepository repo = new 
AccumuloRyaInstanceDetailsRepository(connector, "testInstance");
-
-        // Initialize the repository
-        repo.initialize(details);
-
-        // Create a new state for the details.
-        final RyaDetails updated = new RyaDetails.Builder( details )
-                .setGeoIndexDetails( new GeoIndexDetails(false) )
-                .build();
-
-        // Execute the update.
-        repo.update(details, updated);
-
-        // Show the new state that is stored matches the updated state.
-        final RyaDetails fetched = repo.getRyaInstanceDetails();
-        assertEquals(updated, fetched);
-    }
-
-    @Test(expected = ConcurrentUpdateException.class)
-    public void update_outOfDate() throws AccumuloException, 
AccumuloSecurityException, AlreadyInitializedException, 
RyaDetailsRepositoryException {
-        final String instanceName = "testInstance";
-
-        // Create the metadata object the repository will be initialized with.
-        final RyaDetails details = RyaDetails.builder()
-            .setRyaInstanceName(instanceName)
-            .setRyaVersion("1.2.3.4")
-            .setEntityCentricIndexDetails( new EntityCentricIndexDetails(true) 
)
-            .setGeoIndexDetails( new GeoIndexDetails(true) )
-            .setTemporalIndexDetails( new TemporalIndexDetails(true) )
-            .setFreeTextDetails( new FreeTextIndexDetails(true) )
-            .setPCJIndexDetails(
-                    PCJIndexDetails.builder()
-                        .setEnabled(true)
-                        .setFluoDetails( new 
FluoDetails("test_instance_rya_pcj_updater") )
-                        .addPCJDetails(
-                                PCJDetails.builder()
-                                    .setId("pcj 1")
-                                    .setUpdateStrategy(PCJUpdateStrategy.BATCH)
-                                    .setLastUpdateTime( new Date() ))
-                        .addPCJDetails(
-                                PCJDetails.builder()
-                                    .setId("pcj 2")))
-            .setProspectorDetails( new ProspectorDetails(Optional.of(new 
Date())) )
-            .setJoinSelectivityDetails( new 
JoinSelectivityDetails(Optional.of(new Date())) )
-            .build();
-
-        // Setup the repository that will be tested using a mini instance of 
Accumulo.
-        final Connector connector = getClusterInstance().getConnector();
-        final RyaDetailsRepository repo = new 
AccumuloRyaInstanceDetailsRepository(connector, "testInstance");
-
-        // Initialize the repository
-        repo.initialize(details);
-
-        // Create a new state for the details.
-        final RyaDetails updated = new RyaDetails.Builder( details )
-                .setGeoIndexDetails( new GeoIndexDetails(false) )
-                .build();
-
-        // Try to execute the update where the old state is not the currently 
stored state.
-        repo.update(updated, updated);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/44a2dcf0/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/utils/VisibilitySimplifierTest.java
----------------------------------------------------------------------
diff --git 
a/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/utils/VisibilitySimplifierTest.java
 
b/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/utils/VisibilitySimplifierTest.java
deleted file mode 100644
index 3d22e2f..0000000
--- 
a/dao/accumulo.rya/src/test/java/mvm/rya/accumulo/utils/VisibilitySimplifierTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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 mvm.rya.accumulo.utils;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-
-/**
- * Tests the methods of {@link VisibilitySimplifier}.
- */
-public class VisibilitySimplifierTest {
-
-    @Test
-    public void noneRequired() {
-        final String simplified = new VisibilitySimplifier().simplify("u");
-        assertEquals("u", simplified);
-    }
-
-    @Test
-    public void parenthesis() {
-        final String simplified = new 
VisibilitySimplifier().simplify("(u&u)&u");
-        assertEquals("u", simplified);
-    }
-
-    @Test
-    public void manyAnds() {
-        final String simplified = new VisibilitySimplifier().simplify("u&u&u");
-        assertEquals("u", simplified);
-    }
-
-    @Test
-    public void complex() {
-        final String simplified = new 
VisibilitySimplifier().simplify("(a|b)|(a|b)|a|b");
-        assertEquals("a|b", simplified);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/44a2dcf0/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloITBase.java
----------------------------------------------------------------------
diff --git 
a/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloITBase.java 
b/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloITBase.java
new file mode 100644
index 0000000..7dd23e6
--- /dev/null
+++ b/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloITBase.java
@@ -0,0 +1,105 @@
+/**
+ * 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 mvm.rya.accumulo;
+
+import java.io.IOException;
+
+import org.apache.accumulo.core.client.AccumuloException;
+import org.apache.accumulo.core.client.AccumuloSecurityException;
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.minicluster.MiniAccumuloCluster;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.apache.zookeeper.ClientCnxn;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+
+/**
+ * Boilerplate code for a unit test that uses a {@link MiniAccumuloCluster}.
+ * <p>
+ * It uses the same instance of {@link MiniAccumuloCluster} and just clears out
+ * any tables that were added between tests.
+ */
+public class AccumuloITBase {
+
+    // Managed the MiniAccumuloCluster
+    private MiniAccumuloClusterInstance cluster = null;
+
+    @BeforeClass
+    public static void killLoudLogs() {
+        Logger.getLogger(ClientCnxn.class).setLevel(Level.ERROR);
+    }
+
+    @Before
+    public void initCluster() throws IOException, InterruptedException, 
AccumuloException, AccumuloSecurityException {
+        cluster = new MiniAccumuloClusterInstance();
+        cluster.startMiniAccumulo();
+    }
+
+
+    @After
+    public void tearDownCluster() throws IOException, InterruptedException {
+        cluster.stopMiniAccumulo();
+    }
+
+    /**
+     * @return The {@link MiniAccumuloClusterInstance} used by the tests.
+     */
+    public MiniAccumuloClusterInstance getClusterInstance() {
+        return cluster;
+    }
+
+    /**
+     * @return The root username.
+     */
+    public String getUsername() {
+        return cluster.getUsername();
+    }
+
+    /**
+     * @return The root password.
+     */
+    public String getPassword() {
+        return cluster.getPassword();
+    }
+
+    /**
+     * @return The MiniAccumulo's zookeeper instance name.
+     */
+    public String getInstanceName() {
+        return cluster.getInstanceName();
+    }
+
+    /**
+     * @return The MiniAccumulo's zookeepers.
+     */
+    public String getZookeepers() {
+        return cluster.getZookeepers();
+    }
+
+    /**
+     * @return A {@link Connector} that creates connections to the mini 
accumulo cluster.
+     * @throws AccumuloException Could not connect to the cluster.
+     * @throws AccumuloSecurityException Could not connect to the cluster 
because of a security violation.
+     */
+    public Connector getConnector() throws AccumuloException, 
AccumuloSecurityException {
+        return cluster.getConnector();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/44a2dcf0/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRdfConfigurationTest.java
----------------------------------------------------------------------
diff --git 
a/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRdfConfigurationTest.java
 
b/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRdfConfigurationTest.java
new file mode 100644
index 0000000..ffd316e
--- /dev/null
+++ 
b/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRdfConfigurationTest.java
@@ -0,0 +1,75 @@
+package mvm.rya.accumulo;
+
+/*
+ * 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.
+ */
+
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.accumulo.core.client.IteratorSetting;
+import org.apache.accumulo.core.security.Authorizations;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AccumuloRdfConfigurationTest {
+    private static final Logger logger = 
LoggerFactory.getLogger(AccumuloRdfConfigurationTest.class);
+
+    @Test
+    public void testAuths() {
+        String[] arr = {"U", "FOUO"};
+        String str = "U,FOUO";
+        Authorizations auths = new Authorizations(arr);
+
+        AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration();
+
+        conf.setAuths(arr);
+        assertTrue(Arrays.equals(arr, conf.getAuths()));
+        assertEquals(str, conf.getAuth());
+        assertEquals(auths, conf.getAuthorizations());
+
+        conf.setAuth(str);
+        assertTrue(Arrays.equals(arr, conf.getAuths()));
+        assertEquals(str, conf.getAuth());
+        assertEquals(auths, conf.getAuthorizations());
+    }
+
+    @Test
+    public void testIterators() {
+        AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration();
+
+        Map<String, String> options = new HashMap<String, String>();
+        options.put("key1", "value1");
+        options.put("key2", "value2");
+        IteratorSetting setting = new IteratorSetting(1, "test", "test2", 
options);
+
+        conf.setAdditionalIterators(setting);
+        IteratorSetting[] iteratorSettings = conf.getAdditionalIterators();
+        assertTrue(iteratorSettings.length == 1);
+
+        assertEquals(setting, iteratorSettings[0]);
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/44a2dcf0/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRyaDAOTest.java
----------------------------------------------------------------------
diff --git 
a/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRyaDAOTest.java
 
b/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRyaDAOTest.java
new file mode 100644
index 0000000..8b55070
--- /dev/null
+++ 
b/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRyaDAOTest.java
@@ -0,0 +1,713 @@
+package mvm.rya.accumulo;
+
+/*
+ * 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.
+ */
+
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import info.aduna.iteration.CloseableIteration;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.UUID;
+
+import mvm.rya.accumulo.query.AccumuloRyaQueryEngine;
+import mvm.rya.api.domain.RyaStatement;
+import mvm.rya.api.domain.RyaType;
+import mvm.rya.api.domain.RyaURI;
+import mvm.rya.api.persist.RyaDAOException;
+import mvm.rya.api.persist.query.RyaQuery;
+import mvm.rya.api.resolver.RdfToRyaConversions;
+import mvm.rya.api.resolver.RyaContext;
+
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.client.IteratorSetting;
+import org.apache.accumulo.core.client.Scanner;
+import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.client.mock.MockInstance;
+import org.apache.accumulo.core.iterators.FirstEntryInRowIterator;
+import org.calrissian.mango.collect.FluentCloseableIterable;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.openrdf.model.ValueFactory;
+import org.openrdf.model.impl.ValueFactoryImpl;
+import org.openrdf.model.vocabulary.XMLSchema;
+
+/**
+ * Class AccumuloRdfDAOTest
+ * Date: Mar 7, 2012
+ * Time: 9:42:28 AM
+ */
+public class AccumuloRyaDAOTest {
+
+    private AccumuloRyaDAO dao;
+    private ValueFactory vf = new ValueFactoryImpl();
+    static String litdupsNS = "urn:test:litdups#";
+    private AccumuloRdfConfiguration conf;
+    private Connector connector;
+
+    @Before
+    public void setUp() throws Exception {
+        dao = new AccumuloRyaDAO();
+        connector = new MockInstance().getConnector("", "");
+        dao.setConnector(connector);
+        conf = new AccumuloRdfConfiguration();
+        dao.setConf(conf);
+        dao.init();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        dao.purge(conf);
+        dao.destroy();
+    }
+
+    @Test
+    public void testAdd() throws Exception {
+        RyaURI cpu = RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, 
"cpu"));
+        RyaURI loadPerc = 
RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, "loadPerc"));
+        RyaURI uri1 = RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, 
"uri1"));
+        dao.add(new RyaStatement(cpu, loadPerc, uri1));
+
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
dao.getQueryEngine().query(new RyaStatement(cpu, loadPerc, null), conf);
+        int count = 0;
+        while (iter.hasNext()) {
+            assertTrue(uri1.equals(iter.next().getObject()));
+            count++;
+        }
+        iter.close();
+        assertEquals(1, count);
+
+        dao.delete(new RyaStatement(cpu, loadPerc, null), conf);
+
+        iter = dao.getQueryEngine().query(new RyaStatement(cpu, loadPerc, 
null), conf);
+        count = 0;
+        while (iter.hasNext()) {
+            count++;
+            iter.next();
+        }
+        iter.close();
+        assertEquals(0, count);
+    }
+
+    @Test
+    public void testDeleteDiffVisibility() throws Exception {
+        RyaURI cpu = RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, 
"cpu"));
+        RyaURI loadPerc = 
RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, "loadPerc"));
+        RyaURI uri1 = RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, 
"uri1"));
+        RyaStatement stmt1 = new RyaStatement(cpu, loadPerc, uri1, null, "1", 
"vis1".getBytes());
+        dao.add(stmt1);
+        RyaStatement stmt2 = new RyaStatement(cpu, loadPerc, uri1, null, "2", 
"vis2".getBytes());
+        dao.add(stmt2);
+
+        AccumuloRdfConfiguration cloneConf = conf.clone();
+        cloneConf.setAuth("vis1,vis2");
+
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
dao.getQueryEngine().query(new RyaStatement(cpu, loadPerc, null), cloneConf);
+        int count = 0;
+        while (iter.hasNext()) {
+            iter.next();
+            count++;
+        }
+        iter.close();
+        assertEquals(2, count);
+
+        dao.delete(stmt1, cloneConf);
+
+        iter = dao.getQueryEngine().query(new RyaStatement(cpu, loadPerc, 
null), cloneConf);
+        count = 0;
+        while (iter.hasNext()) {
+            iter.next();
+            count++;
+        }
+        iter.close();
+        assertEquals(1, count);
+    }
+
+    @Test
+    public void testDeleteDiffTimestamp() throws Exception {
+        RyaURI cpu = RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, 
"cpu"));
+        RyaURI loadPerc = 
RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, "loadPerc"));
+        RyaURI uri1 = RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, 
"uri1"));
+        RyaStatement stmt1 = new RyaStatement(cpu, loadPerc, uri1, null, "1", 
null, null, 100l);
+        dao.add(stmt1);
+        RyaStatement stmt2 = new RyaStatement(cpu, loadPerc, uri1, null, "2", 
null, null, 100l);
+        dao.add(stmt2);
+
+        int resultSize = 
FluentCloseableIterable.from(dao.getQueryEngine().query(
+          RyaQuery.builder(new RyaStatement(cpu, loadPerc, 
null)).build())).autoClose().size();
+        assertEquals(2, resultSize);
+
+        final RyaStatement addStmt = new RyaStatement(cpu, loadPerc, uri1, 
null, "1",
+                                                           null, null, 101l);
+        dao.delete(stmt1, conf);
+        dao.add(addStmt);
+
+        resultSize = FluentCloseableIterable.from(dao.getQueryEngine().query(
+          RyaQuery.builder(new RyaStatement(cpu, loadPerc, 
null)).build())).autoClose().size();
+        assertEquals(2, resultSize); //the delete marker should not delete the 
new stmt
+    }
+
+    @Test
+    public void testDelete() throws Exception {
+        RyaURI predicate = 
RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, "pred"));
+        RyaURI subj = RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, 
"subj"));
+
+        // create a "bulk load" of 10,000 statements
+        int statement_count = 10000;
+        for (int i = 0 ; i < statement_count ; i++){
+            //make the statement very large so we will get a lot of random 
flushes
+            RyaURI obj = 
RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, 
String.format("object%050d",i)));
+            RyaStatement stmt = new RyaStatement(subj, predicate, obj);
+            dao.add(stmt);
+        }
+        
+        CloseableIteration<RyaStatement, RyaDAOException> iter;
+        
+        //check to see if all of the statements made it to the subj table
+        //delete based on the data in the subj table
+        RyaStatement subjQuery = new RyaStatement(subj, null, null);
+        iter = dao.getQueryEngine().query(subjQuery, conf);
+        List<RyaStatement> stmts = new ArrayList<RyaStatement>();
+        while (iter.hasNext()) {
+            stmts.add(iter.next());
+        }
+        assertEquals(statement_count, stmts.size());
+        dao.delete(stmts.iterator(), conf);
+
+        // check statements in the predicate table
+        RyaStatement predQuery = new RyaStatement(null, predicate, null);
+        iter = dao.getQueryEngine().query(predQuery, conf);
+        int count = 0;
+        while (iter.hasNext()) {
+            count++;
+        }
+        iter.close();
+        assertEquals(0, count);
+    }
+
+    @Test
+    public void testAddEmptyString() throws Exception {
+        RyaURI cpu = RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, 
"cpu"));
+        RyaURI loadPerc = 
RdfToRyaConversions.convertURI(vf.createURI(litdupsNS, "loadPerc"));
+        RyaType empty = new RyaType("");
+        dao.add(new RyaStatement(cpu, loadPerc, empty));
+
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
dao.getQueryEngine().query(new RyaStatement(cpu, loadPerc, null), conf);
+        while (iter.hasNext()) {
+            assertEquals("", iter.next().getObject().getData());
+        }
+        iter.close();
+    }
+
+    @Test
+    public void testMaxResults() throws Exception {
+        RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+        RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+        dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + 
"uri1")));
+        dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + 
"uri2")));
+        dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + 
"uri3")));
+        dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + 
"uri4")));
+        dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + 
"uri5")));
+
+        AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+        AccumuloRdfConfiguration queryConf = new 
AccumuloRdfConfiguration(conf);
+        long limit = 3l;
+        queryConf.setLimit(limit);
+
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
queryEngine.query(new RyaStatement(cpu, loadPerc, null), queryConf);
+        int count = 0;
+        while (iter.hasNext()) {
+            iter.next().getObject();
+            count++;
+        }
+        iter.close();
+        assertEquals(limit, count);
+    }
+
+    @Test
+    public void testAddValue() throws Exception {
+        RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+        RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+        RyaURI uri1 = new RyaURI(litdupsNS + "uri1");
+        String myval = "myval";
+        dao.add(new RyaStatement(cpu, loadPerc, uri1, null, null, null, 
myval.getBytes()));
+
+        AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
queryEngine.query(new RyaStatement(cpu, loadPerc, null), conf);
+        assertTrue(iter.hasNext());
+        assertEquals(myval, new String(iter.next().getValue()));
+        iter.close();
+    }
+
+    @Test
+    public void testAddCv() throws Exception {
+        RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+        RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+        RyaURI uri1 = new RyaURI(litdupsNS + "uri1");
+        RyaURI uri2 = new RyaURI(litdupsNS + "uri2");
+        RyaURI uri3 = new RyaURI(litdupsNS + "uri3");
+        byte[] colVisABC = "A|B|C".getBytes();
+        byte[] colVisAB = "A|B".getBytes();
+        byte[] colVisA = "A".getBytes();
+        dao.add(new RyaStatement(cpu, loadPerc, uri1, null, null, colVisABC));
+        dao.add(new RyaStatement(cpu, loadPerc, uri2, null, null, colVisAB));
+        dao.add(new RyaStatement(cpu, loadPerc, uri3, null, null, colVisA));
+
+        AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+
+        //query with no auth
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
queryEngine.query(new RyaStatement(cpu, loadPerc, null), conf);
+        int count = 0;
+        while (iter.hasNext()) {
+            count++;
+            iter.next();
+        }
+        assertEquals(0, count);
+        iter.close();
+
+        AccumuloRdfConfiguration queryConf = new AccumuloRdfConfiguration();
+        queryConf.setAuth("B");
+        iter = queryEngine.query(new RyaStatement(cpu, loadPerc, null), 
queryConf);
+        count = 0;
+        while (iter.hasNext()) {
+            iter.next();
+            count++;
+        }
+        iter.close();
+        assertEquals(2, count);
+
+        queryConf.setAuth("A");
+        iter = queryEngine.query(new RyaStatement(cpu, loadPerc, null), 
queryConf);
+        count = 0;
+        while (iter.hasNext()) {
+            iter.next();
+            count++;
+        }
+        iter.close();
+        assertEquals(3, count);
+    }
+
+    @Test
+    public void testTTL() throws Exception {
+        RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+        RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+        long current = System.currentTimeMillis();
+        dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + 
"uri1"), null, null, null, null, current));
+        dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + 
"uri2"), null, null, null, null, current - 1010l));
+        dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + 
"uri3"), null, null, null, null, current - 2010l));
+        dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + 
"uri4"), null, null, null, null, current - 3010l));
+        dao.add(new RyaStatement(cpu, loadPerc, new RyaURI(litdupsNS + 
"uri5"), null, null, null, null, current - 4010l));
+
+        AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+        AccumuloRdfConfiguration queryConf = conf.clone();
+        queryConf.setTtl(3000l);
+
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
queryEngine.query(new RyaStatement(cpu, loadPerc, null), queryConf);
+        int count = 0;
+        while (iter.hasNext()) {
+            iter.next().getObject();
+            count++;
+        }
+        iter.close();
+        assertEquals(3, count);
+
+        queryConf.setStartTime(current - 3000l);
+        iter = queryEngine.query(new RyaStatement(cpu, loadPerc, null), 
queryConf);
+        count = 0;
+        while (iter.hasNext()) {
+            iter.next().getObject();
+            count++;
+        }
+        iter.close();
+        assertEquals(2, count);
+    }
+
+    @Test
+    public void testGetNamespace() throws Exception {
+        dao.addNamespace("ns", litdupsNS);
+        assertEquals(litdupsNS, dao.getNamespace("ns"));
+        dao.removeNamespace("ns");
+        assertNull(dao.getNamespace("ns"));
+    }
+
+    //TOOD: Add test for set of queries
+    @Test
+    public void testQuery() throws Exception {
+        RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+        RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+        RyaURI uri1 = new RyaURI(litdupsNS + "uri1");
+        RyaURI uri2 = new RyaURI(litdupsNS + "uri2");
+        RyaURI uri3 = new RyaURI(litdupsNS + "uri3");
+        RyaURI uri4 = new RyaURI(litdupsNS + "uri4");
+        RyaURI uri5 = new RyaURI(litdupsNS + "uri5");
+        RyaURI uri6 = new RyaURI(litdupsNS + "uri6");
+        dao.add(new RyaStatement(cpu, loadPerc, uri1));
+        dao.add(new RyaStatement(cpu, loadPerc, uri2));
+        dao.add(new RyaStatement(cpu, loadPerc, uri3));
+        dao.add(new RyaStatement(cpu, loadPerc, uri4));
+        dao.add(new RyaStatement(cpu, loadPerc, uri5));
+        dao.add(new RyaStatement(cpu, loadPerc, uri6));
+
+        AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+
+        Collection<RyaStatement> coll = new ArrayList();
+        coll.add(new RyaStatement(null, loadPerc, uri1));
+        coll.add(new RyaStatement(null, loadPerc, uri2));
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
queryEngine.batchQuery(coll, conf);
+        int count = 0;
+        while (iter.hasNext()) {
+            count++;
+            iter.next();
+        }
+        iter.close();
+        assertEquals(2, count);
+
+        //now use batchscanner
+        AccumuloRdfConfiguration queryConf = new 
AccumuloRdfConfiguration(conf);
+        queryConf.setMaxRangesForScanner(2);
+
+        coll = new ArrayList();
+        coll.add(new RyaStatement(null, loadPerc, uri1));
+        coll.add(new RyaStatement(null, loadPerc, uri2));
+        coll.add(new RyaStatement(null, loadPerc, uri3));
+        coll.add(new RyaStatement(null, loadPerc, uri4));
+        iter = queryEngine.batchQuery(coll, queryConf);
+        assertTrue(iter.hasNext()); //old code had a weird behaviour that 
could not perform hasNext consecutively
+        assertTrue(iter.hasNext());
+        assertTrue(iter.hasNext());
+        count = 0;
+        while (iter.hasNext()) {
+            count++;
+            assertTrue(iter.hasNext());
+            iter.next();
+        }
+        iter.close();
+        assertEquals(4, count);
+    }
+
+       @Test
+       public void testQueryDates() throws Exception {
+           RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+           RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+           RyaType uri0 = new RyaType(XMLSchema.DATETIME, "1960-01-01"); // 
How handles local time
+           RyaType uri1 = new RyaType(XMLSchema.DATETIME, 
"1992-01-01T+10:00"); // See Magadan Time
+           RyaType uri2 = new RyaType(XMLSchema.DATETIME, "2000-01-01TZ"); // 
How it handles UTC.
+           RyaType uri3 = new RyaType(XMLSchema.DATETIME, 
"2000-01-01T00:00:01.111Z");
+           RyaType uri4 = new RyaType(XMLSchema.DATETIME, 
"2000-01-01T00:00:01.111Z");  // duplicate
+           RyaType uri5 = new RyaType(XMLSchema.DATETIME, 
"2000-01-01T00:00:01-00:00");
+           RyaType uri6 = new RyaType(XMLSchema.DATETIME, 
"2000-01-01T00:00:01Z");  // duplicate
+           RyaType uri7 = new RyaType(XMLSchema.DATETIME, 
"-2000-01-01T00:00:01Z");
+           RyaType uri8 = new RyaType(XMLSchema.DATETIME, 
"111-01-01T00:00:01Z");
+           RyaType uri9 = new RyaType(XMLSchema.DATETIME, 
"12345-01-01T00:00:01Z");
+
+           dao.add(new RyaStatement(cpu, loadPerc, uri0));
+           dao.add(new RyaStatement(cpu, loadPerc, uri1));
+           dao.add(new RyaStatement(cpu, loadPerc, uri2));
+           dao.add(new RyaStatement(cpu, loadPerc, uri3));
+           dao.add(new RyaStatement(cpu, loadPerc, uri4));
+           dao.add(new RyaStatement(cpu, loadPerc, uri5));
+           dao.add(new RyaStatement(cpu, loadPerc, uri6));
+           dao.add(new RyaStatement(cpu, loadPerc, uri7));
+           dao.add(new RyaStatement(cpu, loadPerc, uri8));
+           dao.add(new RyaStatement(cpu, loadPerc, uri9));
+       
+           AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+       
+           Collection<RyaStatement> coll = new ArrayList();
+           coll.add(new RyaStatement(null, loadPerc, uri0));
+           coll.add(new RyaStatement(null, loadPerc, uri1));
+           coll.add(new RyaStatement(null, loadPerc, uri2));
+           CloseableIteration<RyaStatement, RyaDAOException> iter = 
queryEngine.batchQuery(coll, conf);
+           int count = 0;
+           while (iter.hasNext()) {
+               count++;
+               iter.next();
+           }
+           iter.close();
+           assertEquals("Three time zones should be normalized when stored, 
then normalized same when queried.",3, count);
+       
+           //now use batchscanner
+           AccumuloRdfConfiguration queryConf = new 
AccumuloRdfConfiguration(conf);
+           queryConf.setMaxRangesForScanner(2);
+       
+           coll = new ArrayList();
+           coll.add(new RyaStatement(null, loadPerc, uri0));
+           coll.add(new RyaStatement(null, loadPerc, uri1));
+           coll.add(new RyaStatement(null, loadPerc, uri2));
+           coll.add(new RyaStatement(null, loadPerc, uri3));
+           coll.add(new RyaStatement(null, loadPerc, uri4));
+           coll.add(new RyaStatement(null, loadPerc, uri5));
+           coll.add(new RyaStatement(null, loadPerc, uri6));
+           coll.add(new RyaStatement(null, loadPerc, uri7));
+           coll.add(new RyaStatement(null, loadPerc, uri8));
+           coll.add(new RyaStatement(null, loadPerc, uri9));
+           iter = queryEngine.batchQuery(coll, queryConf);
+           count = 0;
+           while (iter.hasNext()) {
+               count++;
+               iter.next();
+           }
+           iter.close();
+           assertEquals("Variety of time specs, including BC, pre-1970, 
duplicate pair ovewrite,future, 3 digit year.",8, count);
+       }
+
+       @Test
+    public void testQueryCollectionRegex() throws Exception {
+        RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+        RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+        RyaURI uri1 = new RyaURI(litdupsNS + "uri1");
+        RyaURI uri2 = new RyaURI(litdupsNS + "uri2");
+        RyaURI uri3 = new RyaURI(litdupsNS + "uri3");
+        RyaURI uri4 = new RyaURI(litdupsNS + "uri4");
+        RyaURI uri5 = new RyaURI(litdupsNS + "uri5");
+        RyaURI uri6 = new RyaURI(litdupsNS + "uri6");
+        dao.add(new RyaStatement(cpu, loadPerc, uri1));
+        dao.add(new RyaStatement(cpu, loadPerc, uri2));
+        dao.add(new RyaStatement(cpu, loadPerc, uri3));
+        dao.add(new RyaStatement(cpu, loadPerc, uri4));
+        dao.add(new RyaStatement(cpu, loadPerc, uri5));
+        dao.add(new RyaStatement(cpu, loadPerc, uri6));
+
+        AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+
+        Collection<RyaStatement> coll = new ArrayList();
+        coll.add(new RyaStatement(null, loadPerc, uri1));
+        coll.add(new RyaStatement(null, loadPerc, uri2));
+        conf.setRegexPredicate(loadPerc.getData());
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
queryEngine.batchQuery(coll, conf);
+        int count = 0;
+        while (iter.hasNext()) {
+            count++;
+            iter.next();
+        }
+        iter.close();
+        assertEquals(2, count);
+
+        conf.setRegexPredicate("notLoadPerc");
+        iter = queryEngine.batchQuery(coll, conf);
+        count = 0;
+        while (iter.hasNext()) {
+            count++;
+            iter.next();
+        }
+        iter.close();
+        assertEquals(0, count);
+    }
+
+    @Test
+    public void testQueryCollectionRegexWBatchScanner() throws Exception {
+        RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+        RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+        RyaURI uri1 = new RyaURI(litdupsNS + "uri1");
+        RyaURI uri2 = new RyaURI(litdupsNS + "uri2");
+        RyaURI uri3 = new RyaURI(litdupsNS + "uri3");
+        RyaURI uri4 = new RyaURI(litdupsNS + "uri4");
+        RyaURI uri5 = new RyaURI(litdupsNS + "uri5");
+        RyaURI uri6 = new RyaURI(litdupsNS + "uri6");
+        dao.add(new RyaStatement(cpu, loadPerc, uri1));
+        dao.add(new RyaStatement(cpu, loadPerc, uri2));
+        dao.add(new RyaStatement(cpu, loadPerc, uri3));
+        dao.add(new RyaStatement(cpu, loadPerc, uri4));
+        dao.add(new RyaStatement(cpu, loadPerc, uri5));
+        dao.add(new RyaStatement(cpu, loadPerc, uri6));
+
+        AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+        AccumuloRdfConfiguration queryConf = new 
AccumuloRdfConfiguration(conf);
+        queryConf.setMaxRangesForScanner(1);
+
+        Collection<RyaStatement> coll = new ArrayList();
+        coll.add(new RyaStatement(null, loadPerc, uri1));
+        coll.add(new RyaStatement(null, loadPerc, uri2));
+        conf.setRegexPredicate(loadPerc.getData());
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
queryEngine.batchQuery(coll, queryConf);
+        int count = 0;
+        while (iter.hasNext()) {
+            count++;
+            iter.next();
+        }
+        iter.close();
+        assertEquals(2, count);
+
+        queryConf.setRegexPredicate("notLoadPerc");
+        iter = queryEngine.batchQuery(coll, queryConf);
+        count = 0;
+        while (iter.hasNext()) {
+            count++;
+            iter.next();
+        }
+        iter.close();
+        assertEquals(0, count);
+    }
+
+    @Test
+    public void testLiteralTypes() throws Exception {
+        RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+        RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+        RyaType longLit = new RyaType(XMLSchema.LONG, "3");
+
+        dao.add(new RyaStatement(cpu, loadPerc, longLit));
+
+        AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+
+        CloseableIteration<RyaStatement, RyaDAOException> query = 
queryEngine.query(new RyaStatement(cpu, null, null), conf);
+        assertTrue(query.hasNext());
+        RyaStatement next = query.next();
+        assertEquals(new Long(longLit.getData()), new 
Long(next.getObject().getData()));
+        query.close();
+
+        RyaType doubleLit = new RyaType(XMLSchema.DOUBLE, "2.0");
+
+        dao.add(new RyaStatement(cpu, loadPerc, doubleLit));
+
+        query = queryEngine.query(new RyaStatement(cpu, loadPerc, doubleLit), 
conf);
+        assertTrue(query.hasNext());
+        next = query.next();
+        assertEquals(Double.parseDouble(doubleLit.getData()), 
Double.parseDouble(next.getObject().getData()), 0.001);
+        query.close();
+    }
+
+    @Test
+    public void testSameLiteralStringTypes() throws Exception {
+        RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+        RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+        RyaType longLit = new RyaType(XMLSchema.LONG, "10");
+        RyaType strLit = new RyaType(XMLSchema.STRING, new 
String(RyaContext.getInstance().serializeType(longLit)[0]));
+
+        RyaStatement expected = new RyaStatement(cpu, loadPerc, longLit);
+        dao.add(expected);
+        dao.add(new RyaStatement(cpu, loadPerc, strLit));
+
+        AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+
+        CloseableIteration<RyaStatement, RyaDAOException> query = 
queryEngine.query(new RyaStatement(cpu, loadPerc, longLit), conf);
+        assertTrue(query.hasNext());
+        RyaStatement next = query.next();
+        assertEquals(new Long(longLit.getData()), new 
Long(next.getObject().getData()));
+        assertEquals(longLit.getDataType(), next.getObject().getDataType());
+        assertFalse(query.hasNext());
+        query.close();
+    }
+
+    @Test
+    public void testPurge() throws RyaDAOException, TableNotFoundException {
+        dao.add(newRyaStatement());
+        assertFalse("table should not be empty", areTablesEmpty());
+
+        dao.purge(conf);
+        assertTrue("table should be empty", areTablesEmpty());
+        //assertNotNull(dao.getVersion());
+    }
+
+    @Test
+    public void testPurgeDoesNotBreakBatchWriters() throws 
TableNotFoundException, RyaDAOException {
+        dao.purge(conf);
+        assertTrue("table should be empty", areTablesEmpty());
+
+        dao.add(newRyaStatement());
+        assertFalse("table should not be empty", areTablesEmpty());
+    }
+
+    @Test
+    public void testDropAndDestroy() throws RyaDAOException {
+        assertTrue(dao.isInitialized());
+        dao.dropAndDestroy();
+        for (String tableName : dao.getTables()) {
+            assertFalse(tableExists(tableName));
+        }
+        assertFalse(dao.isInitialized());
+    }
+
+    @Test
+    public void testQueryWithIterators() throws Exception {
+        RyaURI cpu = new RyaURI(litdupsNS + "cpu");
+        RyaURI loadPerc = new RyaURI(litdupsNS + "loadPerc");
+        RyaURI uri1 = new RyaURI(litdupsNS + "uri1");
+        dao.add(new RyaStatement(cpu, loadPerc, uri1, null, "qual1"));
+        dao.add(new RyaStatement(cpu, loadPerc, uri1, null, "qual2"));
+
+        AccumuloRyaQueryEngine queryEngine = dao.getQueryEngine();
+
+        AccumuloRdfConfiguration queryConf = new 
AccumuloRdfConfiguration(conf);
+        IteratorSetting firstEntryInRow = new IteratorSetting(3 /* correct 
value?? */, FirstEntryInRowIterator.class);
+        queryConf.setAdditionalIterators(firstEntryInRow);
+
+        Collection<RyaStatement> coll = new ArrayList<>();
+        coll.add(new RyaStatement(null, loadPerc, uri1));
+        CloseableIteration<RyaStatement, RyaDAOException> iter = 
queryEngine.batchQuery(coll, queryConf);
+        int count = 0;
+        while (iter.hasNext()) {
+            count++;
+            iter.next();
+        }
+        iter.close();
+        assertEquals(1, count);
+
+        //Assert that without the iterator we get 2
+        coll = new ArrayList<>();
+        coll.add(new RyaStatement(null, loadPerc, uri1));
+        iter = queryEngine.batchQuery(coll, conf);
+        count = 0;
+        while (iter.hasNext()) {
+            count++;
+            iter.next();
+        }
+        iter.close();
+        assertEquals(2, count);
+
+    }
+
+    private boolean areTablesEmpty() throws TableNotFoundException {
+        for (String table : dao.getTables()) {
+            if (tableExists(table)) {
+                // TODO: filter out version
+                if (createScanner(table).iterator().hasNext()) {
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    private boolean tableExists(String tableName) {
+        return dao.getConnector().tableOperations().exists(tableName);
+    }
+
+    private Scanner createScanner(String tableName) throws 
TableNotFoundException {
+        return dao.getConnector().createScanner(tableName, 
conf.getAuthorizations());
+    }
+
+    private RyaStatement newRyaStatement() {
+        RyaURI subject = new RyaURI(litdupsNS + randomString());
+        RyaURI predicate = new RyaURI(litdupsNS + randomString());
+        RyaType object = new RyaType(randomString());
+
+        return new RyaStatement(subject, predicate, object);
+    }
+
+    private String randomString() {
+        return UUID.randomUUID().toString();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/44a2dcf0/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRyaITBase.java
----------------------------------------------------------------------
diff --git 
a/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRyaITBase.java 
b/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRyaITBase.java
new file mode 100644
index 0000000..dea227b
--- /dev/null
+++ 
b/dao/accumulo.rya/src/test/java/org/apache/rya/accumulo/AccumuloRyaITBase.java
@@ -0,0 +1,109 @@
+/**
+ * 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 mvm.rya.accumulo;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.accumulo.core.client.AccumuloException;
+import org.apache.accumulo.core.client.AccumuloSecurityException;
+import org.apache.accumulo.core.client.TableNotFoundException;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+
+import com.google.common.base.Optional;
+
+import mvm.rya.accumulo.instance.AccumuloRyaInstanceDetailsRepository;
+import mvm.rya.api.instance.RyaDetails;
+import mvm.rya.api.instance.RyaDetails.EntityCentricIndexDetails;
+import mvm.rya.api.instance.RyaDetails.FreeTextIndexDetails;
+import mvm.rya.api.instance.RyaDetails.GeoIndexDetails;
+import mvm.rya.api.instance.RyaDetails.JoinSelectivityDetails;
+import mvm.rya.api.instance.RyaDetails.PCJIndexDetails;
+import mvm.rya.api.instance.RyaDetails.ProspectorDetails;
+import mvm.rya.api.instance.RyaDetails.TemporalIndexDetails;
+import mvm.rya.api.instance.RyaDetailsRepository;
+import mvm.rya.api.instance.RyaDetailsRepository.AlreadyInitializedException;
+import mvm.rya.api.instance.RyaDetailsRepository.RyaDetailsRepositoryException;
+
+/**
+ * Contains boilerplate code for spinning up a Mini Accumulo Cluster and 
initializing
+ * some of the Rya stuff. We can not actually initialize an instance of Rya 
here
+ * because Sail is not available to us.
+ */
+public class AccumuloRyaITBase {
+
+    // Managed the MiniAccumuloCluster
+    private static final MiniAccumuloClusterInstance cluster = new 
MiniAccumuloClusterInstance();
+
+    // Manage the Rya instances that are hosted on the cluster
+    protected static final AtomicInteger ryaInstanceNameCounter = new 
AtomicInteger(1);
+    private String ryaInstanceName;
+
+    @BeforeClass
+    public static void initCluster() throws IOException, InterruptedException, 
AccumuloException, AccumuloSecurityException {
+        cluster.startMiniAccumulo();
+    }
+
+    @Before
+    public void prepareForNextTest() throws AccumuloException, 
AccumuloSecurityException, TableNotFoundException, AlreadyInitializedException, 
RyaDetailsRepositoryException {
+        // Get the next Rya instance name.
+        ryaInstanceName = "testInstance" + 
ryaInstanceNameCounter.getAndIncrement() + "_";
+
+        // Create Rya Details for the instance name.
+        final RyaDetailsRepository detailsRepo = new 
AccumuloRyaInstanceDetailsRepository(cluster.getConnector(), ryaInstanceName);
+
+        final RyaDetails details = RyaDetails.builder()
+                .setRyaInstanceName(ryaInstanceName)
+                .setRyaVersion("0.0.0.0")
+                .setFreeTextDetails( new FreeTextIndexDetails(true) )
+                .setEntityCentricIndexDetails( new 
EntityCentricIndexDetails(true) )
+                .setGeoIndexDetails( new GeoIndexDetails(true) )
+                .setTemporalIndexDetails( new TemporalIndexDetails(true) )
+                .setPCJIndexDetails(
+                        PCJIndexDetails.builder()
+                            .setEnabled(true) )
+                .setJoinSelectivityDetails( new JoinSelectivityDetails( 
Optional.<Date>absent() ) )
+                .setProspectorDetails( new ProspectorDetails( 
Optional.<Date>absent() ))
+                .build();
+
+        detailsRepo.initialize(details);
+    }
+
+    @AfterClass
+    public static void tearDownCluster() throws IOException, 
InterruptedException {
+        cluster.stopMiniAccumulo();
+    }
+
+    /**
+     * @return The {@link MiniAccumuloClusterInstance} used by the tests.
+     */
+    public MiniAccumuloClusterInstance getClusterInstance() {
+        return cluster;
+    }
+
+    /**
+     * @return The name of the Rya instance that is being used for the current 
test.
+     */
+    public String getRyaInstanceName() {
+        return ryaInstanceName;
+    }
+}
\ No newline at end of file

Reply via email to