Deprecate 3PC protobuff messages
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / ThreePhaseCommitCohortProxyTest.java
index d595adc8bb80c0a98701526b2240b757c1f2d6c6..0ab92dda893c99e52fe548079f37e89fa6ba6f1d 100644 (file)
@@ -1,14 +1,21 @@
+/*
+ * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
 package org.opendaylight.controller.cluster.datastore;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyLong;
 import static org.mockito.Matchers.isA;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
+import static org.opendaylight.controller.cluster.datastore.DataStoreVersions.CURRENT_VERSION;
 import akka.actor.ActorPath;
 import akka.actor.ActorSelection;
 import akka.actor.Props;
@@ -32,11 +39,9 @@ import org.opendaylight.controller.cluster.datastore.messages.CanCommitTransacti
 import org.opendaylight.controller.cluster.datastore.messages.CanCommitTransactionReply;
 import org.opendaylight.controller.cluster.datastore.messages.CommitTransaction;
 import org.opendaylight.controller.cluster.datastore.messages.CommitTransactionReply;
-import org.opendaylight.controller.cluster.datastore.messages.PreCommitTransaction;
-import org.opendaylight.controller.cluster.datastore.messages.PreCommitTransactionReply;
 import org.opendaylight.controller.cluster.datastore.messages.SerializableMessage;
 import org.opendaylight.controller.cluster.datastore.utils.ActorContext;
-import org.opendaylight.controller.cluster.datastore.utils.DoNothingActor;
+import org.opendaylight.controller.cluster.raft.utils.DoNothingActor;
 import scala.concurrent.Future;
 import scala.concurrent.duration.Duration;
 
@@ -127,7 +132,7 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
                 any(ActorSelection.class), isA(requestType), any(Timeout.class));
     }
 
-    private void propagateExecutionExceptionCause(ListenableFuture<?> future) throws Throwable {
+    private static void propagateExecutionExceptionCause(ListenableFuture<?> future) throws Throwable {
 
         try {
             future.get(5, TimeUnit.SECONDS);
@@ -142,21 +147,19 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
 
         ThreePhaseCommitCohortProxy proxy = setupProxy(1);
 
-        setupMockActorContext(CanCommitTransaction.SERIALIZABLE_CLASS,
-                CanCommitTransactionReply.YES);
+        setupMockActorContext(CanCommitTransaction.class, CanCommitTransactionReply.yes(CURRENT_VERSION));
 
         ListenableFuture<Boolean> future = proxy.canCommit();
 
         assertEquals("canCommit", true, future.get(5, TimeUnit.SECONDS));
 
-        setupMockActorContext(CanCommitTransaction.SERIALIZABLE_CLASS,
-                CanCommitTransactionReply.NO);
+        setupMockActorContext(CanCommitTransaction.class, CanCommitTransactionReply.no(CURRENT_VERSION));
 
         future = proxy.canCommit();
 
         assertEquals("canCommit", false, future.get(5, TimeUnit.SECONDS));
 
-        verifyCohortInvocations(2, CanCommitTransaction.SERIALIZABLE_CLASS);
+        verifyCohortInvocations(2, CanCommitTransaction.class);
     }
 
     @Test
@@ -164,14 +167,14 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
 
         ThreePhaseCommitCohortProxy proxy = setupProxy(2);
 
-        setupMockActorContext(CanCommitTransaction.SERIALIZABLE_CLASS,
-                CanCommitTransactionReply.YES, CanCommitTransactionReply.YES);
+        setupMockActorContext(CanCommitTransaction.class,
+                CanCommitTransactionReply.yes(CURRENT_VERSION), CanCommitTransactionReply.yes(CURRENT_VERSION));
 
         ListenableFuture<Boolean> future = proxy.canCommit();
 
         assertEquals("canCommit", true, future.get(5, TimeUnit.SECONDS));
 
-        verifyCohortInvocations(2, CanCommitTransaction.SERIALIZABLE_CLASS);
+        verifyCohortInvocations(2, CanCommitTransaction.class);
     }
 
     @Test
@@ -179,8 +182,9 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
 
         ThreePhaseCommitCohortProxy proxy = setupProxy(3);
 
-        setupMockActorContext(CanCommitTransaction.SERIALIZABLE_CLASS,
-                CanCommitTransactionReply.YES, CanCommitTransactionReply.NO, CanCommitTransactionReply.YES);
+        setupMockActorContext(CanCommitTransaction.class,
+                CanCommitTransactionReply.yes(CURRENT_VERSION), CanCommitTransactionReply.no(CURRENT_VERSION),
+                CanCommitTransactionReply.yes(CURRENT_VERSION));
 
         ListenableFuture<Boolean> future = proxy.canCommit();
 
@@ -188,7 +192,7 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
 
         assertEquals("canCommit", false, actual);
 
-        verifyCohortInvocations(2, CanCommitTransaction.SERIALIZABLE_CLASS);
+        verifyCohortInvocations(2, CanCommitTransaction.class);
     }
 
     @Test(expected = TestException.class)
@@ -196,7 +200,7 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
 
         ThreePhaseCommitCohortProxy proxy = setupProxy(1);
 
-        setupMockActorContext(CanCommitTransaction.SERIALIZABLE_CLASS, new TestException());
+        setupMockActorContext(CanCommitTransaction.class, new TestException());
 
         propagateExecutionExceptionCause(proxy.canCommit());
     }
@@ -206,8 +210,8 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
 
         ThreePhaseCommitCohortProxy proxy = setupProxy(1);
 
-        setupMockActorContext(CanCommitTransaction.SERIALIZABLE_CLASS,
-                new PreCommitTransactionReply());
+        setupMockActorContext(CanCommitTransaction.class,
+                new CommitTransactionReply());
 
         proxy.canCommit().get(5, TimeUnit.SECONDS);
     }
@@ -220,7 +224,7 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
         try {
             propagateExecutionExceptionCause(proxy.canCommit());
         } finally {
-            verifyCohortInvocations(0, CanCommitTransaction.SERIALIZABLE_CLASS);
+            verifyCohortInvocations(0, CanCommitTransaction.class);
         }
     }
 
@@ -229,9 +233,6 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
         // Precommit is currently a no-op
         ThreePhaseCommitCohortProxy proxy = setupProxy(1);
 
-        setupMockActorContext(PreCommitTransaction.SERIALIZABLE_CLASS,
-                new PreCommitTransactionReply());
-
         proxy.preCommit().get(5, TimeUnit.SECONDS);
     }
 
@@ -239,23 +240,23 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
     public void testAbort() throws Exception {
         ThreePhaseCommitCohortProxy proxy = setupProxy(1);
 
-        setupMockActorContext(AbortTransaction.SERIALIZABLE_CLASS, new AbortTransactionReply());
+        setupMockActorContext(AbortTransaction.class, new AbortTransactionReply());
 
         proxy.abort().get(5, TimeUnit.SECONDS);
 
-        verifyCohortInvocations(1, AbortTransaction.SERIALIZABLE_CLASS);
+        verifyCohortInvocations(1, AbortTransaction.class);
     }
 
     @Test
     public void testAbortWithFailure() throws Exception {
         ThreePhaseCommitCohortProxy proxy = setupProxy(1);
 
-        setupMockActorContext(AbortTransaction.SERIALIZABLE_CLASS, new RuntimeException("mock"));
+        setupMockActorContext(AbortTransaction.class, new RuntimeException("mock"));
 
         // The exception should not get propagated.
         proxy.abort().get(5, TimeUnit.SECONDS);
 
-        verifyCohortInvocations(1, AbortTransaction.SERIALIZABLE_CLASS);
+        verifyCohortInvocations(1, AbortTransaction.class);
     }
 
     @Test
@@ -266,7 +267,7 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
         // The exception should not get propagated.
         proxy.abort().get(5, TimeUnit.SECONDS);
 
-        verifyCohortInvocations(0, AbortTransaction.SERIALIZABLE_CLASS);
+        verifyCohortInvocations(0, AbortTransaction.class);
     }
 
     @Test
@@ -274,12 +275,12 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
 
         ThreePhaseCommitCohortProxy proxy = setupProxy(2);
 
-        setupMockActorContext(CommitTransaction.SERIALIZABLE_CLASS, new CommitTransactionReply(),
+        setupMockActorContext(CommitTransaction.class, new CommitTransactionReply(),
                 new CommitTransactionReply());
 
         proxy.commit().get(5, TimeUnit.SECONDS);
 
-        verifyCohortInvocations(2, CommitTransaction.SERIALIZABLE_CLASS);
+        verifyCohortInvocations(2, CommitTransaction.class);
     }
 
     @Test(expected = TestException.class)
@@ -287,7 +288,7 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
 
         ThreePhaseCommitCohortProxy proxy = setupProxy(2);
 
-        setupMockActorContext(CommitTransaction.SERIALIZABLE_CLASS, new CommitTransactionReply(),
+        setupMockActorContext(CommitTransaction.class, new CommitTransactionReply(),
                 new TestException());
 
         propagateExecutionExceptionCause(proxy.commit());
@@ -298,7 +299,7 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
 
         ThreePhaseCommitCohortProxy proxy = setupProxy(1);
 
-        setupMockActorContext(CommitTransaction.SERIALIZABLE_CLASS, new PreCommitTransactionReply());
+        setupMockActorContext(CommitTransaction.class, new AbortTransactionReply());
 
         proxy.commit().get(5, TimeUnit.SECONDS);
     }
@@ -312,8 +313,7 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
             propagateExecutionExceptionCause(proxy.commit());
         } finally {
 
-            verify(actorContext, never()).setTxCreationLimit(anyLong());
-            verifyCohortInvocations(0, CommitTransaction.SERIALIZABLE_CLASS);
+            verifyCohortInvocations(0, CommitTransaction.class);
         }
 
     }
@@ -323,13 +323,10 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
 
         ThreePhaseCommitCohortProxy proxy = setupProxy(2);
 
-        setupMockActorContext(CanCommitTransaction.SERIALIZABLE_CLASS,
-                CanCommitTransactionReply.YES, CanCommitTransactionReply.YES);
-
-        setupMockActorContext(PreCommitTransaction.SERIALIZABLE_CLASS,
-                new PreCommitTransactionReply(), new PreCommitTransactionReply());
+        setupMockActorContext(CanCommitTransaction.class,
+                CanCommitTransactionReply.yes(CURRENT_VERSION), CanCommitTransactionReply.yes(CURRENT_VERSION));
 
-        setupMockActorContext(CommitTransaction.SERIALIZABLE_CLASS,
+        setupMockActorContext(CommitTransaction.class,
                 new CommitTransactionReply(), new CommitTransactionReply());
 
         assertEquals(10.0, actorContext.getTxCreationLimit(), 1e-15);
@@ -338,8 +335,8 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
         proxy.preCommit().get(5, TimeUnit.SECONDS);
         proxy.commit().get(5, TimeUnit.SECONDS);
 
-        verifyCohortInvocations(2, CanCommitTransaction.SERIALIZABLE_CLASS);
-        verifyCohortInvocations(2, CommitTransaction.SERIALIZABLE_CLASS);
+        verifyCohortInvocations(2, CanCommitTransaction.class);
+        verifyCohortInvocations(2, CommitTransaction.class);
 
     }
 
@@ -354,6 +351,5 @@ public class ThreePhaseCommitCohortProxyTest extends AbstractActorTest {
         proxy.preCommit().get(5, TimeUnit.SECONDS);
         proxy.commit().get(5, TimeUnit.SECONDS);
 
-        verify(actorContext, never()).setTxCreationLimit(anyLong());
     }
 }