T-API notification JUnit test
[transportpce.git] / nbinotifications / src / main / java / org / opendaylight / transportpce / nbinotifications / listener / NbiNotificationsListenerImpl.java
index 797fca71966b61d8a654fd07b591a7127982022c..7450fa6711503272d3be8ca59efadbdea5f848d7 100644 (file)
@@ -7,9 +7,9 @@
  */
 package org.opendaylight.transportpce.nbinotifications.listener;
 
-import java.util.HashMap;
 import java.util.Map;
 import org.opendaylight.transportpce.nbinotifications.producer.Publisher;
+import org.opendaylight.transportpce.nbinotifications.utils.NbiNotificationsUtils;
 import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.NbiNotificationsListener;
 import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.NotificationAlarmService;
 import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.NotificationAlarmServiceBuilder;
@@ -20,20 +20,6 @@ import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.NotificationTapi
 import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishNotificationAlarmService;
 import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishNotificationProcessService;
 import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.PublishTapiNotificationService;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.AdditionalInfo;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.AdditionalInfoBuilder;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.AdditionalInfoKey;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.AlarmInfoBuilder;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.ChangedAttributes;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.ChangedAttributesBuilder;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.ChangedAttributesKey;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.TargetObjectName;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.TargetObjectNameBuilder;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.TargetObjectNameKey;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev211013.notification.tapi.service.TcaInfoBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.Name;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.NameBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.NameKey;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -98,64 +84,8 @@ public class NbiNotificationsListenerImpl implements NbiNotificationsListener {
             return;
         }
         Publisher<NotificationTapiService> publisher = tapiPublisherMap.get(topic);
-        publisher.sendEvent(new NotificationTapiServiceBuilder(transformTapiNotification(notification))
-                .build(), topic);
-    }
-
-    private NotificationTapiService transformTapiNotification(PublishTapiNotificationService notification) {
-        Map<AdditionalInfoKey, AdditionalInfo> addInfoMap = new HashMap<>();
-        if (notification.getAdditionalInfo() != null) {
-            for (org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.notification.rev181210.notification.AdditionalInfo
-                addInfo:notification.getAdditionalInfo().values()) {
-                AdditionalInfo transAddInfo = new AdditionalInfoBuilder(addInfo).build();
-                addInfoMap.put(transAddInfo.key(), transAddInfo);
-            }
-        }
-        Map<ChangedAttributesKey, ChangedAttributes> changedAttMap = new HashMap<>();
-        if (notification.getChangedAttributes() != null) {
-            for (org.opendaylight.yang.gen.v1
-                .urn.onf.otcc.yang.tapi.notification.rev181210.notification.ChangedAttributes
-                    changedAtt:notification.getChangedAttributes().values()) {
-                ChangedAttributes transChangedAtt = new ChangedAttributesBuilder(changedAtt).build();
-                changedAttMap.put(transChangedAtt.key(), transChangedAtt);
-            }
-        }
-        Map<NameKey, Name> nameMap = new HashMap<>();
-        if (notification.getName() != null) {
-            for (Name name:notification.getName().values()) {
-                Name transName = new NameBuilder(name).build();
-                nameMap.put(transName.key(), transName);
-            }
-        }
-        Map<TargetObjectNameKey, TargetObjectName> targetObjNameMap = new HashMap<>();
-        if (notification.getTargetObjectName() != null) {
-            for (org.opendaylight.yang.gen.v1
-                .urn.onf.otcc.yang.tapi.notification.rev181210.notification.TargetObjectName
-                    targetObjectName:notification.getTargetObjectName().values()) {
-                TargetObjectName transTargetObjName = new TargetObjectNameBuilder(targetObjectName).build();
-                targetObjNameMap.put(transTargetObjName.key(), transTargetObjName);
-            }
-        }
-        LOG.info("Notification uuid = {}", notification.getUuid());
-        return new NotificationTapiServiceBuilder()
-            .setAlarmInfo(notification.getAlarmInfo() == null ? null
-                : new AlarmInfoBuilder(notification.getAlarmInfo()).build())
-            .setAdditionalText(notification.getAdditionalText())
-            .setAdditionalInfo(addInfoMap)
-            .setNotificationType(notification.getNotificationType())
-            .setChangedAttributes(changedAttMap)
-            .setEventTimeStamp(notification.getEventTimeStamp())
-            .setLayerProtocolName(notification.getLayerProtocolName())
-            .setName(nameMap)
-            .setSequenceNumber(notification.getSequenceNumber())
-            .setSourceIndicator(notification.getSourceIndicator())
-            .setTargetObjectIdentifier(notification.getTargetObjectIdentifier())
-            .setTargetObjectName(targetObjNameMap)
-            .setTargetObjectType(notification.getTargetObjectType())
-            .setTcaInfo(notification.getTcaInfo() == null ? null
-                : new TcaInfoBuilder(notification.getTcaInfo()).build())
-            .setUuid(notification.getUuid())
-            .build();
+        publisher.sendEvent(new NotificationTapiServiceBuilder(
+                NbiNotificationsUtils.transformTapiNotification(notification)).build(), topic);
     }
 
     public void setPublishersServiceMap(Map<String, Publisher<NotificationProcessService>> publishersServiceMap) {
@@ -169,4 +99,8 @@ public class NbiNotificationsListenerImpl implements NbiNotificationsListener {
     public void setTapiPublishersMap(Map<String, Publisher<NotificationTapiService>> tapiPublishersMap) {
         this.tapiPublisherMap = tapiPublishersMap;
     }
+
+    public Publisher<NotificationTapiService> getTapiPublisherFromTopic(String topic) {
+        return this.tapiPublisherMap.get(topic);
+    }
 }