X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-client%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fclient%2FConnectingClientConnectionTest.java;h=88e50e2f48f526f003f00bf2a48ea010bc22750d;hp=dec343fce00186cbb731d1616d1b158251be46b5;hb=d7c9a8ccfcb57f005490a226803d094289997ef9;hpb=320a4e5cd2d9d80468a3f82798744f2035488218;ds=sidebyside diff --git a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnectionTest.java b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnectionTest.java index dec343fce0..88e50e2f48 100644 --- a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnectionTest.java +++ b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnectionTest.java @@ -16,12 +16,14 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.testkit.TestProbe; +import com.google.common.testing.FakeTicker; import java.util.Optional; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; @@ -43,7 +45,7 @@ import org.opendaylight.controller.cluster.access.concepts.RequestEnvelope; import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.RequestFailure; import org.opendaylight.controller.cluster.access.concepts.Response; -import org.opendaylight.controller.cluster.common.actor.TestTicker; +import org.opendaylight.controller.cluster.messaging.MessageSlicer; import org.opendaylight.yangtools.concepts.WritableIdentifier; import scala.concurrent.duration.FiniteDuration; @@ -109,7 +111,7 @@ public class ConnectingClientConnectionTest { @Mock private ClientActorContext mockContext; - private TestTicker ticker; + private FakeTicker ticker; private BackendInfo mockBackendInfo; private MockRequest mockRequest; private MockRequest mockRequest2; @@ -138,16 +140,21 @@ public class ConnectingClientConnectionTest { doNothing().when(mockCallback).accept(any(MockFailure.class)); - ticker = new TestTicker(); - ticker.increment(ThreadLocalRandom.current().nextLong()); + ticker = new FakeTicker(); + ticker.advance(ThreadLocalRandom.current().nextLong()); doReturn(ticker).when(mockContext).ticker(); + final ClientActorConfig mockConfig = AccessClientUtil.newMockClientActorConfig(); + doReturn(mockConfig).when(mockContext).config(); + + doReturn(mock(MessageSlicer.class)).when(mockContext).messageSlicer(); + mockActor = TestProbe.apply(actorSystem); mockBackendInfo = new BackendInfo(mockActor.ref(), 0, ABIVersion.current(), 5); mockRequest = new MockRequest(mockIdentifier, mockReplyTo); mockRequest2 = new MockRequest(mockIdentifier, mockReplyTo); mockResponse = mockRequest.toRequestFailure(mockCause); - mockResponseEnvelope = new FailureEnvelope(mockResponse, 0, 0); + mockResponseEnvelope = new FailureEnvelope(mockResponse, 0, 0, 0); mockCookie = ThreadLocalRandom.current().nextLong(); queue = new ConnectingClientConnection<>(mockContext, mockCookie); @@ -160,7 +167,7 @@ public class ConnectingClientConnectionTest { @Test public void testCookie() { - assertSame(mockCookie, queue.cookie()); + assertEquals(mockCookie, queue.cookie()); } @Test @@ -191,7 +198,7 @@ public class ConnectingClientConnectionTest { @Test public void testSendRequestNeedsBackend() { queue.sendRequest(mockRequest, mockCallback); - final Optional ret = queue.checkTimeout(ticker.read()); + final Optional ret = queue.checkTimeout(ticker.read()); assertNotNull(ret); assertTrue(ret.isPresent()); } @@ -207,7 +214,7 @@ public class ConnectingClientConnectionTest { setupBackend(); queue.sendRequest(mockRequest, mockCallback); - final Optional ret = queue.checkTimeout(ticker.read()); + final Optional ret = queue.checkTimeout(ticker.read()); assertNotNull(ret); assertTrue(ret.isPresent()); assertTransmit(mockRequest, 0); @@ -215,7 +222,7 @@ public class ConnectingClientConnectionTest { @Test public void testRunTimeoutEmpty() throws NoProgressException { - Optional ret = queue.checkTimeout(ticker.read()); + Optional ret = queue.checkTimeout(ticker.read()); assertNotNull(ret); assertFalse(ret.isPresent()); } @@ -223,7 +230,7 @@ public class ConnectingClientConnectionTest { @Test public void testRunTimeoutWithoutShift() throws NoProgressException { queue.sendRequest(mockRequest, mockCallback); - Optional ret = queue.checkTimeout(ticker.read()); + Optional ret = queue.checkTimeout(ticker.read()); assertNotNull(ret); assertTrue(ret.isPresent()); } @@ -232,9 +239,9 @@ public class ConnectingClientConnectionTest { public void testRunTimeoutWithTimeoutLess() throws NoProgressException { queue.sendRequest(mockRequest, mockCallback); - ticker.increment(AbstractClientConnection.REQUEST_TIMEOUT_NANOS - 1); + ticker.advance(AbstractClientConnection.DEFAULT_BACKEND_ALIVE_TIMEOUT_NANOS - 1); - Optional ret = queue.checkTimeout(ticker.read()); + Optional ret = queue.checkTimeout(ticker.read()); assertNotNull(ret); assertTrue(ret.isPresent()); } @@ -245,9 +252,9 @@ public class ConnectingClientConnectionTest { queue.sendRequest(mockRequest, mockCallback); - ticker.increment(AbstractClientConnection.REQUEST_TIMEOUT_NANOS); + ticker.advance(AbstractClientConnection.DEFAULT_BACKEND_ALIVE_TIMEOUT_NANOS); - Optional ret = queue.checkTimeout(ticker.read()); + Optional ret = queue.checkTimeout(ticker.read()); assertNull(ret); } @@ -257,9 +264,9 @@ public class ConnectingClientConnectionTest { queue.sendRequest(mockRequest, mockCallback); - ticker.increment(AbstractClientConnection.REQUEST_TIMEOUT_NANOS + 1); + ticker.advance(AbstractClientConnection.DEFAULT_BACKEND_ALIVE_TIMEOUT_NANOS + 1); - Optional ret = queue.checkTimeout(ticker.read()); + Optional ret = queue.checkTimeout(ticker.read()); assertNull(ret); } @@ -267,7 +274,7 @@ public class ConnectingClientConnectionTest { public void testRunTimeoutWithoutProgressExact() throws NoProgressException { queue.sendRequest(mockRequest, mockCallback); - ticker.increment(AbstractClientConnection.NO_PROGRESS_TIMEOUT_NANOS); + ticker.advance(AbstractClientConnection.DEFAULT_NO_PROGRESS_TIMEOUT_NANOS); // Kaboom queue.runTimer((ClientActorBehavior) mockBehavior); @@ -278,7 +285,7 @@ public class ConnectingClientConnectionTest { public void testRunTimeoutWithoutProgressMore() throws NoProgressException { queue.sendRequest(mockRequest, mockCallback); - ticker.increment(AbstractClientConnection.NO_PROGRESS_TIMEOUT_NANOS + 1); + ticker.advance(AbstractClientConnection.DEFAULT_NO_PROGRESS_TIMEOUT_NANOS + 1); // Kaboom queue.runTimer((ClientActorBehavior) mockBehavior); @@ -287,20 +294,20 @@ public class ConnectingClientConnectionTest { @Test public void testRunTimeoutEmptyWithoutProgressExact() throws NoProgressException { - ticker.increment(AbstractClientConnection.NO_PROGRESS_TIMEOUT_NANOS); + ticker.advance(AbstractClientConnection.DEFAULT_NO_PROGRESS_TIMEOUT_NANOS); // No problem - Optional ret = queue.checkTimeout(ticker.read()); + Optional ret = queue.checkTimeout(ticker.read()); assertNotNull(ret); assertFalse(ret.isPresent()); } @Test public void testRunTimeoutEmptyWithoutProgressMore() throws NoProgressException { - ticker.increment(AbstractClientConnection.NO_PROGRESS_TIMEOUT_NANOS + 1); + ticker.advance(AbstractClientConnection.DEFAULT_NO_PROGRESS_TIMEOUT_NANOS + 1); // No problem - Optional ret = queue.checkTimeout(ticker.read()); + Optional ret = queue.checkTimeout(ticker.read()); assertNotNull(ret); assertFalse(ret.isPresent()); } @@ -342,21 +349,23 @@ public class ConnectingClientConnectionTest { queue.sendRequest(mockRequest, mockCallback); - ticker.increment(10); + ticker.advance(10); queue.sendRequest(mockRequest2, mockCallback); queue.receiveResponse(mockResponseEnvelope); - ticker.increment(AbstractClientConnection.NO_PROGRESS_TIMEOUT_NANOS - 11); + ticker.advance(AbstractClientConnection.DEFAULT_NO_PROGRESS_TIMEOUT_NANOS - 11); - Optional ret = queue.checkTimeout(ticker.read()); + Optional ret = queue.checkTimeout(ticker.read()); assertNull(ret); } private void setupBackend() { - final ConnectedClientConnection newConn = new ConnectedClientConnection<>(mockContext, mockCookie, - mockBackendInfo); - queue.setForwarder(new SimpleReconnectForwarder(newConn)); - queue = newConn; + final ConnectingClientConnection connectingConn = + new ConnectingClientConnection<>(mockContext, mockCookie); + final ConnectedClientConnection connectedConn = + new ConnectedClientConnection<>(connectingConn, mockBackendInfo); + queue.setForwarder(new SimpleReconnectForwarder(connectedConn)); + queue = connectedConn; } private void assertTransmit(final Request expected, final long sequence) {