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%2FNetconfDeviceSalFacadeTest.java;h=4c85f816e26245ec4de9494caaa56a1614826182;hb=1dba5b2651d7fc60af0263cc0640d5ebeda8e454;hp=d8cda9fab0f53e2c00f2db82d674ff48a42400a5;hpb=c30ef416814c2c320b94d92717fbe9c96f95c8db;p=netconf.git diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalFacadeTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalFacadeTest.java index d8cda9fab0..4c85f816e2 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalFacadeTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalFacadeTest.java @@ -5,15 +5,11 @@ * 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.netconf.sal.connect.netconf.sal; -import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -23,24 +19,18 @@ import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.mdsal.binding.api.DataBroker; -import org.opendaylight.mdsal.binding.api.TransactionChain; -import org.opendaylight.mdsal.binding.api.WriteTransaction; -import org.opendaylight.mdsal.common.api.CommitInfo; -import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMDataBroker; import org.opendaylight.mdsal.dom.api.DOMNotification; -import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.netconf.dom.api.NetconfDataTreeService; +import org.opendaylight.netconf.sal.connect.api.RemoteDeviceId; +import org.opendaylight.netconf.sal.connect.api.RemoteDeviceServices; +import org.opendaylight.netconf.sal.connect.api.RemoteDeviceServices.Rpcs; +import org.opendaylight.netconf.sal.connect.netconf.NetconfDeviceSchema; +import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCapabilities; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil; -import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus; import org.opendaylight.yangtools.rfc8528.data.util.EmptyMountPointContext; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; @@ -49,44 +39,22 @@ public class NetconfDeviceSalFacadeTest { private final RemoteDeviceId remoteDeviceId = new RemoteDeviceId("test", new InetSocketAddress("127.0.0.1", 8000)); @Mock - private NetconfDeviceSalProvider.MountInstance mountInstance; - @Mock - private NetconfDeviceSalProvider salProvider; - @Mock - private DataBroker dataBroker; - @Mock - private TransactionChain txChain; - @Mock - private WriteTransaction tx; - @Captor - private ArgumentCaptor nodeCaptor; + private NetconfDeviceMount mountInstance; private NetconfDeviceSalFacade deviceFacade; @Before public void setUp() throws Exception { - doReturn(txChain).when(dataBroker).createMergingTransactionChain(any()); - doReturn(tx).when(txChain).newWriteOnlyTransaction(); - doNothing().when(tx).mergeParentStructurePut(eq(LogicalDatastoreType.OPERATIONAL), - eq(remoteDeviceId.getTopologyBindingPath().augmentation(NetconfNode.class)), nodeCaptor.capture()); - doReturn(CommitInfo.emptyFluentFuture()).when(tx).commit(); - - final NetconfDeviceTopologyAdapter adapter = new NetconfDeviceTopologyAdapter(dataBroker, remoteDeviceId); + doNothing().when(mountInstance).onDeviceDisconnected(); - deviceFacade = new NetconfDeviceSalFacade(remoteDeviceId, salProvider, dataBroker, "mockTopo"); - - doReturn(adapter).when(salProvider).getTopologyDatastoreAdapter(); - - doReturn(mountInstance).when(salProvider).getMountInstance(); - doNothing().when(mountInstance).onTopologyDeviceDisconnected(); + deviceFacade = new NetconfDeviceSalFacade(remoteDeviceId, mountInstance, true); } @Test public void testOnDeviceDisconnected() { deviceFacade.onDeviceDisconnected(); - verifyConnectionStatusUpdate(ConnectionStatus.Connecting); - verify(mountInstance, times(1)).onTopologyDeviceDisconnected(); + verify(mountInstance, times(1)).onDeviceDisconnected(); } @Test @@ -94,14 +62,13 @@ public class NetconfDeviceSalFacadeTest { final Throwable throwable = new Throwable(); deviceFacade.onDeviceFailed(throwable); - verifyConnectionStatusUpdate(ConnectionStatus.UnableToConnect); - verify(mountInstance, times(1)).onTopologyDeviceDisconnected(); + verify(mountInstance, times(1)).onDeviceDisconnected(); } @Test public void testOnDeviceClose() throws Exception { deviceFacade.close(); - verify(salProvider).close(); + verify(mountInstance).close(); } @Test @@ -111,13 +78,13 @@ public class NetconfDeviceSalFacadeTest { final var netconfSessionPreferences = NetconfSessionPreferences.fromStrings( List.of(NetconfMessageTransformUtil.NETCONF_CANDIDATE_URI.toString())); - final DOMRpcService deviceRpc = mock(DOMRpcService.class); - deviceFacade.onDeviceConnected(new EmptyMountPointContext(schemaContext), netconfSessionPreferences, deviceRpc, - null); - verifyConnectionStatusUpdate(ConnectionStatus.Connected); - verify(mountInstance, times(1)).onTopologyDeviceConnected(eq(schemaContext), - any(DOMDataBroker.class), any(NetconfDataTreeService.class), eq(deviceRpc), - any(NetconfDeviceNotificationService.class), isNull()); + final var deviceServices = new RemoteDeviceServices(mock(Rpcs.Normalized.class), null); + deviceFacade.onDeviceConnected( + new NetconfDeviceSchema(NetconfDeviceCapabilities.empty(), new EmptyMountPointContext(schemaContext)), + netconfSessionPreferences, deviceServices); + + verify(mountInstance, times(1)).onDeviceConnected(eq(schemaContext), eq(deviceServices), + any(DOMDataBroker.class), any(NetconfDataTreeService.class)); } @Test @@ -126,10 +93,4 @@ public class NetconfDeviceSalFacadeTest { deviceFacade.onNotification(domNotification); verify(mountInstance).publish(domNotification); } - - private void verifyConnectionStatusUpdate(final ConnectionStatus expectedStatus) { - verify(tx).mergeParentStructurePut(eq(LogicalDatastoreType.OPERATIONAL), - eq(remoteDeviceId.getTopologyBindingPath().augmentation(NetconfNode.class)), any()); - assertEquals(expectedStatus, nodeCaptor.getValue().getConnectionStatus()); - } }