X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fsal-netconf-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Fconnect%2Fnetconf%2Fsal%2FMountInstanceTest.java;h=3a63e17a93fb7d777d10495b1d54d5e9056343f4;hb=4111fc386b35e327d1038b7b7b8a52d6457df28d;hp=7e62990bc7288e619362040c2b04f78e31f11ac9;hpb=2c6f70e0e363b856b5303e20418312be69135316;p=netconf.git diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/MountInstanceTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/MountInstanceTest.java index 7e62990bc7..3a63e17a93 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/MountInstanceTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/MountInstanceTest.java @@ -7,38 +7,49 @@ */ package org.opendaylight.netconf.sal.connect.netconf.sal; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import com.google.common.collect.Lists; import java.net.InetSocketAddress; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; -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.DOMNotificationService; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; +import org.mockito.junit.MockitoJUnitRunner; +import org.opendaylight.mdsal.binding.runtime.spi.BindingRuntimeHelpers; +import org.opendaylight.mdsal.dom.api.DOMDataBroker; +import org.opendaylight.mdsal.dom.api.DOMMountPoint; +import org.opendaylight.mdsal.dom.api.DOMMountPointService; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.mdsal.dom.api.DOMNotificationService; +import org.opendaylight.mdsal.dom.api.DOMRpcService; +import org.opendaylight.mdsal.dom.api.DOMSchemaService; +import org.opendaylight.netconf.dom.api.NetconfDataTreeService; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.IetfNetconfService; 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.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +@RunWith(MockitoJUnitRunner.StrictStubs.class) public class MountInstanceTest { + private static final Logger LOG = LoggerFactory.getLogger(MountInstanceTest.class); - private static SchemaContext SCHEMA_CONTEXT; + private static EffectiveModelContext SCHEMA_CONTEXT; @Mock private DOMMountPointService service; @Mock private DOMDataBroker broker; @Mock + private NetconfDataTreeService netconfService; + @Mock private DOMRpcService rpcService; @Mock private NetconfDeviceNotificationService notificationService; @@ -46,55 +57,76 @@ public class MountInstanceTest { private DOMMountPointService.DOMMountPointBuilder mountPointBuilder; @Mock private ObjectRegistration registration; + @Mock + private DOMNotification notification; private NetconfDeviceSalProvider.MountInstance mountInstance; @BeforeClass - 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())); - SCHEMA_CONTEXT = moduleInfoBackedContext.tryToCreateSchemaContext().get(); - + public static void suiteSetUp() throws Exception { + SCHEMA_CONTEXT = BindingRuntimeHelpers.createEffectiveModel(IetfNetconfService.class); } @Before public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); 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))); } @Test - public void testOnTopologyDeviceConnected() throws Exception { - mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, rpcService, notificationService); - verify(mountPointBuilder).addInitialSchemaContext(SCHEMA_CONTEXT); + public void testOnTopologyDeviceConnected() { + mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, null, rpcService, + notificationService, null); + verify(mountPointBuilder).addService(eq(DOMSchemaService.class), any()); verify(mountPointBuilder).addService(DOMDataBroker.class, broker); verify(mountPointBuilder).addService(DOMRpcService.class, rpcService); verify(mountPointBuilder).addService(DOMNotificationService.class, notificationService); } @Test - public void testOnTopologyDeviceDisconnected() throws Exception { - mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, rpcService, notificationService); + public void testOnTopologyDeviceConnectedWithNetconfService() { + mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, null, netconfService, rpcService, + notificationService, null); + verify(mountPointBuilder).addService(eq(DOMSchemaService.class), any()); + verify(mountPointBuilder).addService(NetconfDataTreeService.class, netconfService); + verify(mountPointBuilder).addService(DOMRpcService.class, rpcService); + verify(mountPointBuilder).addService(DOMNotificationService.class, notificationService); + } + + @Test + public void testOnTopologyDeviceDisconnected() { + mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, null, rpcService, + notificationService, null); mountInstance.onTopologyDeviceDisconnected(); verify(registration).close(); try { - mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, rpcService, notificationService); - } catch (IllegalStateException e) { - e.printStackTrace(); + mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, null, rpcService, + notificationService, null); + } catch (final IllegalStateException e) { + LOG.warn("Operation failed.", e); Assert.fail("Topology registration still present after disconnect "); } } @Test - public void testClose() throws Exception { - mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, rpcService, notificationService); + public void testClose() { + mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, null, rpcService, + notificationService, null); mountInstance.close(); verify(registration).close(); } -} \ No newline at end of file + @Test + public void testPublishNotification() { + mountInstance.onTopologyDeviceConnected(SCHEMA_CONTEXT, broker, null, rpcService, + notificationService, null); + verify(mountPointBuilder).addService(eq(DOMSchemaService.class), any()); + verify(mountPointBuilder).addService(DOMNotificationService.class, notificationService); + mountInstance.publish(notification); + verify(notificationService).publishNotification(notification); + } +}