X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fnetconf-topology-singleton%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Ftopology%2Fsingleton%2Fimpl%2FRemoteDeviceConnectorImplTest.java;h=5ecfe0cb60a756adb610b7ad5038ffe276788b0c;hb=52caea7f0226b11307aee7983b721124d2e8d25f;hp=fbdde9466d0778239a8fc825cd0b5f42a08b5aaa;hpb=39b3bd866ea3255855dd821353ebfef51247068d;p=netconf.git diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java index fbdde9466d..5ecfe0cb60 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java @@ -5,42 +5,47 @@ * 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.topology.singleton.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +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; import static org.mockito.MockitoAnnotations.initMocks; +import static org.opendaylight.mdsal.common.api.CommitInfo.emptyFluentFuture; -import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.util.Timeout; +import com.google.common.net.InetAddresses; +import com.google.common.util.concurrent.ListeningExecutorService; import io.netty.util.concurrent.EventExecutor; -import java.net.InetAddress; import java.net.InetSocketAddress; -import java.net.UnknownHostException; -import java.util.concurrent.ExecutorService; +import java.util.concurrent.ScheduledExecutorService; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; -import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; -import org.opendaylight.controller.config.threadpool.ThreadPool; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker; -import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; -import org.opendaylight.controller.sal.core.api.Broker; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.TransactionChain; +import org.opendaylight.mdsal.binding.api.TransactionChainListener; +import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.dom.api.DOMMountPointService; +import org.opendaylight.mdsal.dom.api.DOMRpcProviderService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.netconf.client.NetconfClientDispatcher; import org.opendaylight.netconf.client.NetconfClientSessionListener; import org.opendaylight.netconf.client.conf.NetconfClientConfiguration; import org.opendaylight.netconf.client.conf.NetconfReconnectingClientConfiguration; +import org.opendaylight.netconf.sal.connect.api.DeviceActionFactory; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator; +import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.netconf.sal.KeepaliveSalFacade; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfConnectorDTO; @@ -69,59 +74,70 @@ public class RemoteDeviceConnectorImplTest { private DataBroker dataBroker; @Mock - private RpcProviderRegistry rpcProviderRegistry; + private DOMRpcProviderService rpcProviderRegistry; @Mock private ClusterSingletonServiceProvider clusterSingletonServiceProvider; @Mock - private BindingAwareBroker bindingAwareBroker; + private ScheduledExecutorService keepaliveExecutor; @Mock - private ScheduledThreadPool keepaliveExecutor; + private ListeningExecutorService processingExecutor; @Mock - private ThreadPool processingExecutor; + private ActorSystem actorSystem; @Mock - private Broker domBroker; + private EventExecutor eventExecutor; @Mock - private ActorSystem actorSystem; + private NetconfClientDispatcher clientDispatcher; @Mock - private EventExecutor eventExecutor; + private DOMMountPointService mountPointService; @Mock - private NetconfClientDispatcher clientDispatcher; + private TransactionChain txChain; + + @Mock + private WriteTransaction writeTx; + + @Mock + private DeviceActionFactory deviceActionFactory; private NetconfTopologySetup.NetconfTopologySetupBuilder builder; private RemoteDeviceId remoteDeviceId; @Before - public void setUp() throws UnknownHostException { + public void setUp() { initMocks(this); remoteDeviceId = new RemoteDeviceId(TOPOLOGY_ID, - new InetSocketAddress(InetAddress.getByName("127.0.0.1"), 9999)); + new InetSocketAddress(InetAddresses.forString("127.0.0.1"), 9999)); + doReturn(txChain).when(dataBroker).createTransactionChain(any(TransactionChainListener.class)); + doReturn(writeTx).when(txChain).newWriteOnlyTransaction(); + doNothing().when(writeTx).merge(eq(LogicalDatastoreType.OPERATIONAL), any(), any()); + doReturn("Some object").when(writeTx).getIdentifier(); + doReturn(emptyFluentFuture()).when(writeTx).commit(); builder = new NetconfTopologySetup.NetconfTopologySetupBuilder(); builder.setDataBroker(dataBroker); builder.setRpcProviderRegistry(rpcProviderRegistry); builder.setClusterSingletonServiceProvider(clusterSingletonServiceProvider); - builder.setBindingAwareBroker(bindingAwareBroker); builder.setKeepaliveExecutor(keepaliveExecutor); builder.setProcessingExecutor(processingExecutor); - builder.setDomBroker(domBroker); builder.setActorSystem(actorSystem); builder.setEventExecutor(eventExecutor); builder.setNetconfClientDispatcher(clientDispatcher); builder.setTopologyId(TOPOLOGY_ID); } + @SuppressWarnings("unchecked") @Test public void testStopRemoteDeviceConnection() { - final Credentials credentials = new LoginPasswordBuilder().setPassword("admin").setUsername("admin").build(); + final Credentials credentials = new LoginPasswordBuilder() + .setPassword("admin").setUsername("admin").build(); final NetconfNode netconfNode = new NetconfNodeBuilder() .setHost(new Host(new IpAddress(new Ipv4Address("127.0.0.1")))) .setPort(new PortNumber(9999)) @@ -137,15 +153,13 @@ public class RemoteDeviceConnectorImplTest { builder.setNode(node); - final NetconfDeviceCommunicator communicator = mock (NetconfDeviceCommunicator.class); - final RemoteDeviceHandler salFacade = mock(RemoteDeviceHandler.class); - - final TestingRemoteDeviceConnectorImpl remoteDeviceConnection = - new TestingRemoteDeviceConnectorImpl(builder.build(), remoteDeviceId, communicator, salFacade, TIMEOUT); + final NetconfDeviceCommunicator communicator = mock(NetconfDeviceCommunicator.class); + final RemoteDeviceHandler salFacade = mock(RemoteDeviceHandler.class); - final ActorRef masterRef = mock(ActorRef.class); + final TestingRemoteDeviceConnectorImpl remoteDeviceConnection = new TestingRemoteDeviceConnectorImpl( + builder.build(), remoteDeviceId, communicator, deviceActionFactory); - remoteDeviceConnection.startRemoteDeviceConnection(masterRef); + remoteDeviceConnection.startRemoteDeviceConnection(salFacade); remoteDeviceConnection.stopRemoteDeviceConnection(); @@ -154,42 +168,11 @@ public class RemoteDeviceConnectorImplTest { } + @SuppressWarnings("unchecked") @Test - public void testMasterSalFacade() throws UnknownHostException { - final ExecutorService executorService = mock(ExecutorService.class); - doReturn(executorService).when(processingExecutor).getExecutor(); - - final Credentials credentials = new LoginPasswordBuilder().setPassword("admin").setUsername("admin").build(); - final NetconfNode netconfNode = new NetconfNodeBuilder() - .setHost(new Host(new IpAddress(new Ipv4Address("127.0.0.1")))) - .setPort(new PortNumber(9999)) - .setReconnectOnChangedSchema(true) - .setDefaultRequestTimeoutMillis(1000L) - .setBetweenAttemptsTimeoutMillis(100) - .setSchemaless(false) - .setTcpOnly(false) - .setCredentials(credentials) - .build(); - - final Node node = new NodeBuilder().setNodeId(NODE_ID).addAugmentation(NetconfNode.class, netconfNode).build(); - builder.setSchemaResourceDTO(NetconfTopologyUtils.setupSchemaCacheDTO(node)); - final RemoteDeviceConnectorImpl remoteDeviceConnection = - new RemoteDeviceConnectorImpl(builder.build(), remoteDeviceId, TIMEOUT); - - final ActorRef masterRef = mock(ActorRef.class); - - final NetconfConnectorDTO connectorDTO = - remoteDeviceConnection.createDeviceCommunicator(NODE_ID, netconfNode, masterRef); - - assertTrue(connectorDTO.getFacade() instanceof MasterSalFacade); - } - - @Test - public void testKeapAliveFacade() throws UnknownHostException { - final ExecutorService executorService = mock(ExecutorService.class); - doReturn(executorService).when(processingExecutor).getExecutor(); - - final Credentials credentials = new LoginPasswordBuilder().setPassword("admin").setUsername("admin").build(); + public void testKeapAliveFacade() { + final Credentials credentials = new LoginPasswordBuilder() + .setPassword("admin").setUsername("admin").build(); final NetconfNode netconfNode = new NetconfNodeBuilder() .setHost(new Host(new IpAddress(new Ipv4Address("127.0.0.1")))) .setPort(new PortNumber(9999)) @@ -202,24 +185,22 @@ public class RemoteDeviceConnectorImplTest { .setKeepaliveDelay(1L) .build(); - final RemoteDeviceId remoteDeviceId = new RemoteDeviceId(TOPOLOGY_ID, - new InetSocketAddress(InetAddress.getByName("127.0.0.1"), 9999)); final Node node = new NodeBuilder().setNodeId(NODE_ID).addAugmentation(NetconfNode.class, netconfNode).build(); builder.setSchemaResourceDTO(NetconfTopologyUtils.setupSchemaCacheDTO(node)); final RemoteDeviceConnectorImpl remoteDeviceConnection = - new RemoteDeviceConnectorImpl(builder.build(), remoteDeviceId, TIMEOUT); + new RemoteDeviceConnectorImpl(builder.build(), remoteDeviceId, deviceActionFactory); - final ActorRef masterRef = mock(ActorRef.class); + final RemoteDeviceHandler salFacade = mock(RemoteDeviceHandler.class); final NetconfConnectorDTO connectorDTO = - remoteDeviceConnection.createDeviceCommunicator(NODE_ID, netconfNode, masterRef); + remoteDeviceConnection.createDeviceCommunicator(NODE_ID, netconfNode, salFacade); assertTrue(connectorDTO.getFacade() instanceof KeepaliveSalFacade); } @Test - public void testGetClientConfig() throws UnknownHostException { + public void testGetClientConfig() { final NetconfClientSessionListener listener = mock(NetconfClientSessionListener.class); final Host host = new Host(new IpAddress(new Ipv4Address("127.0.0.1"))); final PortNumber portNumber = new PortNumber(9999); @@ -235,13 +216,14 @@ public class RemoteDeviceConnectorImplTest { .build(); final RemoteDeviceConnectorImpl remoteDeviceConnection = - new RemoteDeviceConnectorImpl(builder.build(), remoteDeviceId, TIMEOUT); + new RemoteDeviceConnectorImpl(builder.build(), remoteDeviceId, deviceActionFactory); final NetconfReconnectingClientConfiguration defaultClientConfig = remoteDeviceConnection.getClientConfig(listener, testingNode); assertEquals(defaultClientConfig.getConnectionTimeoutMillis().longValue(), 1000L); - assertEquals(defaultClientConfig.getAddress(), new InetSocketAddress(InetAddress.getByName("127.0.0.1"), 9999)); + assertEquals(defaultClientConfig.getAddress(), new InetSocketAddress(InetAddresses.forString("127.0.0.1"), + 9999)); assertSame(defaultClientConfig.getSessionListener(), listener); assertEquals(defaultClientConfig.getAuthHandler().getUsername(), "testuser"); assertEquals(defaultClientConfig.getProtocol(), NetconfClientConfiguration.NetconfClientProtocol.TCP);