Clean up NotificationMessage
[netconf.git] / netconf / mdsal-netconf-notification / src / test / java / org / opendaylight / netconf / mdsal / notification / impl / NetconfNotificationManagerTest.java
index 34bbcf3f1f47e6329167cd97865ff041dd47224e..ba7e270c3561ab058a4621a35dd643f2ddf72c41 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.netconf.mdsal.notification.impl;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doNothing;
@@ -17,25 +17,21 @@ import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 
-import com.google.common.collect.Lists;
 import java.text.SimpleDateFormat;
 import java.time.Instant;
 import java.time.format.DateTimeParseException;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.Iterator;
-import org.junit.Assert;
+import java.util.List;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.mdsal.binding.dom.codec.impl.di.DefaultBindingDOMCodecFactory;
 import org.opendaylight.mdsal.binding.generator.impl.DefaultBindingRuntimeGenerator;
+import org.opendaylight.netconf.api.messages.NotificationMessage;
 import org.opendaylight.netconf.api.xml.XmlUtil;
 import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
-import org.opendaylight.netconf.notifications.NetconfNotification;
 import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
 import org.opendaylight.netconf.notifications.NetconfNotificationListener;
-import org.opendaylight.netconf.notifications.NotificationListenerRegistration;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714.StreamNameType;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.Stream;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.StreamBuilder;
@@ -51,7 +47,7 @@ public class NetconfNotificationManagerTest {
     @Test
     public void testEventTime() throws Exception {
         //Testing values with SimpleDateFormat
-        final ArrayList<String> checkWith = Lists.newArrayList(
+        final var iterator = List.of(
                 "2001-07-04T12:08:56.235-07:00",
                 "2015-10-23T09:42:27.671+00:00",
                 "1970-01-01T17:17:22.229+00:00",
@@ -69,11 +65,10 @@ public class NetconfNotificationManagerTest {
                 "1937-01-01T23:59:59.870+00:20",
                 "1990-12-31T23:59:59.000+00:00",
                 "2015-10-23T23:59:59.200+00:00",
-                "1985-04-12T23:59:59.520+00:00");
-        final Iterator<String> iterator = checkWith.iterator();
+                "1985-04-12T23:59:59.520+00:00").iterator();
 
         // Testing correct values
-        for (final String time : Lists.newArrayList(
+        for (final String time : List.of(
                 "2001-07-04T12:08:56.235-07:00",
                 "2015-10-23T09:42:27.67175+00:00",
                 "1970-01-01T17:17:22.229568+00:00",
@@ -93,46 +88,34 @@ public class NetconfNotificationManagerTest {
                 "2015-10-23T23:59:60.20001Z",
                 "1985-04-12T23:59:60.52Z"
         )) {
-            try {
-                final Date apply = NetconfNotification.RFC3339_DATE_PARSER.apply(time);
-                final Date parse =
-                        new SimpleDateFormat(RFC3339_DATE_FORMAT_WITH_MILLIS_BLUEPRINT).parse(iterator.next());
-                assertEquals(parse.getTime(), apply.getTime());
-                // Testing that we're consistent from formatting to parsing.
-                final String dateString = NetconfNotification.RFC3339_DATE_FORMATTER.apply(apply);
-                final Date date1 = NetconfNotification.RFC3339_DATE_PARSER.apply(dateString);
-                final String dateString1 = NetconfNotification.RFC3339_DATE_FORMATTER.apply(date1);
-                Assert.assertEquals(apply, date1);
-                Assert.assertEquals(dateString, dateString1);
-            } catch (final DateTimeParseException e) {
-                fail("Failed to parse time value = " + time + " " + e);
-                throw e;
-            }
+            final var apply = NotificationMessage.RFC3339_DATE_PARSER.apply(time);
+            final var parse = new SimpleDateFormat(RFC3339_DATE_FORMAT_WITH_MILLIS_BLUEPRINT).parse(iterator.next());
+            assertEquals(parse, Date.from(apply));
+            // Testing that we're consistent from formatting to parsing.
+            final String dateString = NotificationMessage.RFC3339_DATE_FORMATTER.apply(apply);
+            final var date1 = NotificationMessage.RFC3339_DATE_PARSER.apply(dateString);
+            final String dateString1 = NotificationMessage.RFC3339_DATE_FORMATTER.apply(date1);
+            assertEquals(apply, date1);
+            assertEquals(dateString, dateString1);
         }
 
         // Testing that we're consistent from formatting to parsing.
-        final Date date0 = Date.from(Instant.ofEpochMilli(0));
-        final String dateString0 = NetconfNotification.RFC3339_DATE_FORMATTER.apply(date0);
-        final Date date1 = NetconfNotification.RFC3339_DATE_PARSER.apply(dateString0);
-        final String dateString1 = NetconfNotification.RFC3339_DATE_FORMATTER.apply(date1);
-        Assert.assertEquals(date0, date1);
-        Assert.assertEquals(dateString0, dateString1);
+        final var date0 = Instant.ofEpochMilli(0);
+        final String dateString0 = NotificationMessage.RFC3339_DATE_FORMATTER.apply(date0);
+        final var date1 = NotificationMessage.RFC3339_DATE_PARSER.apply(dateString0);
+        final String dateString1 = NotificationMessage.RFC3339_DATE_FORMATTER.apply(date1);
+        assertEquals(date0, date1);
+        assertEquals(dateString0, dateString1);
 
         // Testing wrong values
-        for (final String time : Lists.newArrayList(
+        for (final String time : List.of(
                 "0",
                 "205-10-23T09:42:27.67175+00:00",
                 "1970-01-01T17:60:22.229568+00:00",
                 "1937-01-01T32:00:27.87+00:20",
                 "2060-13-31T15:59:90-08:00",
-                "1990-12-31T23:58:60Z"
-        )) {
-            try {
-                NetconfNotification.RFC3339_DATE_PARSER.apply(time);
-            } catch (final DateTimeParseException e) {
-                continue;
-            }
-            fail("Should have thrown an exception; value= " + time);
+                "1990-12-31T23:58:60Z")) {
+            assertThrows(DateTimeParseException.class, () -> NotificationMessage.RFC3339_DATE_PARSER.apply(time));
         }
     }
 
@@ -145,15 +128,16 @@ public class NetconfNotificationManagerTest {
         final NetconfCapabilityChangeBuilder capabilityChangedBuilder = new NetconfCapabilityChangeBuilder();
 
         final NetconfNotificationListener listener = mock(NetconfNotificationListener.class);
-        doNothing().when(listener).onNotification(any(StreamNameType.class), any(NetconfNotification.class));
-        final NotificationListenerRegistration notificationListenerRegistration = netconfNotificationManager
-                .registerNotificationListener(NetconfNotificationManager.BASE_NETCONF_STREAM.getName(), listener);
+        doNothing().when(listener).onNotification(any(StreamNameType.class), any(NotificationMessage.class));
+
         final NetconfCapabilityChange notification = capabilityChangedBuilder.build();
-        baseNotificationPublisherRegistration.onCapabilityChanged(notification);
 
-        verify(listener).onNotification(any(StreamNameType.class), any(NetconfNotification.class));
+        try (var reg = netconfNotificationManager.registerNotificationListener(
+                NetconfNotificationManager.BASE_NETCONF_STREAM.getName(), listener)) {
+            baseNotificationPublisherRegistration.onCapabilityChanged(notification);
 
-        notificationListenerRegistration.close();
+            verify(listener).onNotification(any(StreamNameType.class), any(NotificationMessage.class));
+        }
 
         baseNotificationPublisherRegistration.onCapabilityChanged(notification);
         verifyNoMoreInteractions(listener);
@@ -173,9 +157,9 @@ public class NetconfNotificationManagerTest {
         final NetconfNotificationListener listener = mock(NetconfNotificationListener.class);
         netconfNotificationManager.registerNotificationListener(testStream.getName(), listener);
 
-        doNothing().when(listener).onNotification(eq(testStreamName), any(NetconfNotification.class));
+        doNothing().when(listener).onNotification(eq(testStreamName), any(NotificationMessage.class));
 
-        final NetconfNotification notification = new NetconfNotification(
+        final NotificationMessage notification = new NotificationMessage(
             XmlUtil.readXmlToDocument("<notification/>"));
         netconfNotificationManager.onNotification(testStream.getName(), notification);
 
@@ -212,14 +196,9 @@ public class NetconfNotificationManagerTest {
 
         verify(streamListener).onStreamUnregistered(NetconfNotificationManager.BASE_NETCONF_STREAM.getName());
 
-        try {
-            baseNotificationPublisherRegistration.onCapabilityChanged(new NetconfCapabilityChangeBuilder().build());
-        } catch (final IllegalStateException e) {
-            // Exception should be thrown after manager is closed
-            return;
-        }
-
-        fail("Publishing into a closed manager should fail");
+        final var change = new NetconfCapabilityChangeBuilder().build();
+        assertThrows(IllegalStateException.class,
+            () -> baseNotificationPublisherRegistration.onCapabilityChanged(change));
     }
 
     @Test