+ @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);
+
+ 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));
+ }
+
+ @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);
+
+ 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));
+ }
+
+ @Test
+ public void testGetDataWithoutFields() {
+ assertThrows(ExecutionException.class, () -> baseOps.getData(callback,
+ Optional.of(YangInstanceIdentifier.empty()), Collections.emptyList()).get());
+ }
+
+ @Test
+ public void getConfigRunningDataWithoutFields() {
+ assertThrows(ExecutionException.class, () -> baseOps.getConfigRunningData(callback,
+ Optional.of(YangInstanceIdentifier.empty()), Collections.emptyList()).get());
+ }
+
+ @Test
+ public void testGetWithFieldsAndEmptyParentPath() throws ExecutionException, InterruptedException {
+ final YangInstanceIdentifier leafAField = YangInstanceIdentifier.create(CONTAINER_C_NID, LEAF_A_NID);
+ final YangInstanceIdentifier leafXField = YangInstanceIdentifier.create(
+ CONTAINER_C_NID, CONTAINER_D_NID, LEAF_X_NID);
+ final YangInstanceIdentifier leafZField = YangInstanceIdentifier.create(CONTAINER_E_NID, LEAF_Z_NID);
+
+ baseOps.getData(callback, Optional.of(YangInstanceIdentifier.empty()),
+ List.of(leafAField, leafXField, leafZField)).get();
+ verify(listener).sendRequest(msg("/netconfMessages/get-with-multiple-subtrees.xml"),
+ eq(NetconfMessageTransformUtil.NETCONF_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(
+ CONTAINER_C_NID, CONTAINER_D_NID, LEAF_X_NID);
+ final YangInstanceIdentifier leafZField = YangInstanceIdentifier.create(CONTAINER_E_NID, LEAF_Z_NID);
+
+ baseOps.getConfigRunningData(callback, Optional.of(YangInstanceIdentifier.empty()),
+ List.of(leafAField, leafXField, leafZField)).get();
+ verify(listener).sendRequest(msg("/netconfMessages/get-config-with-multiple-subtrees.xml"),
+ eq(NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME));
+ }
+
+ @Test
+ public void testGetWithRootFieldsAndEmptyParentPath() throws ExecutionException, InterruptedException {
+ final YangInstanceIdentifier contCField = YangInstanceIdentifier.create(CONTAINER_C_NID);
+ final YangInstanceIdentifier contDField = YangInstanceIdentifier.create(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));
+ }
+