T-API notification JUnit test
[transportpce.git] / nbinotifications / src / test / java / org / opendaylight / transportpce / nbinotifications / listener / NbiNotificationsListenerImplTest.java
index cb8faf242d1949277ca54644862428b38ffa99b0..ced79a2cc9668a296c350c7a895c5d0827e7633b 100644 (file)
  */
 package org.opendaylight.transportpce.nbinotifications.listener;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
 import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.ExecutionException;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.opendaylight.transportpce.nbinotifications.producer.Publisher;
+import org.opendaylight.transportpce.nbinotifications.utils.NotificationServiceDataUtils;
 import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev201130.PublishNotificationService;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev201130.PublishNotificationServiceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ConnectionType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.NotificationAlarmService;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.NotificationProcessService;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.NotificationTapiService;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishNotificationAlarmService;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishNotificationAlarmServiceBuilder;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishNotificationProcessService;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishNotificationProcessServiceBuilder;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishTapiNotificationService;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishTapiNotificationServiceBuilder;
 
 public class NbiNotificationsListenerImplTest extends AbstractTest {
     @Mock
-    private Publisher publisher;
+    private Publisher<NotificationProcessService> publisherService;
+    @Mock
+    private Publisher<NotificationAlarmService> publisherAlarm;
+    @Mock
+    private Publisher<NotificationTapiService> publisherTapiService;
 
     @Before
-    public void setUp() {
+    public void setUp() throws ExecutionException, InterruptedException {
         MockitoAnnotations.openMocks(this);
     }
 
     @Test
     public void onPublishNotificationServiceTest() {
-        NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisher));
-        PublishNotificationService notification = new PublishNotificationServiceBuilder().setTopic("test")
-                .setCommonId("commonId").setConnectionType(ConnectionType.Service).setMessage("Service deleted")
-                .setOperationalState(State.OutOfService).setServiceName("service name").build();
-        listener.onPublishNotificationService(notification);
-        verify(publisher, times(1)).sendEvent(any());
+        NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisherService),
+                Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
+        PublishNotificationProcessService notification = new PublishNotificationProcessServiceBuilder()
+                .setPublisherName("test")
+                .setCommonId("commonId")
+                .setConnectionType(ConnectionType.Service)
+                .setMessage("Service deleted")
+                .setOperationalState(State.OutOfService)
+                .setServiceName("service name")
+                .build();
+        listener.onPublishNotificationProcessService(notification);
+        verify(publisherService, times(1)).sendEvent(any(), anyString());
+    }
+
+    @Test
+    public void onPublishNotificationServiceWrongPublisherTest() {
+        NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisherService),
+                Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
+        PublishNotificationProcessService notification = new PublishNotificationProcessServiceBuilder()
+                .setPublisherName("wrongPublisher")
+                .setCommonId("commonId")
+                .setConnectionType(ConnectionType.Service)
+                .setMessage("Service deleted")
+                .setOperationalState(State.OutOfService)
+                .setServiceName("service name")
+                .build();
+        listener.onPublishNotificationProcessService(notification);
+        verify(publisherService, times(0)).sendEvent(any(), anyString());
+    }
+
+    @Test
+    public void onPublishNotificationAlarmServiceTest() {
+        NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisherService),
+                Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
+        PublishNotificationAlarmService notification = new PublishNotificationAlarmServiceBuilder()
+                .setPublisherName("test")
+                .setConnectionType(ConnectionType.Service)
+                .setMessage("The service is now inService")
+                .setOperationalState(State.OutOfService)
+                .setServiceName("service name")
+                .build();
+        listener.onPublishNotificationAlarmService(notification);
+        verify(publisherAlarm, times(1)).sendEvent(any(), anyString());
+    }
+
+    @Test
+    public void onPublishNotificationAlarmServiceWrongPublisherTest() {
+        NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisherService),
+                Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
+        PublishNotificationAlarmService notification = new PublishNotificationAlarmServiceBuilder()
+                .setPublisherName("wrongPublisher")
+                .setConnectionType(ConnectionType.Service)
+                .setMessage("The service is now inService")
+                .setOperationalState(State.OutOfService)
+                .setServiceName("service name")
+                .build();
+        listener.onPublishNotificationAlarmService(notification);
+        verify(publisherAlarm, times(0)).sendEvent(any(), anyString());
+    }
+
+    @Test
+    public void onPublishTapiNotificationServiceTest() throws ExecutionException, InterruptedException {
+        NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisherService),
+                Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
+
+        PublishTapiNotificationService notification
+            = new PublishTapiNotificationServiceBuilder(NotificationServiceDataUtils.buildReceivedTapiAlarmEvent())
+                .setTopic("test")
+                .build();
+        listener.onPublishTapiNotificationService(notification);
+        verify(publisherTapiService, times(1)).sendEvent(any(), anyString());
+    }
+
+    @Test
+    public void onPublishTapiNotificationServiceTestWrongPublisherTest() {
+        NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisherService),
+            Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
+        PublishTapiNotificationService notification
+            = new PublishTapiNotificationServiceBuilder(NotificationServiceDataUtils.buildReceivedTapiAlarmEvent())
+                .setTopic(UUID.randomUUID().toString())
+                .build();
+        listener.onPublishTapiNotificationService(notification);
+        verify(publisherTapiService, times(0)).sendEvent(any(), eq(notification.getTopic()));
     }
 
     @Test
-    public void onPublishNotificationServiceWrongTopicTest() {
-        NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisher));
-        PublishNotificationService notification = new PublishNotificationServiceBuilder().setTopic("wrongtopic")
-                .setCommonId("commonId").setConnectionType(ConnectionType.Service).setMessage("Service deleted")
-                .setOperationalState(State.OutOfService).setServiceName("service name").build();
-        listener.onPublishNotificationService(notification);
-        verify(publisher, times(0)).sendEvent(any());
+    public void getTapiPublisherFromTopicTest() {
+        NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisherService),
+                Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
+        assertNull(listener.getTapiPublisherFromTopic("toto"));
+        assertEquals(publisherTapiService, listener.getTapiPublisherFromTopic("test"));
     }
 }