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%2Fdatabroker%2Factors%2Fdds%2FClientTransactionCommitCohortTest.java;h=e54b275c9516fd858aaeb6a0461f0ac1ed2e1c70;hb=HEAD;hp=f9eb6ed6aff1b260e53341a5b454a6a53466c943;hpb=808a02471eef0f975c13fc948f933fac34ada387;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohortTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohortTest.java index f9eb6ed6af..e54b275c95 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohortTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohortTest.java @@ -7,6 +7,8 @@ */ package org.opendaylight.controller.cluster.databroker.actors.dds; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.doReturn; import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtils.CLIENT_ID; import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtils.HISTORY_ID; import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtils.TRANSACTION_ID; @@ -14,8 +16,8 @@ import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtil import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtils.getWithTimeout; import akka.actor.ActorSystem; -import akka.testkit.JavaTestKit; import akka.testkit.TestProbe; +import akka.testkit.javadsl.TestKit; import com.google.common.primitives.UnsignedLong; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; @@ -27,11 +29,11 @@ import java.util.function.Consumer; import java.util.function.Function; import java.util.stream.Collectors; import org.junit.After; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.client.AbstractClientConnection; import org.opendaylight.controller.cluster.access.client.AccessClientUtil; @@ -47,26 +49,38 @@ import org.opendaylight.controller.cluster.access.commands.TransactionPreCommitR import org.opendaylight.controller.cluster.access.commands.TransactionPreCommitSuccess; import org.opendaylight.controller.cluster.access.concepts.RequestSuccess; import org.opendaylight.controller.cluster.access.concepts.RuntimeRequestException; +import org.opendaylight.controller.cluster.datastore.DatastoreContext; +import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; +import org.opendaylight.mdsal.common.api.CommitInfo; +import org.opendaylight.yangtools.yang.common.Empty; +@RunWith(MockitoJUnitRunner.StrictStubs.class) public class ClientTransactionCommitCohortTest { - private static final String PERSISTENCE_ID = "per-1"; private static final int TRANSACTIONS = 3; + private final List> transactions = new ArrayList<>(); + @Mock private AbstractClientHistory history; + @Mock + private DatastoreContext datastoreContext; + @Mock + private ActorUtils actorUtils; + private ActorSystem system; - private List> transactions; private ClientTransactionCommitCohort cohort; @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); + public void setUp() { system = ActorSystem.apply(); final TestProbe clientContextProbe = new TestProbe(system, "clientContext"); final ClientActorContext context = AccessClientUtil.createClientActorContext(system, clientContextProbe.ref(), CLIENT_ID, PERSISTENCE_ID); - transactions = new ArrayList<>(); + doReturn(1000).when(datastoreContext).getShardBatchedModificationCount(); + doReturn(datastoreContext).when(actorUtils).getDatastoreContext(); + doReturn(actorUtils).when(history).actorUtils(); + for (int i = 0; i < TRANSACTIONS; i++) { transactions.add(createTransactionTester(new TestProbe(system, "backend" + i), context, history)); } @@ -78,14 +92,14 @@ public class ClientTransactionCommitCohortTest { } @After - public void tearDown() throws Exception { - JavaTestKit.shutdownActorSystem(system); + public void tearDown() { + TestKit.shutdownActorSystem(system); } @Test public void testCanCommit() throws Exception { testOpSuccess(ClientTransactionCommitCohort::canCommit, this::expectCanCommit, - this::replyCanCommitSuccess, true); + this::replyCanCommitSuccess, Boolean.TRUE); } @Test @@ -96,7 +110,7 @@ public class ClientTransactionCommitCohortTest { @Test public void testPreCommit() throws Exception { testOpSuccess(ClientTransactionCommitCohort::preCommit, this::expectPreCommit, this::replyPreCommitSuccess, - null); + Empty.value()); } @Test @@ -106,7 +120,8 @@ public class ClientTransactionCommitCohortTest { @Test public void testCommit() throws Exception { - testOpSuccess(ClientTransactionCommitCohort::commit, this::expectCommit, this::replyCommitSuccess, null); + testOpSuccess(ClientTransactionCommitCohort::commit, this::expectCommit, this::replyCommitSuccess, + CommitInfo.empty()); } @Test @@ -116,7 +131,7 @@ public class ClientTransactionCommitCohortTest { @Test public void testAbort() throws Exception { - testOpSuccess(ClientTransactionCommitCohort::abort, this::expectAbort, this::replyAbortSuccess, null); + testOpSuccess(ClientTransactionCommitCohort::abort, this::expectAbort, this::replyAbortSuccess, Empty.value()); } @Test @@ -126,8 +141,7 @@ public class ClientTransactionCommitCohortTest { private void expectCanCommit(final TransactionTester tester) { final ModifyTransactionRequest request = tester.expectTransactionRequest(ModifyTransactionRequest.class); - Assert.assertTrue(request.getPersistenceProtocol().isPresent()); - Assert.assertEquals(PersistenceProtocol.THREE_PHASE, request.getPersistenceProtocol().get()); + assertEquals(Optional.of(PersistenceProtocol.THREE_PHASE), request.getPersistenceProtocol()); } void expectPreCommit(final TransactionTester tester) { @@ -169,13 +183,13 @@ public class ClientTransactionCommitCohortTest { private static TransactionTester createTransactionTester(final TestProbe backendProbe, final ClientActorContext context, final AbstractClientHistory history) { - final ShardBackendInfo backend = new ShardBackendInfo(backendProbe.ref(), 0L, ABIVersion.BORON, + final ShardBackendInfo backend = new ShardBackendInfo(backendProbe.ref(), 0L, ABIVersion.current(), "default", UnsignedLong.ZERO, Optional.empty(), 3); final AbstractClientConnection connection = AccessClientUtil.createConnectedConnection(context, 0L, backend); final ProxyHistory proxyHistory = ProxyHistory.createClient(history, connection, HISTORY_ID); final RemoteProxyTransaction transaction = - new RemoteProxyTransaction(proxyHistory, TRANSACTION_ID, false, false); + new RemoteProxyTransaction(proxyHistory, TRANSACTION_ID, false, false, false); return new TransactionTester<>(transaction, connection, backendProbe); } @@ -205,7 +219,7 @@ public class ClientTransactionCommitCohortTest { final T expectedResult) throws Exception { final ListenableFuture result = operation.apply(cohort); replySuccess(transactions, expectFunction, replyFunction); - Assert.assertEquals(expectedResult, getWithTimeout(result)); + assertEquals(expectedResult, getWithTimeout(result)); } /** @@ -228,12 +242,13 @@ public class ClientTransactionCommitCohortTest { //reply fail to last transaction final TransactionTester last = transactions.get(transactions.size() - 1); expectFunction.accept(last); - final RuntimeRequestException cause = new RuntimeRequestException("fail", new RuntimeException()); + final RuntimeException e = new RuntimeException(); + final RuntimeRequestException cause = new RuntimeRequestException("fail", e); last.replyFailure(cause); //check future fail final ExecutionException exception = assertOperationThrowsException(() -> getWithTimeout(canCommit), ExecutionException.class); - Assert.assertEquals(cause, exception.getCause()); + assertEquals(e, exception.getCause()); } }