Introduce NetconfTimer
[netconf.git] / apps / netconf-topology-singleton / src / test / java / org / opendaylight / netconf / topology / singleton / impl / NetconfTopologyManagerTest.java
index 335851d027a8f0d1e6fe1b802f4f3c970149733d..64a36ce299df314fea66ed09fcd1cd23ded1669b 100644 (file)
@@ -31,9 +31,9 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Function;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -57,15 +57,17 @@ import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
 import org.opendaylight.netconf.client.NetconfClientFactory;
 import org.opendaylight.netconf.client.mdsal.api.DeviceActionFactory;
 import org.opendaylight.netconf.client.mdsal.impl.DefaultSchemaResourceManager;
+import org.opendaylight.netconf.common.NetconfTimer;
 import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologySetup;
 import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologyUtils;
 import org.opendaylight.netconf.topology.spi.NetconfClientConfigurationBuilderFactory;
+import org.opendaylight.netconf.topology.spi.NetconfTopologySchemaAssembler;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
@@ -80,7 +82,7 @@ import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory;
 
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class NetconfTopologyManagerTest extends AbstractBaseSchemasTest {
-    private static final Uint16 ACTOR_RESPONSE_WAIT_TIME = Uint16.valueOf(10);
+    private static final Uint16 ACTOR_RESPONSE_WAIT_TIME = Uint16.TEN;
     private static final String TOPOLOGY_ID = "topologyID";
 
     private NetconfTopologyManager netconfTopologyManager;
@@ -91,7 +93,26 @@ public class NetconfTopologyManagerTest extends AbstractBaseSchemasTest {
     private ListenerRegistration<?> mockListenerReg;
     @Mock
     private Registration mockRpcReg;
+    @Mock
+    private NetconfTimer timer;
+    @Mock
+    private ExecutorService processingService;
+    @Mock
+    private ActorSystem actorSystem;
+    @Mock
+    private NetconfClientFactory clientFactory;
+    @Mock
+    private DOMMountPointService mountPointService;
+    @Mock
+    private AAAEncryptionService encryptionService;
+    @Mock
+    private DeviceActionFactory actionFactory;
+    @Mock
+    private RpcProviderService rpcProviderService;
+    @Mock
+    private NetconfClientConfigurationBuilderFactory builderFactory;
 
+    private NetconfTopologySchemaAssembler schemaAssembler;
     private DataBroker dataBroker;
 
     private final Map<InstanceIdentifier<Node>, Function<NetconfTopologySetup, NetconfTopologyContext>>
@@ -99,6 +120,8 @@ public class NetconfTopologyManagerTest extends AbstractBaseSchemasTest {
 
     @Before
     public void setUp() throws Exception {
+        schemaAssembler = new NetconfTopologySchemaAssembler(1, 1, 0, TimeUnit.SECONDS);
+
         AbstractDataBrokerTest dataBrokerTest = new AbstractDataBrokerTest() {
             @Override
             protected Set<YangModuleInfo> getModuleInfos() throws Exception {
@@ -109,26 +132,14 @@ public class NetconfTopologyManagerTest extends AbstractBaseSchemasTest {
         dataBrokerTest.setup();
         dataBroker = spy(dataBrokerTest.getDataBroker());
 
-        final ScheduledExecutorService keepaliveExecutor = mock(ScheduledExecutorService.class);
-        final ExecutorService processingService = mock(ExecutorService.class);
-        final ActorSystem actorSystem = mock(ActorSystem.class);
-        final NetconfClientFactory clientFactory = mock(NetconfClientFactory.class);
-        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 NetconfClientConfigurationBuilderFactory builderFactory =
-            mock(NetconfClientConfigurationBuilderFactory.class);
-
         doNothing().when(mockListenerReg).close();
         doReturn(mockListenerReg).when(dataBroker).registerDataTreeChangeListener(any(), any());
         doReturn(mockRpcReg).when(rpcProviderService).registerRpcImplementations(any());
 
         netconfTopologyManager = new NetconfTopologyManager(BASE_SCHEMAS, dataBroker, clusterSingletonServiceProvider,
-                keepaliveExecutor, processingService, actorSystem, clientFactory, mountPointService, encryptionService,
-                rpcProviderService, deviceActionFactory,
-                new DefaultSchemaResourceManager(new DefaultYangParserFactory()), builderFactory,
-                TOPOLOGY_ID, Uint16.ZERO) {
+                timer, schemaAssembler, actorSystem, clientFactory, mountPointService, encryptionService,
+                rpcProviderService, actionFactory, new DefaultSchemaResourceManager(new DefaultYangParserFactory()),
+                builderFactory, TOPOLOGY_ID, Uint16.ZERO) {
             @Override
             protected NetconfTopologyContext newNetconfTopologyContext(final NetconfTopologySetup setup,
                 final ServiceGroupIdentifier serviceGroupIdent, final Timeout actorResponseWaitTime,
@@ -140,6 +151,11 @@ public class NetconfTopologyManagerTest extends AbstractBaseSchemasTest {
         };
     }
 
+    @After
+    public void after() {
+        schemaAssembler.close();
+    }
+
     @Test
     public void testRegisterDataTreeChangeListener() throws Exception {
         await().atMost(5, TimeUnit.SECONDS).until(() -> {