X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatabroker%2Factors%2Fdds%2FAbstractProxyTransactionTest.java;h=167c5bc348467ce6d09ac347aa349ce2aa5e2ac6;hp=dfbd11fc1e2d37cfbf213a2298de075d2d2ffbb4;hb=c8169044a7c0001402357631461a0fdfc9cacf89;hpb=9e6714ce7693d8e3c00adf72dafce78041d3a7cc diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java index dfbd11fc1e..167c5bc348 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java @@ -7,16 +7,20 @@ */ package org.opendaylight.controller.cluster.databroker.actors.dds; -import static org.hamcrest.CoreMatchers.both; +import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.hasItem; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.isA; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import akka.actor.ActorSystem; -import akka.testkit.JavaTestKit; import akka.testkit.TestProbe; +import akka.testkit.javadsl.TestKit; import com.google.common.base.Ticker; import com.google.common.primitives.UnsignedLong; import java.util.ArrayList; @@ -27,11 +31,11 @@ import java.util.function.Consumer; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; 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; @@ -63,6 +67,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeM import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +@RunWith(MockitoJUnitRunner.StrictStubs.class) public abstract class AbstractProxyTransactionTest { protected static final TransactionIdentifier TRANSACTION_ID = TestUtils.TRANSACTION_ID; private static final ClientIdentifier CLIENT_ID = TestUtils.CLIENT_ID; @@ -93,16 +98,16 @@ public abstract class AbstractProxyTransactionTest tester; + protected ClientActorContext context; protected T transaction; @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); + public void setUp() { system = ActorSystem.apply(); clientContextProbe = new TestProbe(system, "clientContext"); backendProbe = new TestProbe(system, "backend"); - final ClientActorContext context = - AccessClientUtil.createClientActorContext(system, clientContextProbe.ref(), CLIENT_ID, PERSISTENCE_ID); + context = AccessClientUtil.createClientActorContext(system, clientContextProbe.ref(), CLIENT_ID, + PERSISTENCE_ID); final ShardBackendInfo backend = new ShardBackendInfo(backendProbe.ref(), 0L, ABIVersion.BORON, "default", UnsignedLong.ZERO, Optional.empty(), 3); final AbstractClientConnection connection = @@ -112,11 +117,12 @@ public abstract class AbstractProxyTransactionTest(transaction, connection, backendProbe); } + @SuppressWarnings("checkstyle:hiddenField") protected abstract T createTransaction(ProxyHistory parent, TransactionIdentifier id, DataTreeSnapshot snapshot); @After - public void tearDown() throws Exception { - JavaTestKit.shutdownActorSystem(system); + public void tearDown() { + TestKit.shutdownActorSystem(system); } @Test @@ -126,46 +132,46 @@ public abstract class AbstractProxyTransactionTest transaction.abort(f), TransactionAbortRequest.class, TransactionAbortSuccess::new); } @Test - public void testForwardToRemotePurge() throws Exception { + public void testForwardToRemotePurge() { final TestProbe probe = new TestProbe(system); final TransactionPurgeRequest request = new TransactionPurgeRequest(TRANSACTION_ID, 0L, probe.ref()); testForwardToRemote(request, TransactionPurgeRequest.class); } @Test - public void testReplayMessages() throws Exception { + public void testReplayMessages() { final TestProbe probe = new TestProbe(system); final List entries = new ArrayList<>(); final Consumer> callback = createCallbackMock(); @@ -182,47 +188,53 @@ public abstract class AbstractProxyTransactionTest modifications = modifyRequest.getModifications(); - Assert.assertEquals(3, modifications.size()); - Assert.assertThat(modifications, hasItem(both(isA(TransactionWrite.class)).and(hasPath(PATH_1)))); - Assert.assertThat(modifications, hasItem(both(isA(TransactionMerge.class)).and(hasPath(PATH_2)))); - Assert.assertThat(modifications, hasItem(both(isA(TransactionDelete.class)).and(hasPath(PATH_3)))); + assertEquals(3, modifications.size()); + assertThat(modifications, hasItem(allOf(isA(TransactionWrite.class), hasPath(PATH_1)))); + assertThat(modifications, hasItem(allOf(isA(TransactionMerge.class), hasPath(PATH_2)))); + assertThat(modifications, hasItem(allOf(isA(TransactionDelete.class), hasPath(PATH_3)))); } + @SuppressWarnings("checkstyle:hiddenField") protected > void testRequestResponse(final Consumer> consumer, final Class expectedRequest, - final BiFunction> replySupplier) throws Exception { + final BiFunction> replySupplier) { final TransactionTester tester = getTester(); final VotingFuture future = mock(VotingFuture.class); transaction.seal(); @@ -232,13 +244,13 @@ public abstract class AbstractProxyTransactionTest> R testHandleForwardedRemoteRequest(final R request) throws Exception { + protected > R testHandleForwardedRemoteRequest(final R request) { transaction.handleReplayedRemoteRequest(request, createCallbackMock(), Ticker.systemTicker().read()); final RequestEnvelope envelope = backendProbe.expectMsgClass(RequestEnvelope.class); final R received = (R) envelope.getMessage(); - Assert.assertTrue(received.getClass().equals(request.getClass())); - Assert.assertEquals(TRANSACTION_ID, received.getTarget()); - Assert.assertEquals(clientContextProbe.ref(), received.getReplyTo()); + assertTrue(received.getClass().equals(request.getClass())); + assertEquals(TRANSACTION_ID, received.getTarget()); + assertEquals(clientContextProbe.ref(), received.getReplyTo()); return received; } @@ -261,7 +273,7 @@ public abstract class AbstractProxyTransactionTest hasPath(final YangInstanceIdentifier path) { - return new BaseMatcher() { + return new BaseMatcher<>() { @Override public boolean matches(final Object item) { @@ -285,6 +297,7 @@ public abstract class AbstractProxyTransactionTest createLocalProxy() { final TestProbe backendProbe = new TestProbe(system, "backend2"); final TestProbe clientContextProbe = new TestProbe(system, "clientContext2"); @@ -303,6 +316,7 @@ public abstract class AbstractProxyTransactionTest(tx, connection, backendProbe); } + @SuppressWarnings("checkstyle:hiddenField") protected TransactionTester createRemoteProxyTransactionTester() { final TestProbe clientContextProbe = new TestProbe(system, "remoteClientContext"); final TestProbe backendProbe = new TestProbe(system, "remoteBackend"); @@ -315,7 +329,7 @@ public abstract class AbstractProxyTransactionTest(transaction, connection, backendProbe); } }