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%2FConnectedClientConnectionTest.java;h=61d93e4ebe2611c28a04795203d8f6c449e844d9;hp=60cdc3acc83ba365ac9cedd64554320eea9b666f;hb=d7c9a8ccfcb57f005490a226803d094289997ef9;hpb=b2ed560507ad550be22a84ebd60ad4edc14cea7d diff --git a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectedClientConnectionTest.java b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectedClientConnectionTest.java index 60cdc3acc8..61d93e4ebe 100644 --- a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectedClientConnectionTest.java +++ b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectedClientConnectionTest.java @@ -9,27 +9,75 @@ package org.opendaylight.controller.cluster.access.client; import static org.mockito.Matchers.any; import static org.mockito.Matchers.same; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +import java.util.Optional; +import java.util.function.Consumer; +import org.junit.Assert; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; +import org.opendaylight.controller.cluster.access.commands.ModifyTransactionRequestBuilder; +import org.opendaylight.controller.cluster.access.commands.TransactionWrite; +import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; +import org.opendaylight.controller.cluster.access.concepts.Request; +import org.opendaylight.controller.cluster.access.concepts.RequestException; +import org.opendaylight.controller.cluster.access.concepts.Response; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.controller.cluster.messaging.MessageSlice; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; public class ConnectedClientConnectionTest extends AbstractClientConnectionTest, BackendInfo> { + @Test + public void testCheckTimeoutConnectionTimedout() throws Exception { + final Consumer> callback = mock(Consumer.class); + connection.sendRequest(createRequest(replyToProbe.ref()), callback); + final long now = context.ticker().read() + ConnectedClientConnection.DEFAULT_BACKEND_ALIVE_TIMEOUT_NANOS; + final Optional timeout = connection.checkTimeout(now); + Assert.assertNull(timeout); + } + @Override - protected ConnectedClientConnection createConnection() { + protected ConnectedClientConnection createConnection() { final BackendInfo backend = new BackendInfo(backendProbe.ref(), 0L, ABIVersion.BORON, 10); - return new ConnectedClientConnection<>(context, 0L, backend); + final ConnectingClientConnection connectingConn = new ConnectingClientConnection<>(context, 0L); + return new ConnectedClientConnection<>(connectingConn, backend); } @Override @Test public void testReconnectConnection() throws Exception { final ClientActorBehavior behavior = mock(ClientActorBehavior.class); - connection.reconnectConnection(behavior); + connection.lockedReconnect(behavior, mock(RequestException.class)); verify(behavior).reconnectConnection(same(connection), any(ReconnectingClientConnection.class)); } -} \ No newline at end of file + @SuppressWarnings("unchecked") + @Test + public void testSendSliceableMessageRequest() { + final ClientActorConfig config = AccessClientUtil.newMockClientActorConfig(); + doReturn(5).when(config).getMaximumMessageSliceSize(); + context = new ClientActorContext(contextProbe.ref(), PERSISTENCE_ID, system, CLIENT_ID, config); + connection = createConnection(); + + final Consumer> callback = mock(Consumer.class); + + final TransactionIdentifier identifier = + new TransactionIdentifier(new LocalHistoryIdentifier(CLIENT_ID, 0L), 0L); + ModifyTransactionRequestBuilder reqBuilder = + new ModifyTransactionRequestBuilder(identifier, replyToProbe.ref()); + reqBuilder.addModification(new TransactionWrite(YangInstanceIdentifier.EMPTY, Builders.containerBuilder() + .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create( + QName.create("namespace", "localName"))).build())); + reqBuilder.setSequence(0L); + final Request request = reqBuilder.build(); + connection.sendRequest(request, callback); + + backendProbe.expectMsgClass(MessageSlice.class); + } +}