Integrate NetconfTopologyRPCProvider
[netconf.git] / netconf / netconf-topology-singleton / src / test / java / org / opendaylight / netconf / topology / singleton / impl / NetconfTopologyManagerTest.java
index 3f2921f7c02d2398cdd3b72e6beadb2b6f572838..a4a013f0d760a2234ff2be2f1b67747a716c6e2e 100644 (file)
@@ -19,7 +19,6 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.MockitoAnnotations.initMocks;
 import static org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType.DELETE;
 import static org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType.SUBTREE_MODIFIED;
 import static org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType.WRITE;
@@ -38,8 +37,10 @@ import java.util.concurrent.TimeUnit;
 import java.util.function.Function;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.aaa.encrypt.AAAEncryptionService;
 import org.opendaylight.controller.cluster.ActorSystemProvider;
 import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
@@ -49,6 +50,7 @@ import org.opendaylight.mdsal.binding.api.DataObjectModification;
 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 import org.opendaylight.mdsal.binding.api.DataTreeModification;
 import org.opendaylight.mdsal.binding.api.ReadTransaction;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractDataBrokerTest;
 import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
@@ -60,6 +62,7 @@ import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegist
 import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
 import org.opendaylight.netconf.client.NetconfClientDispatcher;
 import org.opendaylight.netconf.sal.connect.api.DeviceActionFactory;
+import org.opendaylight.netconf.sal.connect.impl.DefaultSchemaResourceManager;
 import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologySetup;
 import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologyUtils;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
@@ -80,8 +83,10 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
 import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.parser.impl.YangParserFactoryImpl;
 
-public class NetconfTopologyManagerTest {
+@RunWith(MockitoJUnitRunner.StrictStubs.class)
+public class NetconfTopologyManagerTest extends AbstractBaseSchemasTest {
     private static final Uint16 ACTOR_RESPONSE_WAIT_TIME = Uint16.valueOf(10);
     private static final String TOPOLOGY_ID = "topologyID";
 
@@ -100,8 +105,6 @@ public class NetconfTopologyManagerTest {
 
     @Before
     public void setUp() throws Exception {
-        initMocks(this);
-
         AbstractDataBrokerTest dataBrokerTest = new AbstractDataBrokerTest() {
             @Override
             protected Set<YangModuleInfo> getModuleInfos() throws Exception {
@@ -125,12 +128,14 @@ public class NetconfTopologyManagerTest {
         final DOMMountPointService mountPointService = mock(DOMMountPointService.class);
         final AAAEncryptionService encryptionService = mock(AAAEncryptionService.class);
         final DeviceActionFactory deviceActionFactory = mock(DeviceActionFactory.class);
+        final RpcProviderService rpcProviderService = mock(RpcProviderService.class);
 
-        final Config config = new ConfigBuilder().setWriteTransactionIdleTimeout(0).build();
-        netconfTopologyManager = new NetconfTopologyManager(dataBroker, rpcProviderRegistry, actionProviderRegistry,
-                clusterSingletonServiceProvider, keepaliveExecutor, processingThreadPool,
+        final Config config = new ConfigBuilder().setWriteTransactionIdleTimeout(Uint16.ZERO).build();
+        netconfTopologyManager = new NetconfTopologyManager(BASE_SCHEMAS, dataBroker, rpcProviderRegistry,
+                actionProviderRegistry, clusterSingletonServiceProvider, keepaliveExecutor, processingThreadPool,
                 actorSystemProvider, eventExecutor, clientDispatcher, TOPOLOGY_ID, config,
-                mountPointService, encryptionService, deviceActionFactory) {
+                mountPointService, encryptionService, rpcProviderService, deviceActionFactory,
+                new DefaultSchemaResourceManager(new YangParserFactoryImpl())) {
             @Override
             protected NetconfTopologyContext newNetconfTopologyContext(final NetconfTopologySetup setup,
                 final ServiceGroupIdentifier serviceGroupIdent, final Timeout actorResponseWaitTime,
@@ -191,8 +196,7 @@ public class NetconfTopologyManagerTest {
                 .setPort(new PortNumber(Uint16.valueOf(1111)))
                 .setActorResponseWaitTime(ACTOR_RESPONSE_WAIT_TIME)
                 .build();
-        final Node node1 = new NodeBuilder().setNodeId(nodeId1).addAugmentation(NetconfNode.class,
-                netconfNode1).build();
+        final Node node1 = new NodeBuilder().setNodeId(nodeId1).addAugmentation(netconfNode1).build();
 
         final DataObjectModification<Node> dataObjectModification1 = mock(DataObjectModification.class);
         doReturn(WRITE).when(dataObjectModification1).getModificationType();
@@ -205,8 +209,7 @@ public class NetconfTopologyManagerTest {
                 .setPort(new PortNumber(Uint16.valueOf(2222)))
                 .setActorResponseWaitTime(ACTOR_RESPONSE_WAIT_TIME)
                 .build();
-        final Node node2 = new NodeBuilder().setNodeId(nodeId2).addAugmentation(NetconfNode.class,
-                netconfNode2).build();
+        final Node node2 = new NodeBuilder().setNodeId(nodeId2).addAugmentation(netconfNode2).build();
 
         final DataObjectModification<Node> dataObjectModification2 = mock(DataObjectModification.class);
         doReturn(WRITE).when(dataObjectModification2).getModificationType();
@@ -251,15 +254,12 @@ public class NetconfTopologyManagerTest {
 
         final NetconfNode updatedNetconfNode1 = new NetconfNodeBuilder(netconfNode1)
                 .setPort(new PortNumber(Uint16.valueOf(33333))).build();
-        final Node updatedNode1 = new NodeBuilder().setNodeId(nodeId1).addAugmentation(NetconfNode.class,
-                updatedNetconfNode1).build();
+        final Node updatedNode1 = new NodeBuilder().setNodeId(nodeId1).addAugmentation(updatedNetconfNode1).build();
 
         doReturn(WRITE).when(dataObjectModification1).getModificationType();
-        doReturn(node1).when(dataObjectModification1).getDataBefore();
         doReturn(updatedNode1).when(dataObjectModification1).getDataAfter();
 
         doReturn(SUBTREE_MODIFIED).when(dataObjectModification2).getModificationType();
-        doReturn(node2).when(dataObjectModification2).getDataBefore();
         doReturn(node2).when(dataObjectModification2).getDataAfter();
 
         doNothing().when(mockContext1).refresh(any());
@@ -282,8 +282,6 @@ public class NetconfTopologyManagerTest {
         // Notify of Node 1 deleted.
 
         doReturn(DELETE).when(dataObjectModification1).getModificationType();
-        doReturn(updatedNode1).when(dataObjectModification1).getDataBefore();
-        doReturn(null).when(dataObjectModification1).getDataAfter();
 
         netconfTopologyManager.onDataTreeChanged(Arrays.asList(
                 new CustomTreeModification(DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
@@ -305,7 +303,6 @@ public class NetconfTopologyManagerTest {
                 .when(clusterSingletonServiceProvider).registerClusterSingletonService(newMockContext1);
 
         doReturn(WRITE).when(dataObjectModification1).getModificationType();
-        doReturn(null).when(dataObjectModification1).getDataBefore();
         doReturn(node1).when(dataObjectModification1).getDataAfter();
 
         mockContextMap.put(nodeInstanceId1, setup -> {
@@ -344,12 +341,14 @@ public class NetconfTopologyManagerTest {
         final InstanceIdentifier<Node> nodeInstanceId = NetconfTopologyUtils.createTopologyNodeListPath(
                 new NodeKey(nodeId), TOPOLOGY_ID);
 
-        final NetconfNode netconfNode = new NetconfNodeBuilder()
-                .setHost(new Host(new IpAddress(new Ipv4Address("127.0.0.1"))))
-                .setPort(new PortNumber(Uint16.valueOf(10)))
-                .setActorResponseWaitTime(ACTOR_RESPONSE_WAIT_TIME).build();
-        final Node node = new NodeBuilder().setNodeId(nodeId).addAugmentation(NetconfNode.class,
-                netconfNode).build();
+        final Node node = new NodeBuilder()
+                .setNodeId(nodeId)
+                .addAugmentation(new NetconfNodeBuilder()
+                    .setHost(new Host(new IpAddress(new Ipv4Address("127.0.0.1"))))
+                    .setPort(new PortNumber(Uint16.valueOf(10)))
+                    .setActorResponseWaitTime(ACTOR_RESPONSE_WAIT_TIME)
+                    .build())
+                .build();
 
         final DataObjectModification<Node> dataObjectModification = mock(DataObjectModification.class);
         doReturn(WRITE).when(dataObjectModification).getModificationType();