Eliminate use of deprecated mockito methods
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / DataTreeChangeListenerActorTest.java
index 37a6197dd8170d76ea4800c858bac69b5f2b5baa..a71d99e055380d4acfaf1290d4d4f444ecd91eec 100644 (file)
  */
 package org.opendaylight.controller.cluster.datastore;
 
+import static org.junit.Assert.assertFalse;
+import static org.mockito.ArgumentMatchers.anyCollection;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.opendaylight.controller.md.cluster.datastore.model.TestModel.TEST_PATH;
+
 import akka.actor.ActorRef;
 import akka.actor.DeadLetter;
 import akka.actor.Props;
-import akka.testkit.JavaTestKit;
+import akka.testkit.javadsl.TestKit;
 import com.google.common.collect.ImmutableList;
-import org.junit.Assert;
+import java.time.Duration;
+import org.junit.Before;
 import org.junit.Test;
-import org.mockito.Matchers;
-import org.mockito.Mockito;
 import org.opendaylight.controller.cluster.datastore.messages.DataTreeChanged;
 import org.opendaylight.controller.cluster.datastore.messages.DataTreeChangedReply;
 import org.opendaylight.controller.cluster.datastore.messages.EnableNotification;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
 
 public class DataTreeChangeListenerActorTest extends AbstractActorTest {
+    private TestKit testKit;
+
+    @Before
+    public void before() {
+        testKit = new TestKit(getSystem());
+    }
 
-    @SuppressWarnings({ "rawtypes", "unchecked" })
     @Test
-    public void testDataChangedWhenNotificationsAreEnabled(){
-        new JavaTestKit(getSystem()) {{
-            final DataTreeCandidate mockTreeCandidate = Mockito.mock(DataTreeCandidate.class);
-            final ImmutableList<DataTreeCandidate> mockCandidates = ImmutableList.of(mockTreeCandidate);
-            final DOMDataTreeChangeListener mockListener = Mockito.mock(DOMDataTreeChangeListener.class);
-            final Props props = DataTreeChangeListenerActor.props(mockListener);
-            final ActorRef subject = getSystem().actorOf(props, "testDataTreeChangedNotificationsEnabled");
+    public void testDataChangedWhenNotificationsAreEnabled() {
+        final DataTreeCandidate mockTreeCandidate = mock(DataTreeCandidate.class);
+        final ImmutableList<DataTreeCandidate> mockCandidates = ImmutableList.of(mockTreeCandidate);
+        final DOMDataTreeChangeListener mockListener = mock(DOMDataTreeChangeListener.class);
+        final Props props = DataTreeChangeListenerActor.props(mockListener, TEST_PATH);
+        final ActorRef subject = getSystem().actorOf(props, "testDataTreeChangedNotificationsEnabled");
 
-            // Let the DataChangeListener know that notifications should be enabled
-            subject.tell(new EnableNotification(true), getRef());
+        // Let the DataChangeListener know that notifications should be
+        // enabled
+        subject.tell(new EnableNotification(true, "test"), testKit.getRef());
 
-            subject.tell(new DataTreeChanged(mockCandidates),
-                    getRef());
+        subject.tell(new DataTreeChanged(mockCandidates), testKit.getRef());
 
-            expectMsgClass(DataTreeChangedReply.class);
+        testKit.expectMsgClass(DataTreeChangedReply.class);
 
-            Mockito.verify(mockListener).onDataTreeChanged(mockCandidates);
-        }};
+        verify(mockListener).onDataTreeChanged(mockCandidates);
     }
 
-    @SuppressWarnings({ "rawtypes", "unchecked" })
     @Test
-    public void testDataChangedWhenNotificationsAreDisabled(){
-        new JavaTestKit(getSystem()) {{
-            final DataTreeCandidate mockTreeCandidate = Mockito.mock(DataTreeCandidate.class);
-            final ImmutableList<DataTreeCandidate> mockCandidates = ImmutableList.of(mockTreeCandidate);
-            final DOMDataTreeChangeListener mockListener = Mockito.mock(DOMDataTreeChangeListener.class);
-            final Props props = DataTreeChangeListenerActor.props(mockListener);
-            final ActorRef subject =
-                    getSystem().actorOf(props, "testDataTreeChangedNotificationsDisabled");
-
-            subject.tell(new DataTreeChanged(mockCandidates),
-                    getRef());
-
-            new Within(duration("1 seconds")) {
-                @Override
-                protected void run() {
-                    expectNoMsg();
-
-                    Mockito.verify(mockListener, Mockito.never()).onDataTreeChanged(
-                            Matchers.anyCollectionOf(DataTreeCandidate.class));
-                }
-            };
-        }};
+    public void testDataChangedWhenNotificationsAreDisabled() {
+        final DataTreeCandidate mockTreeCandidate = mock(DataTreeCandidate.class);
+        final ImmutableList<DataTreeCandidate> mockCandidates = ImmutableList.of(mockTreeCandidate);
+        final DOMDataTreeChangeListener mockListener = mock(DOMDataTreeChangeListener.class);
+        final Props props = DataTreeChangeListenerActor.props(mockListener, TEST_PATH);
+        final ActorRef subject = getSystem().actorOf(props, "testDataTreeChangedNotificationsDisabled");
+
+        subject.tell(new DataTreeChanged(mockCandidates), testKit.getRef());
+
+        testKit.within(Duration.ofSeconds(1), () -> {
+            testKit.expectNoMessage();
+            verify(mockListener, never()).onDataTreeChanged(anyCollection());
+            return null;
+        });
     }
 
-    @SuppressWarnings({ "rawtypes", "unchecked" })
     @Test
-    public void testDataChangedWithNoSender(){
-        new JavaTestKit(getSystem()) {{
-            final DataTreeCandidate mockTreeCandidate = Mockito.mock(DataTreeCandidate.class);
-            final ImmutableList<DataTreeCandidate> mockCandidates = ImmutableList.of(mockTreeCandidate);
-            final DOMDataTreeChangeListener mockListener = Mockito.mock(DOMDataTreeChangeListener.class);
-            final Props props = DataTreeChangeListenerActor.props(mockListener);
-            final ActorRef subject = getSystem().actorOf(props, "testDataTreeChangedWithNoSender");
-
-            getSystem().eventStream().subscribe(getRef(), DeadLetter.class);
-
-            subject.tell(new DataTreeChanged(mockCandidates), ActorRef.noSender());
-
-            // Make sure no DataChangedReply is sent to DeadLetters.
-            while(true) {
-                DeadLetter deadLetter;
-                try {
-                    deadLetter = expectMsgClass(duration("1 seconds"), DeadLetter.class);
-                } catch (AssertionError e) {
-                    // Timed out - got no DeadLetter - this is good
-                    break;
-                }
-
-                // We may get DeadLetters for other messages we don't care about.
-                Assert.assertFalse("Unexpected DataTreeChangedReply",
-                        deadLetter.message() instanceof DataTreeChangedReply);
+    public void testDataChangedWithNoSender() {
+        final DataTreeCandidate mockTreeCandidate = mock(DataTreeCandidate.class);
+        final ImmutableList<DataTreeCandidate> mockCandidates = ImmutableList.of(mockTreeCandidate);
+        final DOMDataTreeChangeListener mockListener = mock(DOMDataTreeChangeListener.class);
+        final Props props = DataTreeChangeListenerActor.props(mockListener, TEST_PATH);
+        final ActorRef subject = getSystem().actorOf(props, "testDataTreeChangedWithNoSender");
+
+        getSystem().eventStream().subscribe(testKit.getRef(), DeadLetter.class);
+
+        subject.tell(new DataTreeChanged(mockCandidates), ActorRef.noSender());
+
+        // Make sure no DataChangedReply is sent to DeadLetters.
+        while (true) {
+            DeadLetter deadLetter;
+            try {
+                deadLetter = testKit.expectMsgClass(Duration.ofSeconds(1), DeadLetter.class);
+            } catch (AssertionError e) {
+                // Timed out - got no DeadLetter - this is good
+                break;
             }
-        }};
+
+            // We may get DeadLetters for other messages we don't care
+            // about.
+            assertFalse("Unexpected DataTreeChangedReply", deadLetter.message() instanceof DataTreeChangedReply);
+        }
     }
 
-    @SuppressWarnings({ "rawtypes", "unchecked" })
     @Test
-    public void testDataChangedWithListenerRuntimeEx(){
-        new JavaTestKit(getSystem()) {{
-            final DataTreeCandidate mockTreeCandidate1 = Mockito.mock(DataTreeCandidate.class);
-            final ImmutableList<DataTreeCandidate> mockCandidates1 = ImmutableList.of(mockTreeCandidate1);
-            final DataTreeCandidate mockTreeCandidate2 = Mockito.mock(DataTreeCandidate.class);
-            final ImmutableList<DataTreeCandidate> mockCandidates2 = ImmutableList.of(mockTreeCandidate2);
-            final DataTreeCandidate mockTreeCandidate3 = Mockito.mock(DataTreeCandidate.class);
-            final ImmutableList<DataTreeCandidate> mockCandidates3 = ImmutableList.of(mockTreeCandidate3);
+    public void testDataChangedWithListenerRuntimeEx() {
+        final DataTreeCandidate mockTreeCandidate1 = mock(DataTreeCandidate.class);
+        final ImmutableList<DataTreeCandidate> mockCandidates1 = ImmutableList.of(mockTreeCandidate1);
+        final DataTreeCandidate mockTreeCandidate2 = mock(DataTreeCandidate.class);
+        final ImmutableList<DataTreeCandidate> mockCandidates2 = ImmutableList.of(mockTreeCandidate2);
+        final DataTreeCandidate mockTreeCandidate3 = mock(DataTreeCandidate.class);
+        final ImmutableList<DataTreeCandidate> mockCandidates3 = ImmutableList.of(mockTreeCandidate3);
 
-            final DOMDataTreeChangeListener mockListener = Mockito.mock(DOMDataTreeChangeListener.class);
-            Mockito.doThrow(new RuntimeException("mock")).when(mockListener).onDataTreeChanged(mockCandidates2);
+        final DOMDataTreeChangeListener mockListener = mock(DOMDataTreeChangeListener.class);
+        doThrow(new RuntimeException("mock")).when(mockListener).onDataTreeChanged(mockCandidates2);
 
-            Props props = DataTreeChangeListenerActor.props(mockListener);
-            ActorRef subject = getSystem().actorOf(props, "testDataTreeChangedWithListenerRuntimeEx");
+        Props props = DataTreeChangeListenerActor.props(mockListener, TEST_PATH);
+        ActorRef subject = getSystem().actorOf(props, "testDataTreeChangedWithListenerRuntimeEx");
 
-            // Let the DataChangeListener know that notifications should be enabled
-            subject.tell(new EnableNotification(true), getRef());
+        // Let the DataChangeListener know that notifications should be
+        // enabled
+        subject.tell(new EnableNotification(true, "test"), testKit.getRef());
 
-            subject.tell(new DataTreeChanged(mockCandidates1),getRef());
-            expectMsgClass(DataTreeChangedReply.class);
+        subject.tell(new DataTreeChanged(mockCandidates1), testKit.getRef());
+        testKit.expectMsgClass(DataTreeChangedReply.class);
 
-            subject.tell(new DataTreeChanged(mockCandidates2),getRef());
-            expectMsgClass(DataTreeChangedReply.class);
+        subject.tell(new DataTreeChanged(mockCandidates2), testKit.getRef());
+        testKit.expectMsgClass(DataTreeChangedReply.class);
 
-            subject.tell(new DataTreeChanged(mockCandidates3),getRef());
-            expectMsgClass(DataTreeChangedReply.class);
+        subject.tell(new DataTreeChanged(mockCandidates3), testKit.getRef());
+        testKit.expectMsgClass(DataTreeChangedReply.class);
 
-            Mockito.verify(mockListener).onDataTreeChanged(mockCandidates1);
-            Mockito.verify(mockListener).onDataTreeChanged(mockCandidates2);
-            Mockito.verify(mockListener).onDataTreeChanged(mockCandidates3);
-        }};
+        verify(mockListener).onDataTreeChanged(mockCandidates1);
+        verify(mockListener).onDataTreeChanged(mockCandidates2);
+        verify(mockListener).onDataTreeChanged(mockCandidates3);
     }
 }