Bug 2187: Add datastoreType to add-shard-replica RPC
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / AbstractShardTest.java
index 3f0a1bfc861ab34b9499bc47a2da7af345f4f136..36aa9a27213edad6f79c62d63abd36917a7c32fe 100644 (file)
@@ -23,7 +23,6 @@ import com.google.common.base.Function;
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.Uninterruptibles;
-import java.util.Collections;
 import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutionException;
@@ -38,6 +37,7 @@ import org.opendaylight.controller.cluster.datastore.DatastoreContext.Builder;
 import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier;
 import org.opendaylight.controller.cluster.datastore.modification.MutableCompositeModification;
 import org.opendaylight.controller.cluster.datastore.modification.WriteModification;
+import org.opendaylight.controller.cluster.raft.TestActorFactory;
 import org.opendaylight.controller.cluster.raft.utils.InMemoryJournal;
 import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore;
 import org.opendaylight.controller.md.cluster.datastore.model.TestModel;
@@ -50,7 +50,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
@@ -71,6 +70,8 @@ public abstract class AbstractShardTest extends AbstractActorTest{
             shardJournalRecoveryLogBatchSize(3).shardSnapshotBatchCount(5000).
             shardHeartbeatIntervalInMillis(100);
 
+    protected final TestActorFactory actorFactory = new TestActorFactory(getSystem());
+
     @Before
     public void setUp() {
         InMemorySnapshotStore.clear();
@@ -81,6 +82,7 @@ public abstract class AbstractShardTest extends AbstractActorTest{
     public void tearDown() {
         InMemorySnapshotStore.clear();
         InMemoryJournal.clear();
+        actorFactory.close();
     }
 
     protected DatastoreContext newDatastoreContext() {
@@ -88,8 +90,11 @@ public abstract class AbstractShardTest extends AbstractActorTest{
     }
 
     protected Props newShardProps() {
-        return Shard.props(shardID, Collections.<String,String>emptyMap(),
-                newDatastoreContext(), SCHEMA_CONTEXT);
+        return newShardBuilder().props();
+    }
+
+    protected Shard.Builder newShardBuilder() {
+        return Shard.builder().id(shardID).datastoreContext(newDatastoreContext()).schemaContext(SCHEMA_CONTEXT);
     }
 
     protected void testRecovery(final Set<Integer> listEntryKeys) throws Exception {
@@ -104,8 +109,7 @@ public abstract class AbstractShardTest extends AbstractActorTest{
         Creator<Shard> creator = new Creator<Shard>() {
             @Override
             public Shard create() throws Exception {
-                return new Shard(shardID, Collections.<String,String>emptyMap(),
-                        newDatastoreContext(), SCHEMA_CONTEXT) {
+                return new Shard(newShardBuilder()) {
                     @Override
                     protected void onRecoveryComplete() {
                         try {
@@ -243,16 +247,11 @@ public abstract class AbstractShardTest extends AbstractActorTest{
 
     public static NormalizedNode<?,?> readStore(final TestActorRef<? extends Shard> shard, final YangInstanceIdentifier id)
             throws ExecutionException, InterruptedException {
-        return readStore(shard.underlyingActor().getDataStore().getDataTree(), id);
+        return shard.underlyingActor().getDataStore().readNode(id).orNull();
     }
 
     public static NormalizedNode<?,?> readStore(final DataTree store, final YangInstanceIdentifier id) {
-        final DataTreeSnapshot transaction = store.takeSnapshot();
-
-        final Optional<NormalizedNode<?, ?>> optional = transaction.readNode(id);
-        final NormalizedNode<?, ?> node = optional.isPresent()? optional.get() : null;
-
-        return node;
+        return store.takeSnapshot().readNode(id).orNull();
     }
 
     public static void writeToStore(final TestActorRef<Shard> shard, final YangInstanceIdentifier id,