BUG-5280: add AbstractClientConnection
[controller.git] / opendaylight / md-sal / cds-access-client / src / test / java / org / opendaylight / controller / cluster / access / client / SequencedQueueEntryTest.java
diff --git a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/SequencedQueueEntryTest.java b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/SequencedQueueEntryTest.java
deleted file mode 100644 (file)
index 8cc990c..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.cluster.access.client;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.verify;
-
-import akka.actor.ActorRef;
-import akka.actor.ActorSystem;
-import akka.testkit.TestProbe;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.concurrent.TimeUnit;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.controller.cluster.access.ABIVersion;
-import org.opendaylight.controller.cluster.access.concepts.AbstractRequestFailureProxy;
-import org.opendaylight.controller.cluster.access.concepts.AbstractRequestProxy;
-import org.opendaylight.controller.cluster.access.concepts.Request;
-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.yangtools.concepts.WritableIdentifier;
-import scala.concurrent.duration.Duration;
-
-/**
- * Test suite covering logic contained in {@link SequencedQueueEntry}.
- *
- * @author Robert Varga
- */
-public class SequencedQueueEntryTest {
-    private static class MockFailure extends RequestFailure<WritableIdentifier, MockFailure> {
-        private static final long serialVersionUID = 1L;
-
-        MockFailure(final WritableIdentifier target, final RequestException cause) {
-            super(target, 0, cause);
-        }
-
-        @Override
-        protected AbstractRequestFailureProxy<WritableIdentifier, MockFailure> externalizableProxy(
-                final ABIVersion version) {
-            return null;
-        }
-
-        @Override
-        protected MockFailure cloneAsVersion(final ABIVersion version) {
-            return this;
-        }
-    }
-
-    private static class MockRequest extends Request<WritableIdentifier, MockRequest> {
-        private static final long serialVersionUID = 1L;
-
-        MockRequest(final WritableIdentifier target, final ActorRef replyTo) {
-            super(target, 0, replyTo);
-        }
-
-        @Override
-        public RequestFailure<WritableIdentifier, ?> toRequestFailure(final RequestException cause) {
-            return new MockFailure(getTarget(), cause);
-        }
-
-        @Override
-        protected AbstractRequestProxy<WritableIdentifier, MockRequest> externalizableProxy(final ABIVersion version) {
-            return null;
-        }
-
-        @Override
-        protected MockRequest cloneAsVersion(final ABIVersion version) {
-            return this;
-        }
-    }
-
-    @Mock
-    private ActorRef mockReplyTo;
-    @Mock
-    private WritableIdentifier mockIdentifier;
-    @Mock
-    private RequestException mockCause;
-    @Mock
-    private RequestCallback mockCallback;
-    @Mock
-    private ClientActorBehavior mockBehavior;
-
-    private TestTicker ticker;
-    private BackendInfo mockBackendInfo;
-    private Request<WritableIdentifier, ?> mockRequest;
-    private Response<WritableIdentifier, ?> mockResponse;
-
-    private static ActorSystem actorSystem;
-    private TestProbe mockActor;
-
-    private SequencedQueueEntry entry;
-
-    @BeforeClass
-    public static void setupClass() {
-        actorSystem = ActorSystem.apply();
-    }
-
-    @AfterClass
-    public static void teardownClass() {
-        actorSystem.terminate();
-    }
-
-    @Before
-    public void setup() {
-        MockitoAnnotations.initMocks(this);
-
-        doReturn(mockBehavior).when(mockCallback).complete(any(MockFailure.class));
-
-        ticker = new TestTicker();
-        ticker.increment(ThreadLocalRandom.current().nextLong());
-
-        mockActor = TestProbe.apply(actorSystem);
-        mockBackendInfo = new BackendInfo(mockActor.ref(), 0, ABIVersion.current(), 5);
-        mockRequest = new MockRequest(mockIdentifier, mockReplyTo);
-        mockResponse = mockRequest.toRequestFailure(mockCause);
-
-        entry = new SequencedQueueEntry(mockRequest, mockCallback, ticker.read());
-    }
-
-    @After
-    public void teardown() {
-        actorSystem.stop(mockActor.ref());
-    }
-
-    @Test
-    public void testGetTxDetails() {
-        assertNull(entry.getTxDetails());
-        entry.retransmit(mockBackendInfo, 0, ticker.read());
-        assertEquals(0, entry.getTxDetails().getTxSequence());
-        entry.retransmit(mockBackendInfo, 1, ticker.read());
-        assertEquals(1, entry.getTxDetails().getTxSequence());
-        entry.retransmit(mockBackendInfo, 3, ticker.read());
-        assertEquals(3, entry.getTxDetails().getTxSequence());
-    }
-
-    @Test
-    public void testComplete() {
-        entry.complete(mockResponse);
-        verify(mockCallback).complete(mockResponse);
-    }
-
-    @Test
-    public void testPoison() {
-        entry.poison(mockCause);
-
-        final ArgumentCaptor<MockFailure> captor = ArgumentCaptor.forClass(MockFailure.class);
-        verify(mockCallback).complete(captor.capture());
-        assertSame(mockCause, captor.getValue().getCause());
-    }
-
-    @Test
-    public void testIsTimedOut() {
-        assertTrue(entry.isTimedOut(ticker.read(), 0));
-        assertFalse(entry.isTimedOut(ticker.read(), 1));
-
-        entry.retransmit(mockBackendInfo, 0, ticker.read());
-        assertTrue(entry.isTimedOut(ticker.read(), 0));
-        ticker.increment(10);
-        assertTrue(entry.isTimedOut(ticker.read(), 10));
-        assertFalse(entry.isTimedOut(ticker.read(), 20));
-
-        entry.retransmit(mockBackendInfo, 1, ticker.read());
-        assertTrue(entry.isTimedOut(ticker.read(), 0));
-        ticker.increment(10);
-        assertTrue(entry.isTimedOut(ticker.read(), 10));
-        assertFalse(entry.isTimedOut(ticker.read(), 11));
-    }
-
-    @Test
-    public void testRetransmit() {
-        assertFalse(mockActor.msgAvailable());
-        entry.retransmit(mockBackendInfo, 0, ticker.read());
-
-        assertTrue(mockActor.msgAvailable());
-        assertRequestEquals(mockRequest, mockActor.receiveOne(Duration.apply(5, TimeUnit.SECONDS)));
-    }
-
-    private static void assertRequestEquals(final Request<?, ?> expected, final Object obj) {
-        assertTrue(obj instanceof RequestEnvelope);
-
-        final RequestEnvelope actual = (RequestEnvelope) obj;
-        assertEquals(0, actual.getSessionId());
-        assertEquals(0, actual.getTxSequence());
-        assertEquals(expected.getTarget(), actual.getMessage().getTarget());
-    }
-}