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;
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;
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;
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.DefaultYangParserFactory;
-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";
@Before
public void setUp() throws Exception {
- initMocks(this);
-
AbstractDataBrokerTest dataBrokerTest = new AbstractDataBrokerTest() {
@Override
protected Set<YangModuleInfo> getModuleInfos() throws Exception {
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(Uint16.ZERO).build();
- netconfTopologyManager = new NetconfTopologyManager(dataBroker, rpcProviderRegistry, actionProviderRegistry,
- clusterSingletonServiceProvider, keepaliveExecutor, processingThreadPool,
+ netconfTopologyManager = new NetconfTopologyManager(BASE_SCHEMAS, dataBroker, rpcProviderRegistry,
+ actionProviderRegistry, clusterSingletonServiceProvider, keepaliveExecutor, processingThreadPool,
actorSystemProvider, eventExecutor, clientDispatcher, TOPOLOGY_ID, config,
- mountPointService, encryptionService, deviceActionFactory, new DefaultSchemaResourceManager()) {
+ mountPointService, encryptionService, rpcProviderService, deviceActionFactory,
+ new DefaultSchemaResourceManager(new DefaultYangParserFactory())) {
@Override
protected NetconfTopologyContext newNetconfTopologyContext(final NetconfTopologySetup setup,
final ServiceGroupIdentifier serviceGroupIdent, final Timeout actorResponseWaitTime,
.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();
.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();
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());
// 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,
.when(clusterSingletonServiceProvider).registerClusterSingletonService(newMockContext1);
doReturn(WRITE).when(dataObjectModification1).getModificationType();
- doReturn(null).when(dataObjectModification1).getDataBefore();
doReturn(node1).when(dataObjectModification1).getDataAfter();
mockContextMap.put(nodeInstanceId1, setup -> {
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();