X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FTransactionProxyTest.java;h=f9ae1bbd0ff6dcb3524762b45c440eb7780eeb9d;hb=4f1f2ae598588f6aa5aac59b2206d97ad402a193;hp=8f30331550dddd539c39cf8e8067610547ec4fd5;hpb=e448e4e5f1f071aa61152b2f49b239d878c0a580;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionProxyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionProxyTest.java index 8f30331550..f9ae1bbd0f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionProxyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionProxyTest.java @@ -43,6 +43,7 @@ import org.junit.Assert; import org.junit.Test; import org.mockito.InOrder; import org.mockito.Mockito; +import org.opendaylight.controller.cluster.access.concepts.MemberName; import org.opendaylight.controller.cluster.datastore.config.Configuration; import org.opendaylight.controller.cluster.datastore.exceptions.NoShardLeaderException; import org.opendaylight.controller.cluster.datastore.exceptions.NotInitializedException; @@ -92,7 +93,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_ONLY); doReturn(readDataReply(null)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData()); + eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); Optional> readOptional = transactionProxy.read( TestModel.TEST_PATH).get(5, TimeUnit.SECONDS); @@ -102,7 +103,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { NormalizedNode expectedNode = ImmutableNodes.containerNode(TestModel.TEST_QNAME); doReturn(readDataReply(expectedNode)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData()); + eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); readOptional = transactionProxy.read(TestModel.TEST_PATH).get(5, TimeUnit.SECONDS); @@ -116,7 +117,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { ActorRef actorRef = setupActorContextWithInitialCreateTransaction(getSystem(), READ_ONLY); doReturn(Futures.successful(new Object())).when(mockActorContext). - executeOperationAsync(eq(actorSelection(actorRef)), eqReadData()); + executeOperationAsync(eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_ONLY); @@ -128,7 +129,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { ActorRef actorRef = setupActorContextWithInitialCreateTransaction(getSystem(), READ_ONLY); doReturn(Futures.failed(new TestException())).when(mockActorContext). - executeOperationAsync(eq(actorSelection(actorRef)), eqReadData()); + executeOperationAsync(eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_ONLY); @@ -188,7 +189,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { expectBatchedModifications(actorRef, 1); doReturn(readDataReply(expectedNode)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData()); + eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_WRITE); @@ -202,10 +203,10 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { InOrder inOrder = Mockito.inOrder(mockActorContext); inOrder.verify(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), isA(BatchedModifications.class)); + eq(actorSelection(actorRef)), isA(BatchedModifications.class), any(Timeout.class)); inOrder.verify(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData()); + eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); } @Test(expected=IllegalStateException.class) @@ -240,14 +241,14 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_ONLY); doReturn(dataExistsReply(false)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqDataExists()); + eq(actorSelection(actorRef)), eqDataExists(), any(Timeout.class)); Boolean exists = transactionProxy.exists(TestModel.TEST_PATH).checkedGet(); assertEquals("Exists response", false, exists); doReturn(dataExistsReply(true)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqDataExists()); + eq(actorSelection(actorRef)), eqDataExists(), any(Timeout.class)); exists = transactionProxy.exists(TestModel.TEST_PATH).checkedGet(); @@ -269,7 +270,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { ActorRef actorRef = setupActorContextWithInitialCreateTransaction(getSystem(), READ_ONLY); doReturn(Futures.successful(new Object())).when(mockActorContext). - executeOperationAsync(eq(actorSelection(actorRef)), eqDataExists()); + executeOperationAsync(eq(actorSelection(actorRef)), eqDataExists(), any(Timeout.class)); TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_ONLY); @@ -281,7 +282,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { ActorRef actorRef = setupActorContextWithInitialCreateTransaction(getSystem(), READ_ONLY); doReturn(Futures.failed(new TestException())).when(mockActorContext). - executeOperationAsync(eq(actorSelection(actorRef)), eqDataExists()); + executeOperationAsync(eq(actorSelection(actorRef)), eqDataExists(), any(Timeout.class)); TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_ONLY); @@ -297,7 +298,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { expectBatchedModifications(actorRef, 1); doReturn(dataExistsReply(true)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqDataExists()); + eq(actorSelection(actorRef)), eqDataExists(), any(Timeout.class)); TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_WRITE); @@ -309,10 +310,10 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { InOrder inOrder = Mockito.inOrder(mockActorContext); inOrder.verify(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), isA(BatchedModifications.class)); + eq(actorSelection(actorRef)), isA(BatchedModifications.class), any(Timeout.class)); inOrder.verify(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqDataExists()); + eq(actorSelection(actorRef)), eqDataExists(), any(Timeout.class)); } @Test(expected=IllegalStateException.class) @@ -347,7 +348,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { eqCreateTransaction(memberName, READ_WRITE), any(Timeout.class)); doReturn(readDataReply(null)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData()); + eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); expectBatchedModificationsReady(actorRef); @@ -443,7 +444,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { NormalizedNode nodeToWrite = ImmutableNodes.containerNode(TestModel.TEST_QNAME); doReturn(readDataReply(null)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData()); + eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); expectBatchedModifications(actorRef, 1); @@ -471,7 +472,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { NormalizedNode nodeToWrite = ImmutableNodes.containerNode(TestModel.TEST_QNAME); doReturn(readDataReply(null)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData()); + eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); expectBatchedModificationsReady(actorRef, true); @@ -501,7 +502,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { ActorRef actorRef = setupActorContextWithInitialCreateTransaction(getSystem(), READ_WRITE); doReturn(readDataReply(null)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData()); + eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); expectBatchedModificationsReady(actorRef, true); @@ -667,8 +668,8 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { doReturn(getSystem().actorSelection(shardActorRef.path())). when(mockActorContext).actorSelection(shardActorRef.path().toString()); - Optional mockDataTree = createDataTree(); - DataTreeModification mockModification = mockDataTree.get().takeSnapshot().newModification(); + DataTree mockDataTree = createDataTree(); + DataTreeModification mockModification = mockDataTree.takeSnapshot().newModification(); doThrow(new RuntimeException("mock")).when(mockModification).ready(); doReturn(Futures.successful(newPrimaryShardInfo(shardActorRef, mockDataTree))). @@ -729,7 +730,8 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { ActorRef actorRef2 = setupActorContextWithInitialCreateTransaction(getSystem(), WRITE_ONLY, "junk"); doReturn(Futures.successful(new Object())).when(mockActorContext). - executeOperationAsync(eq(actorSelection(actorRef1)), isA(BatchedModifications.class)); + executeOperationAsync(eq(actorSelection(actorRef1)), isA(BatchedModifications.class), + any(Timeout.class)); expectBatchedModificationsReady(actorRef2); @@ -753,7 +755,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { Object id = transactionProxy.getIdentifier(); assertNotNull("getIdentifier returned null", id); - assertTrue("Invalid identifier: " + id, id.toString().startsWith(memberName)); + assertTrue("Invalid identifier: " + id, id.toString().contains(memberName)); } @Test @@ -761,7 +763,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { ActorRef actorRef = setupActorContextWithInitialCreateTransaction(getSystem(), READ_WRITE); doReturn(readDataReply(null)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData()); + eq(actorSelection(actorRef)), eqReadData(), any(Timeout.class)); TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_WRITE); @@ -787,13 +789,12 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { } private PrimaryShardInfo newPrimaryShardInfo(ActorRef actorRef){ - return new PrimaryShardInfo(getSystem().actorSelection(actorRef.path()), DataStoreVersions.CURRENT_VERSION, - Optional.absent()); + return new PrimaryShardInfo(getSystem().actorSelection(actorRef.path()), DataStoreVersions.CURRENT_VERSION); } - private PrimaryShardInfo newPrimaryShardInfo(ActorRef actorRef, Optional dataTreeOptional){ + private PrimaryShardInfo newPrimaryShardInfo(ActorRef actorRef, DataTree dataTree){ return new PrimaryShardInfo(getSystem().actorSelection(actorRef.path()), DataStoreVersions.CURRENT_VERSION, - dataTreeOptional); + dataTree); } @@ -861,7 +862,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { ActorRef txActorRef = actorSystem.actorOf(Props.create(DoNothingActor.class)); String actorPath = txActorRef.path().toString(); - CreateTransactionReply createTransactionReply = new CreateTransactionReply(actorPath, "txn-1", + CreateTransactionReply createTransactionReply = new CreateTransactionReply(actorPath, nextTransactionId(), DataStoreVersions.CURRENT_VERSION); doReturn(actorSystem.actorSelection(actorPath)).when(mockActorContext).actorSelection(actorPath); @@ -883,14 +884,14 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { expected, (end-start)), (end - start) <= expected); } - private void completeOperationLocal(TransactionProxyOperation operation, Optional dataTreeOptional){ + private void completeOperationLocal(TransactionProxyOperation operation, DataTree dataTree){ ActorSystem actorSystem = getSystem(); ActorRef shardActorRef = actorSystem.actorOf(Props.create(DoNothingActor.class)); doReturn(actorSystem.actorSelection(shardActorRef.path())). when(mockActorContext).actorSelection(shardActorRef.path().toString()); - doReturn(Futures.successful(newPrimaryShardInfo(shardActorRef, dataTreeOptional))). + doReturn(Futures.successful(newPrimaryShardInfo(shardActorRef, dataTree))). when(mockActorContext).findPrimaryShardAsync(eq(DefaultShardStrategy.DEFAULT_SHARD)); TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_WRITE); @@ -906,21 +907,19 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { expected, (end-start)), (end - start) <= expected); } - private static Optional createDataTree(){ + private static DataTree createDataTree(){ DataTree dataTree = mock(DataTree.class); - Optional dataTreeOptional = Optional.of(dataTree); DataTreeSnapshot dataTreeSnapshot = mock(DataTreeSnapshot.class); DataTreeModification dataTreeModification = mock(DataTreeModification.class); doReturn(dataTreeSnapshot).when(dataTree).takeSnapshot(); doReturn(dataTreeModification).when(dataTreeSnapshot).newModification(); - return dataTreeOptional; + return dataTree; } - private static Optional createDataTree(NormalizedNode readResponse){ + private static DataTree createDataTree(NormalizedNode readResponse){ DataTree dataTree = mock(DataTree.class); - Optional dataTreeOptional = Optional.of(dataTree); DataTreeSnapshot dataTreeSnapshot = mock(DataTreeSnapshot.class); DataTreeModification dataTreeModification = mock(DataTreeModification.class); @@ -928,7 +927,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { doReturn(dataTreeModification).when(dataTreeSnapshot).newModification(); doReturn(Optional.of(readResponse)).when(dataTreeModification).readNode(any(YangInstanceIdentifier.class)); - return dataTreeOptional; + return dataTree; } @@ -1164,7 +1163,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { NormalizedNode nodeToRead = ImmutableNodes.containerNode(TestModel.TEST_QNAME); doReturn(readDataReply(nodeToRead)).when(mockActorContext).executeOperationAsync( - any(ActorSelection.class), eqReadData()); + any(ActorSelection.class), eqReadData(), any(Timeout.class)); transactionProxy.read(TestModel.TEST_PATH); @@ -1240,7 +1239,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { @Override public void run(TransactionProxy transactionProxy) { doReturn(dataExistsReply(true)).when(mockActorContext).executeOperationAsync( - any(ActorSelection.class), eqDataExists()); + any(ActorSelection.class), eqDataExists(), any(Timeout.class)); transactionProxy.exists(TestModel.TEST_PATH); @@ -1413,13 +1412,13 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { YangInstanceIdentifier deletePath = TestModel.OUTER_LIST_PATH; doReturn(readDataReply(writeNode2)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData(writePath2)); + eq(actorSelection(actorRef)), eqReadData(writePath2), any(Timeout.class)); doReturn(readDataReply(mergeNode2)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData(mergePath2)); + eq(actorSelection(actorRef)), eqReadData(mergePath2), any(Timeout.class)); doReturn(dataExistsReply(true)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqDataExists()); + eq(actorSelection(actorRef)), eqDataExists(), any(Timeout.class)); TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_WRITE); @@ -1458,22 +1457,22 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { InOrder inOrder = Mockito.inOrder(mockActorContext); inOrder.verify(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), isA(BatchedModifications.class)); + eq(actorSelection(actorRef)), isA(BatchedModifications.class), any(Timeout.class)); inOrder.verify(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData(writePath2)); + eq(actorSelection(actorRef)), eqReadData(writePath2), any(Timeout.class)); inOrder.verify(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), isA(BatchedModifications.class)); + eq(actorSelection(actorRef)), isA(BatchedModifications.class), any(Timeout.class)); inOrder.verify(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqReadData(mergePath2)); + eq(actorSelection(actorRef)), eqReadData(mergePath2), any(Timeout.class)); inOrder.verify(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), isA(BatchedModifications.class)); + eq(actorSelection(actorRef)), isA(BatchedModifications.class), any(Timeout.class)); inOrder.verify(mockActorContext).executeOperationAsync( - eq(actorSelection(actorRef)), eqDataExists()); + eq(actorSelection(actorRef)), eqDataExists(), any(Timeout.class)); } @Test @@ -1491,14 +1490,14 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { setUpReadData("test", NormalizedNodeAggregatorTest.getRootNode(expectedNode1, schemaContext)); setUpReadData("cars", NormalizedNodeAggregatorTest.getRootNode(expectedNode2, schemaContext)); - doReturn(memberName).when(mockActorContext).getCurrentMemberName(); + doReturn(MemberName.forName(memberName)).when(mockActorContext).getCurrentMemberName(); doReturn(getSystem().dispatchers().defaultGlobalDispatcher()).when(mockActorContext).getClientDispatcher(); TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, READ_ONLY); Optional> readOptional = transactionProxy.read( - YangInstanceIdentifier.builder().build()).get(5, TimeUnit.SECONDS); + YangInstanceIdentifier.EMPTY).get(5, TimeUnit.SECONDS); assertEquals("NormalizedNode isPresent", true, readOptional.isPresent()); @@ -1545,6 +1544,6 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest { eqCreateTransaction(memberName, TransactionType.READ_ONLY), any(Timeout.class)); doReturn(readDataReply(expectedNode)).when(mockActorContext).executeOperationAsync( - eq(actorSelection(txActorRef)), eqReadData(YangInstanceIdentifier.builder().build())); + eq(actorSelection(txActorRef)), eqReadData(YangInstanceIdentifier.EMPTY), any(Timeout.class)); } }