Merge "Migrate netconf to mockito ArgumentMatchers"
[netconf.git] / netconf / sal-netconf-connector / src / test / java / org / opendaylight / netconf / sal / connect / netconf / sal / MountInstanceTest.java
index 7e62990bc7288e619362040c2b04f78e31f11ac9..b990dd68f4f191cb44f528a25f32de2ce97723a9 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.netconf.sal.connect.netconf.sal;
 
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -22,16 +22,21 @@ import org.mockito.MockitoAnnotations;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
 import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint;
 import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
+import org.opendaylight.controller.md.sal.dom.api.DOMNotification;
 import org.opendaylight.controller.md.sal.dom.api.DOMNotificationService;
 import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
+import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
 import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
 import org.opendaylight.yangtools.concepts.ObjectRegistration;
-import org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class MountInstanceTest {
 
+    private static final Logger LOG = LoggerFactory.getLogger(MountInstanceTest.class);
+
     private static SchemaContext SCHEMA_CONTEXT;
 
     @Mock
@@ -46,14 +51,16 @@ public class MountInstanceTest {
     private DOMMountPointService.DOMMountPointBuilder mountPointBuilder;
     @Mock
     private ObjectRegistration<DOMMountPoint> registration;
+    @Mock
+    private DOMNotification notification;
 
     private NetconfDeviceSalProvider.MountInstance mountInstance;
 
     @BeforeClass
-    public static void suiteSetUp() throws Exception{
+    public static void suiteSetUp() throws Exception {
         final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create();
-        moduleInfoBackedContext.addModuleInfos(
-                Lists.newArrayList(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.$YangModuleInfoImpl.getInstance()));
+        moduleInfoBackedContext.addModuleInfos(Lists.newArrayList(org.opendaylight.yang.gen
+                .v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.$YangModuleInfoImpl.getInstance()));
         SCHEMA_CONTEXT = moduleInfoBackedContext.tryToCreateSchemaContext().get();
 
     }
@@ -64,7 +71,8 @@ public class MountInstanceTest {
         when(service.createMountPoint(any(YangInstanceIdentifier.class))).thenReturn(mountPointBuilder);
 
         when(mountPointBuilder.register()).thenReturn(registration);
-        mountInstance = new NetconfDeviceSalProvider.MountInstance(service, new RemoteDeviceId("device-1", InetSocketAddress.createUnresolved("localhost", 17830)));
+        mountInstance = new NetconfDeviceSalProvider.MountInstance(
+                service, new RemoteDeviceId("device-1", InetSocketAddress.createUnresolved("localhost", 17830)));
     }
 
 
@@ -84,8 +92,8 @@ public class MountInstanceTest {
         verify(registration).close();
         try {
             mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, rpcService, notificationService);
-        } catch (IllegalStateException e) {
-            e.printStackTrace();
+        } catch (final IllegalStateException e) {
+            LOG.warn("Operation failed.", e);
             Assert.fail("Topology registration still present after disconnect ");
         }
     }
@@ -97,4 +105,14 @@ public class MountInstanceTest {
         verify(registration).close();
     }
 
-}
\ No newline at end of file
+    @Test
+    public void testPublishNotification() throws Exception {
+        mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, rpcService, notificationService);
+        verify(mountPointBuilder).addInitialSchemaContext(SCHEMA_CONTEXT);
+        verify(mountPointBuilder).addService(DOMNotificationService.class, notificationService);
+        mountInstance.publish(notification);
+        verify(notificationService).publishNotification(notification);
+    }
+
+
+}