mdsal-netconf-notification unit tests added 78/44278/9
authorRudolf Brisuda <rudolf.brisuda@pantheon.tech>
Thu, 18 Aug 2016 14:58:32 +0000 (16:58 +0200)
committerRudolf Brisuda <rudolf.brisuda@pantheon.tech>
Fri, 9 Sep 2016 11:48:42 +0000 (13:48 +0200)
Change-Id: Ib6a0ced3975ca72c0b8671c5d51bd005c8cc1a06
Signed-off-by: Rudolf Brisuda <rudolf.brisuda@pantheon.tech>
netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/NotificationToMdsalWriterTest.java
netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/OperationalDatastoreListenerTest.java [new file with mode: 0644]

index 601315a28b2958199012b18f9c382d0f645144f0..6084d92cca0a62952a1b2b9bbc19e06668f015d4 100644 (file)
@@ -25,6 +25,7 @@ import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
 import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
+import org.opendaylight.netconf.notifications.NotificationRegistration;
 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;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.Streams;
@@ -40,12 +41,16 @@ public class NotificationToMdsalWriterTest {
 
     private NotificationToMdsalWriter writer;
 
+    @Mock
+    private NotificationRegistration notificationRegistration;
+
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         final NetconfNotificationCollector notificationCollector = mock(NetconfNotificationCollector.class);
         final BindingAwareBroker.ProviderContext session = mock(BindingAwareBroker.ProviderContext.class);
-        doReturn(null).when(notificationCollector).registerStreamListener(any(
+
+        doReturn(notificationRegistration).when(notificationCollector).registerStreamListener(any(
                 NetconfNotificationCollector.NetconfNotificationStreamListener.class));
         doReturn(dataBroker).when(session).getSALService(DataBroker.class);
 
@@ -75,4 +80,17 @@ public class NotificationToMdsalWriterTest {
 
         verify(dataBroker.newWriteOnlyTransaction()).delete(LogicalDatastoreType.OPERATIONAL, streamIdentifier);
     }
+
+    @Test
+    public void testClose(){
+        doNothing().when(notificationRegistration).close();
+
+        final InstanceIdentifier streamIdentifier = InstanceIdentifier.create(Netconf.class);
+
+        writer.close();
+
+        verify(dataBroker.newWriteOnlyTransaction()).delete(LogicalDatastoreType.OPERATIONAL, streamIdentifier);
+        verify(notificationRegistration).close();
+    }
+
 }
diff --git a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/OperationalDatastoreListenerTest.java b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/notification/OperationalDatastoreListenerTest.java
new file mode 100644 (file)
index 0000000..6e87cb8
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.config.yang.netconf.mdsal.notification;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+
+import java.util.Collection;
+import javax.annotation.Nonnull;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class OperationalDatastoreListenerTest {
+
+    @Mock
+    private DataBroker dataBroker;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testDataStoreListener(){
+        final InstanceIdentifier<DataObject> instanceIdentifier = InstanceIdentifier.create(DataObject.class);
+        final DataTreeIdentifier<DataObject> testId =
+                new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL, instanceIdentifier);
+
+        final OperationalDatastoreListener<DataObject> op = new OperationalDatastoreListener<DataObject>(instanceIdentifier) {
+            @Override
+            public void onDataTreeChanged(@Nonnull Collection collection) {
+            }
+        };
+        doReturn(null).when(dataBroker).registerDataTreeChangeListener(any(), any());
+
+        ArgumentCaptor<DataTreeIdentifier> argumentId = ArgumentCaptor.forClass(DataTreeIdentifier.class);
+        op.registerOnChanges(dataBroker);
+        verify(dataBroker).registerDataTreeChangeListener(argumentId.capture(), any());
+
+        assertEquals(testId, argumentId.getValue());
+
+    }
+
+}