*/
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.HashMap;
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.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<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", publisherService),
- Map.of("test", publisherAlarm), new HashMap<>());
+ Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
PublishNotificationProcessService notification = new PublishNotificationProcessServiceBuilder()
.setPublisherName("test")
.setCommonId("commonId")
@Test
public void onPublishNotificationServiceWrongPublisherTest() {
NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisherService),
- Map.of("test", publisherAlarm), new HashMap<>());
+ Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
PublishNotificationProcessService notification = new PublishNotificationProcessServiceBuilder()
.setPublisherName("wrongPublisher")
.setCommonId("commonId")
@Test
public void onPublishNotificationAlarmServiceTest() {
NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisherService),
- Map.of("test", publisherAlarm), new HashMap<>());
+ Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
PublishNotificationAlarmService notification = new PublishNotificationAlarmServiceBuilder()
.setPublisherName("test")
.setConnectionType(ConnectionType.Service)
@Test
public void onPublishNotificationAlarmServiceWrongPublisherTest() {
NbiNotificationsListenerImpl listener = new NbiNotificationsListenerImpl(Map.of("test", publisherService),
- Map.of("test", publisherAlarm), new HashMap<>());
+ Map.of("test", publisherAlarm), Map.of("test", publisherTapiService));
PublishNotificationAlarmService notification = new PublishNotificationAlarmServiceBuilder()
.setPublisherName("wrongPublisher")
.setConnectionType(ConnectionType.Service)
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 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"));
+ }
}