Refactor NBINotifications and serviceHandlerImpl
[transportpce.git] / nbinotifications / src / test / java / org / opendaylight / transportpce / nbinotifications / consumer / SubscriberTest.java
index de58a498af4234e7635911e37d7af075a9d7ef3d..7e5fcf615a00f5bbb55194a2df6fe253b3fe44f5 100644 (file)
@@ -22,24 +22,31 @@ import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.transportpce.nbinotifications.utils.NotificationServiceDataUtils;
 import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.nbi.notifications.rev201130.get.notifications.service.output.NotificationService;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev210813.NotificationAlarmService;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev210813.NotificationProcessService;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev210813.get.notifications.alarm.service.output.NotificationsAlarmService;
+import org.opendaylight.yang.gen.v1.nbi.notifications.rev210813.get.notifications.process.service.output.NotificationsProcessService;
 
 public class SubscriberTest extends AbstractTest {
     private static final String TOPIC = "topic";
     private static final int PARTITION = 0;
-    private MockConsumer<String, NotificationService> mockConsumer;
-    private Subscriber subscriber;
+    private MockConsumer<String, NotificationsProcessService> mockConsumer;
+    private MockConsumer<String, NotificationsAlarmService> mockConsumerAlarm;
+    private Subscriber<NotificationProcessService, NotificationsProcessService> subscriberService;
+    private Subscriber<NotificationAlarmService, NotificationsAlarmService> subscriberAlarmService;
 
     @Before
     public void setUp() {
         mockConsumer = new MockConsumer<>(OffsetResetStrategy.EARLIEST);
-        subscriber = new Subscriber(mockConsumer);
+        mockConsumerAlarm = new MockConsumer<>(OffsetResetStrategy.EARLIEST);
+        subscriberService = new Subscriber<>(mockConsumer);
+        subscriberAlarmService = new Subscriber<>(mockConsumerAlarm);
     }
 
     @Test
     public void subscribeServiceShouldBeSuccessful() {
         // from https://www.baeldung.com/kafka-mockconsumer
-        ConsumerRecord<String, NotificationService> record = new ConsumerRecord<String, NotificationService>(
+        ConsumerRecord<String, NotificationsProcessService> record = new ConsumerRecord<>(
                 TOPIC, PARTITION, 0L, "key", NotificationServiceDataUtils.buildReceivedEvent());
         mockConsumer.schedulePollTask(() -> {
             mockConsumer.rebalance(Collections.singletonList(new TopicPartition(TOPIC, PARTITION)));
@@ -50,8 +57,29 @@ public class SubscriberTest extends AbstractTest {
         TopicPartition tp = new TopicPartition(TOPIC, PARTITION);
         startOffsets.put(tp, 0L);
         mockConsumer.updateBeginningOffsets(startOffsets);
-        List<NotificationService> result = subscriber.subscribeService(TOPIC);
+        List<NotificationsProcessService> result = subscriberService.subscribe(TOPIC,
+                NotificationsProcessService.QNAME);
         assertEquals("There should be 1 record", 1, result.size());
         assertTrue("Consumer should be closed", mockConsumer.closed());
     }
+
+    @Test
+    public void subscribeAlarmShouldBeSuccessful() {
+        // from https://www.baeldung.com/kafka-mockconsumer
+        ConsumerRecord<String, NotificationsAlarmService> record = new ConsumerRecord<>(
+                TOPIC, PARTITION, 0L, "key", NotificationServiceDataUtils.buildReceivedAlarmEvent());
+        mockConsumerAlarm.schedulePollTask(() -> {
+            mockConsumerAlarm.rebalance(Collections.singletonList(new TopicPartition(TOPIC, PARTITION)));
+            mockConsumerAlarm.addRecord(record);
+        });
+
+        Map<TopicPartition, Long> startOffsets = new HashMap<>();
+        TopicPartition tp = new TopicPartition(TOPIC, PARTITION);
+        startOffsets.put(tp, 0L);
+        mockConsumerAlarm.updateBeginningOffsets(startOffsets);
+        List<NotificationsAlarmService> result = subscriberAlarmService.subscribe(TOPIC,
+                NotificationsAlarmService.QNAME);
+        assertEquals("There should be 1 record", 1, result.size());
+        assertTrue("Consumer should be closed", mockConsumerAlarm.closed());
+    }
 }