import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.netconf.api.EffectiveOperation;
-import org.opendaylight.netconf.api.NetconfMessage;
+import org.opendaylight.netconf.api.messages.NetconfMessage;
import org.opendaylight.netconf.api.xml.XmlUtil;
import org.opendaylight.netconf.client.mdsal.AbstractTestModelTest;
import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceCommunicator;
import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceId;
-import org.opendaylight.netconf.common.mdsal.NormalizedDataUtil;
-import org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceRpc;
-import org.opendaylight.yangtools.rfc8528.data.util.EmptyMountPointContext;
+import org.opendaylight.netconf.client.mdsal.spi.NetconfDeviceRpc;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.Commit;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.CopyConfig;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.DiscardChanges;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.EditConfig;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.Get;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.GetConfig;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.Lock;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.Unlock;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.Validate;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.get.config.output.Data;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@Before
public void setUp() throws Exception {
- final InputStream okStream = getClass().getResourceAsStream("/netconfMessages/rpc-reply_ok.xml");
- final InputStream dataStream = getClass().getResourceAsStream("/netconfMessages/rpc-reply_get.xml");
- final NetconfMessage ok = new NetconfMessage(XmlUtil.readXmlToDocument(okStream));
- final NetconfMessage data = new NetconfMessage(XmlUtil.readXmlToDocument(dataStream));
- when(listener.sendRequest(any(), eq(NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME)))
- .thenReturn(RpcResultBuilder.success(data).buildFuture());
- when(listener.sendRequest(any(), eq(NetconfMessageTransformUtil.NETCONF_GET_QNAME)))
- .thenReturn(RpcResultBuilder.success(data).buildFuture());
- when(listener.sendRequest(any(), eq(NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME)))
- .thenReturn(RpcResultBuilder.success(ok).buildFuture());
- when(listener.sendRequest(any(), eq(NetconfMessageTransformUtil.NETCONF_COPY_CONFIG_QNAME)))
- .thenReturn(RpcResultBuilder.success(ok).buildFuture());
- when(listener.sendRequest(any(), eq(NetconfMessageTransformUtil.NETCONF_DISCARD_CHANGES_QNAME)))
- .thenReturn(RpcResultBuilder.success(ok).buildFuture());
- when(listener.sendRequest(any(), eq(NetconfMessageTransformUtil.NETCONF_VALIDATE_QNAME)))
- .thenReturn(RpcResultBuilder.success(ok).buildFuture());
- when(listener.sendRequest(any(), eq(NetconfMessageTransformUtil.NETCONF_LOCK_QNAME)))
- .thenReturn(RpcResultBuilder.success(ok).buildFuture());
- when(listener.sendRequest(any(), eq(NetconfMessageTransformUtil.NETCONF_UNLOCK_QNAME)))
- .thenReturn(RpcResultBuilder.success(ok).buildFuture());
- when(listener.sendRequest(any(), eq(NetconfMessageTransformUtil.NETCONF_COMMIT_QNAME)))
+ final var okStream = NetconfBaseOpsTest.class.getResourceAsStream("/netconfMessages/rpc-reply_ok.xml");
+ final var dataStream = NetconfBaseOpsTest.class.getResourceAsStream("/netconfMessages/rpc-reply_get.xml");
+ final var ok = new NetconfMessage(XmlUtil.readXmlToDocument(okStream));
+ final var data = new NetconfMessage(XmlUtil.readXmlToDocument(dataStream));
+ when(listener.sendRequest(any(), eq(GetConfig.QNAME))).thenReturn(RpcResultBuilder.success(data).buildFuture());
+ when(listener.sendRequest(any(), eq(Get.QNAME))).thenReturn(RpcResultBuilder.success(data).buildFuture());
+ when(listener.sendRequest(any(), eq(EditConfig.QNAME))).thenReturn(RpcResultBuilder.success(ok).buildFuture());
+ when(listener.sendRequest(any(), eq(CopyConfig.QNAME))).thenReturn(RpcResultBuilder.success(ok).buildFuture());
+ when(listener.sendRequest(any(), eq(DiscardChanges.QNAME)))
.thenReturn(RpcResultBuilder.success(ok).buildFuture());
+ when(listener.sendRequest(any(), eq(Validate.QNAME))).thenReturn(RpcResultBuilder.success(ok).buildFuture());
+ when(listener.sendRequest(any(), eq(Lock.QNAME))).thenReturn(RpcResultBuilder.success(ok).buildFuture());
+ when(listener.sendRequest(any(), eq(Unlock.QNAME))).thenReturn(RpcResultBuilder.success(ok).buildFuture());
+ when(listener.sendRequest(any(), eq(Commit.QNAME))).thenReturn(RpcResultBuilder.success(ok).buildFuture());
final var rpc = new NetconfDeviceRpc(SCHEMA_CONTEXT, listener, new NetconfMessageTransformer(
- new EmptyMountPointContext(SCHEMA_CONTEXT), true, BASE_SCHEMAS.getBaseSchema()));
+ MountPointContext.of(SCHEMA_CONTEXT), true, BASE_SCHEMAS.baseSchema()));
callback = new NetconfRpcFutureCallback("prefix",
new RemoteDeviceId("device-1", InetSocketAddress.createUnresolved("localhost", 17830)));
- baseOps = new NetconfBaseOps(rpc, new EmptyMountPointContext(SCHEMA_CONTEXT));
+ baseOps = new NetconfBaseOps(rpc, MountPointContext.of(SCHEMA_CONTEXT));
}
@Test
public void testLock() throws Exception {
baseOps.lock(callback, NetconfMessageTransformUtil.NETCONF_CANDIDATE_NODEID);
- verifyMessageSent("lock", NetconfMessageTransformUtil.NETCONF_LOCK_QNAME);
+ verifyMessageSent("lock", Lock.QNAME);
}
@Test
public void testLockCandidate() throws Exception {
baseOps.lockCandidate(callback);
- verifyMessageSent("lock", NetconfMessageTransformUtil.NETCONF_LOCK_QNAME);
+ verifyMessageSent("lock", Lock.QNAME);
}
@Test
public void testUnlock() throws Exception {
baseOps.unlock(callback, NetconfMessageTransformUtil.NETCONF_CANDIDATE_NODEID);
- verifyMessageSent("unlock", NetconfMessageTransformUtil.NETCONF_UNLOCK_QNAME);
+ verifyMessageSent("unlock", Unlock.QNAME);
}
@Test
public void testUnlockCandidate() throws Exception {
baseOps.unlockCandidate(callback);
- verifyMessageSent("unlock", NetconfMessageTransformUtil.NETCONF_UNLOCK_QNAME);
+ verifyMessageSent("unlock", Unlock.QNAME);
}
@Test
public void testLockRunning() throws Exception {
baseOps.lockRunning(callback);
- verifyMessageSent("lock-running", NetconfMessageTransformUtil.NETCONF_LOCK_QNAME);
+ verifyMessageSent("lock-running", Lock.QNAME);
}
@Test
public void testUnlockRunning() throws Exception {
baseOps.unlockRunning(callback);
- verifyMessageSent("unlock-running", NetconfMessageTransformUtil.NETCONF_UNLOCK_QNAME);
+ verifyMessageSent("unlock-running", Unlock.QNAME);
}
@Test
public void testDiscardChanges() throws Exception {
baseOps.discardChanges(callback);
- verifyMessageSent("discardChanges", NetconfMessageTransformUtil.NETCONF_DISCARD_CHANGES_QNAME);
+ verifyMessageSent("discardChanges", DiscardChanges.QNAME);
}
@Test
public void testCommit() throws Exception {
baseOps.commit(callback);
- verifyMessageSent("commit", NetconfMessageTransformUtil.NETCONF_COMMIT_QNAME);
+ verifyMessageSent("commit", Commit.QNAME);
}
@Test
public void testValidateCandidate() throws Exception {
baseOps.validateCandidate(callback);
- verifyMessageSent("validate", NetconfMessageTransformUtil.NETCONF_VALIDATE_QNAME);
+ verifyMessageSent("validate", Validate.QNAME);
}
@Test
public void testValidateRunning() throws Exception {
baseOps.validateRunning(callback);
- verifyMessageSent("validate-running", NetconfMessageTransformUtil.NETCONF_VALIDATE_QNAME);
+ verifyMessageSent("validate-running", Validate.QNAME);
}
public void testCopyConfig() throws Exception {
baseOps.copyConfig(callback, NetconfMessageTransformUtil.NETCONF_RUNNING_NODEID,
NetconfMessageTransformUtil.NETCONF_CANDIDATE_NODEID);
- verifyMessageSent("copy-config", NetconfMessageTransformUtil.NETCONF_COPY_CONFIG_QNAME);
+ verifyMessageSent("copy-config", CopyConfig.QNAME);
}
@Test
public void testCopyRunningToCandidate() throws Exception {
baseOps.copyRunningToCandidate(callback);
- verifyMessageSent("copy-config", NetconfMessageTransformUtil.NETCONF_COPY_CONFIG_QNAME);
+ verifyMessageSent("copy-config", CopyConfig.QNAME);
}
@Test
public void testGetConfigRunningData() throws Exception {
- final var dataOpt = baseOps.getConfigRunningData(callback, Optional.of(YangInstanceIdentifier.empty())).get();
+ final var dataOpt = baseOps.getConfigRunningData(callback, Optional.of(YangInstanceIdentifier.of())).get();
assertTrue(dataOpt.isPresent());
- assertEquals(NormalizedDataUtil.NETCONF_DATA_QNAME, dataOpt.orElseThrow().getIdentifier().getNodeType());
+ assertEquals(Data.QNAME, dataOpt.orElseThrow().name().getNodeType());
}
@Test
public void testGetData() throws Exception {
- final var dataOpt = baseOps.getData(callback, Optional.of(YangInstanceIdentifier.empty())).get();
+ final var dataOpt = baseOps.getData(callback, Optional.of(YangInstanceIdentifier.of())).get();
assertTrue(dataOpt.isPresent());
- assertEquals(NormalizedDataUtil.NETCONF_DATA_QNAME, dataOpt.orElseThrow().getIdentifier().getNodeType());
+ assertEquals(Data.QNAME, dataOpt.orElseThrow().name().getNodeType());
}
@Test
public void testGetConfigRunning() throws Exception {
baseOps.getConfigRunning(callback, Optional.empty());
- verifyMessageSent("getConfig", NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME);
+ verifyMessageSent("getConfig", GetConfig.QNAME);
}
@Test
public void testGetConfigCandidate() throws Exception {
baseOps.getConfigCandidate(callback, Optional.empty());
- verifyMessageSent("getConfig_candidate", NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME);
+ verifyMessageSent("getConfig_candidate", GetConfig.QNAME);
}
@Test
public void testGetConfigCandidateWithFilter() throws Exception {
baseOps.getConfigCandidate(callback, Optional.of(YangInstanceIdentifier.of(CONTAINER_C_QNAME)));
- verifyMessageSent("getConfig_candidate-filter", NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME);
+ verifyMessageSent("getConfig_candidate-filter", GetConfig.QNAME);
}
@Test
public void testGet() throws Exception {
baseOps.get(callback, Optional.empty());
- verifyMessageSent("get", NetconfMessageTransformUtil.NETCONF_GET_QNAME);
+ verifyMessageSent("get", Get.QNAME);
}
@Test
.node(CONTAINER_C_QNAME)
.node(LEAF_A_NID)
.build()), true);
- verifyMessageSent("edit-config-test-module", NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME);
+ verifyMessageSent("edit-config-test-module", EditConfig.QNAME);
}
@Test
public void testDeleteContainerNodeCandidate() throws Exception {
baseOps.editConfigCandidate(callback, baseOps.createEditConfigStructure(Optional.empty(),
Optional.of(EffectiveOperation.DELETE), YangInstanceIdentifier.of(CONTAINER_C_QNAME)), true);
- verifyMessageSent("edit-config-delete-container-node-candidate",
- NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME);
+ verifyMessageSent("edit-config-delete-container-node-candidate", EditConfig.QNAME);
}
@Test
baseOps.editConfigCandidate(callback, baseOps.createEditConfigStructure(Optional.empty(),
Optional.of(EffectiveOperation.DELETE),
YangInstanceIdentifier.builder().node(CONTAINER_C_QNAME).node(LEAF_A_NID).build()), true);
- verifyMessageSent("edit-config-delete-leaf-node-candidate",
- NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME);
+ verifyMessageSent("edit-config-delete-leaf-node-candidate", EditConfig.QNAME);
}
@Test
Optional.of(EffectiveOperation.REPLACE),
YangInstanceIdentifier.builder().node(CONTAINER_C_NID).node(LEAF_A_NID).build()),
EffectiveOperation.MERGE, true);
- verifyMessageSent("edit-config-test-module-running", NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME);
+ verifyMessageSent("edit-config-test-module-running", EditConfig.QNAME);
}
@Test
public void testGetWithFields() throws ExecutionException, InterruptedException {
- final YangInstanceIdentifier path = YangInstanceIdentifier.create(CONTAINER_C_NID);
- final YangInstanceIdentifier leafAField = YangInstanceIdentifier.create(LEAF_A_NID);
- final YangInstanceIdentifier leafBField = YangInstanceIdentifier.create(LEAF_B_NID);
+ final YangInstanceIdentifier path = YangInstanceIdentifier.of(CONTAINER_C_NID);
+ final YangInstanceIdentifier leafAField = YangInstanceIdentifier.of(LEAF_A_NID);
+ final YangInstanceIdentifier leafBField = YangInstanceIdentifier.of(LEAF_B_NID);
baseOps.getData(callback, Optional.of(path), List.of(leafAField, leafBField)).get();
- verify(listener).sendRequest(msg("/netconfMessages/get-fields-request.xml"),
- eq(NetconfMessageTransformUtil.NETCONF_GET_QNAME));
+ verify(listener).sendRequest(msg("/netconfMessages/get-fields-request.xml"), eq(Get.QNAME));
}
@Test
public void testGetConfigWithFields() throws ExecutionException, InterruptedException {
- final YangInstanceIdentifier path = YangInstanceIdentifier.create(CONTAINER_C_NID);
- final YangInstanceIdentifier leafAField = YangInstanceIdentifier.create(LEAF_A_NID);
- final YangInstanceIdentifier leafBField = YangInstanceIdentifier.create(LEAF_B_NID);
+ final YangInstanceIdentifier path = YangInstanceIdentifier.of(CONTAINER_C_NID);
+ final YangInstanceIdentifier leafAField = YangInstanceIdentifier.of(LEAF_A_NID);
+ final YangInstanceIdentifier leafBField = YangInstanceIdentifier.of(LEAF_B_NID);
baseOps.getConfigRunningData(callback, Optional.of(path), List.of(leafAField, leafBField)).get();
- verify(listener).sendRequest(msg("/netconfMessages/get-config-fields-request.xml"),
- eq(NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME));
+ verify(listener).sendRequest(msg("/netconfMessages/get-config-fields-request.xml"), eq(GetConfig.QNAME));
}
@Test
public void testGetDataWithoutFields() {
assertThrows(ExecutionException.class, () -> baseOps.getData(callback,
- Optional.of(YangInstanceIdentifier.empty()), List.of()).get());
+ Optional.of(YangInstanceIdentifier.of()), List.of()).get());
}
@Test
public void getConfigRunningDataWithoutFields() {
assertThrows(ExecutionException.class, () -> baseOps.getConfigRunningData(callback,
- Optional.of(YangInstanceIdentifier.empty()), List.of()).get());
+ Optional.of(YangInstanceIdentifier.of()), List.of()).get());
}
@Test
public void testGetWithFieldsAndEmptyParentPath() throws ExecutionException, InterruptedException {
- final YangInstanceIdentifier leafAField = YangInstanceIdentifier.create(CONTAINER_C_NID, LEAF_A_NID);
- final YangInstanceIdentifier leafXField = YangInstanceIdentifier.create(
+ final YangInstanceIdentifier leafAField = YangInstanceIdentifier.of(CONTAINER_C_NID, LEAF_A_NID);
+ final YangInstanceIdentifier leafXField = YangInstanceIdentifier.of(
CONTAINER_C_NID, CONTAINER_D_NID, LEAF_X_NID);
- final YangInstanceIdentifier leafZField = YangInstanceIdentifier.create(CONTAINER_E_NID, LEAF_Z_NID);
+ final YangInstanceIdentifier leafZField = YangInstanceIdentifier.of(CONTAINER_E_NID, LEAF_Z_NID);
- baseOps.getData(callback, Optional.of(YangInstanceIdentifier.empty()),
+ baseOps.getData(callback, Optional.of(YangInstanceIdentifier.of()),
List.of(leafAField, leafXField, leafZField)).get();
- verify(listener).sendRequest(msg("/netconfMessages/get-with-multiple-subtrees.xml"),
- eq(NetconfMessageTransformUtil.NETCONF_GET_QNAME));
+ verify(listener).sendRequest(msg("/netconfMessages/get-with-multiple-subtrees.xml"), eq(Get.QNAME));
}
@Test
public void testGetConfigWithFieldsAndEmptyParentPath() throws ExecutionException, InterruptedException {
- final YangInstanceIdentifier leafAField = YangInstanceIdentifier.create(CONTAINER_C_NID, LEAF_A_NID);
- final YangInstanceIdentifier leafXField = YangInstanceIdentifier.create(
+ final YangInstanceIdentifier leafAField = YangInstanceIdentifier.of(CONTAINER_C_NID, LEAF_A_NID);
+ final YangInstanceIdentifier leafXField = YangInstanceIdentifier.of(
CONTAINER_C_NID, CONTAINER_D_NID, LEAF_X_NID);
- final YangInstanceIdentifier leafZField = YangInstanceIdentifier.create(CONTAINER_E_NID, LEAF_Z_NID);
+ final YangInstanceIdentifier leafZField = YangInstanceIdentifier.of(CONTAINER_E_NID, LEAF_Z_NID);
- baseOps.getConfigRunningData(callback, Optional.of(YangInstanceIdentifier.empty()),
+ baseOps.getConfigRunningData(callback, Optional.of(YangInstanceIdentifier.of()),
List.of(leafAField, leafXField, leafZField)).get();
verify(listener).sendRequest(msg("/netconfMessages/get-config-with-multiple-subtrees.xml"),
- eq(NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME));
+ eq(GetConfig.QNAME));
}
@Test
public void testGetWithRootFieldsAndEmptyParentPath() throws ExecutionException, InterruptedException {
- final YangInstanceIdentifier contCField = YangInstanceIdentifier.create(CONTAINER_C_NID);
- final YangInstanceIdentifier contDField = YangInstanceIdentifier.create(CONTAINER_E_NID);
+ final YangInstanceIdentifier contCField = YangInstanceIdentifier.of(CONTAINER_C_NID);
+ final YangInstanceIdentifier contDField = YangInstanceIdentifier.of(CONTAINER_E_NID);
- baseOps.getData(callback, Optional.of(YangInstanceIdentifier.empty()), List.of(contCField, contDField)).get();
- verify(listener).sendRequest(msg("/netconfMessages/get-with-multiple-root-subtrees.xml"),
- eq(NetconfMessageTransformUtil.NETCONF_GET_QNAME));
+ baseOps.getData(callback, Optional.of(YangInstanceIdentifier.of()), List.of(contCField, contDField)).get();
+ verify(listener).sendRequest(msg("/netconfMessages/get-with-multiple-root-subtrees.xml"), eq(Get.QNAME));
}
private void verifyMessageSent(final String fileName, final QName name) {