From: Robert Varga Date: Sun, 1 Oct 2023 11:38:59 +0000 (+0200) Subject: Clean up NetconfMessageTransformerTest X-Git-Tag: v7.0.0~496 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=36b3e3f26df1caaf7963f21e1ea815e0fd01473b;p=netconf.git Clean up NetconfMessageTransformerTest Improve assertions, use local variable type inference and text blocks. Change-Id: I212f3a3554978b4dd785eccdf8591f49fd4021fe Signed-off-by: Robert Varga --- diff --git a/plugins/netconf-client-mdsal/src/test/java/org/opendaylight/netconf/client/mdsal/impl/NetconfMessageTransformerTest.java b/plugins/netconf-client-mdsal/src/test/java/org/opendaylight/netconf/client/mdsal/impl/NetconfMessageTransformerTest.java index 421531f0f5..3a62b72166 100644 --- a/plugins/netconf-client-mdsal/src/test/java/org/opendaylight/netconf/client/mdsal/impl/NetconfMessageTransformerTest.java +++ b/plugins/netconf-client-mdsal/src/test/java/org/opendaylight/netconf/client/mdsal/impl/NetconfMessageTransformerTest.java @@ -19,8 +19,11 @@ import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransform import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_CANDIDATE_NODEID; import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_COMMIT_QNAME; import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_DISCARD_CHANGES_QNAME; +import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_NODEID; import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME; +import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_GET_CONFIG_NODEID; import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME; +import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_GET_NODEID; import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_GET_QNAME; import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_LOCK_QNAME; import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_RUNNING_NODEID; @@ -34,20 +37,16 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.Set; -import javax.xml.transform.dom.DOMSource; import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.ElementNameAndAttributeQualifier; import org.custommonkey.xmlunit.XMLUnit; -import org.hamcrest.CoreMatchers; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.opendaylight.mdsal.binding.runtime.spi.BindingRuntimeHelpers; -import org.opendaylight.mdsal.dom.api.DOMActionResult; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.netconf.api.messages.NetconfMessage; @@ -76,11 +75,8 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; -import org.opendaylight.yangtools.yang.data.api.schema.AnyxmlNode; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.DOMSourceAnyxmlNode; -import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; -import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -90,6 +86,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; +import org.w3c.dom.Element; import org.w3c.dom.Node; import org.xml.sax.SAXException; @@ -198,23 +195,30 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { @Test public void testLockRequestBaseSchemaNotPresent() throws Exception { - final NetconfMessageTransformer transformer = getTransformer(PARTIAL_SCHEMA); - final NetconfMessage netconfMessage = transformer.toRpcRequest(NETCONF_LOCK_QNAME, + final var transformer = getTransformer(PARTIAL_SCHEMA); + final var netconfMessage = transformer.toRpcRequest(NETCONF_LOCK_QNAME, NetconfBaseOps.getLockContent(NETCONF_CANDIDATE_NODEID)); - - assertThat(XmlUtil.toString(netconfMessage.getDocument()), CoreMatchers.containsString(" + + + + + + + """, XmlUtil.toString(netconfMessage.getDocument())); } @Test public void testCreateSubscriberNotificationSchemaNotPresent() throws Exception { - final NetconfMessageTransformer transformer = new NetconfMessageTransformer(MountPointContext.of(SCHEMA), true, + final var transformer = new NetconfMessageTransformer(MountPointContext.of(SCHEMA), true, BASE_SCHEMAS.getBaseSchemaWithNotifications()); - NetconfMessage netconfMessage = transformer.toRpcRequest(CREATE_SUBSCRIPTION_RPC_QNAME, - CREATE_SUBSCRIPTION_RPC_CONTENT); - String documentString = XmlUtil.toString(netconfMessage.getDocument()); - assertThat(documentString, CoreMatchers.containsString(" + + + """, XmlUtil.toString(netconfMessage.getDocument())); } @Test @@ -231,7 +235,7 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { public void testRpcEmptyBodyWithOutputDefinedSchemaResult() throws Exception { final String result = ""; - DOMRpcResult domRpcResult = actionNetconfMessageTransformer.toRpcResult( + final var domRpcResult = actionNetconfMessageTransformer.toRpcResult( RpcResultBuilder.success(new NetconfMessage(XmlUtil.readXmlToDocument(result))).build(), RPC_WITH_OUTPUT_QNAME); assertNotNull(domRpcResult); @@ -241,7 +245,7 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { public void testRpcEmptyBodyWithoutOutputDefinedSchemaResult() throws Exception { final String result = ""; - DOMRpcResult domRpcResult = actionNetconfMessageTransformer.toRpcResult( + final var domRpcResult = actionNetconfMessageTransformer.toRpcResult( RpcResultBuilder.success(new NetconfMessage(XmlUtil.readXmlToDocument(result))).build(), RPC_WITHOUT_OUTPUT_QNAME); assertNotNull(domRpcResult); @@ -249,69 +253,69 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { @Test public void testDiscardChangesRequest() throws Exception { - final NetconfMessage netconfMessage = - netconfMessageTransformer.toRpcRequest(NETCONF_DISCARD_CHANGES_QNAME, null); - assertThat(XmlUtil.toString(netconfMessage.getDocument()), CoreMatchers.containsString(" + + + """, XmlUtil.toString(netconfMessage.getDocument())); } @Test public void testGetSchemaRequest() throws Exception { - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(GET_SCHEMA_QNAME, + final var netconfMessage = netconfMessageTransformer.toRpcRequest(GET_SCHEMA_QNAME, MonitoringSchemaSourceProvider.createGetSchemaRequest("module", Optional.of("2012-12-12"))); - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "yang\n" - + "module\n" - + "2012-12-12\n" - + "\n" - + ""); + assertSimilarXml(netconfMessage, """ + + + yang + module + 2012-12-12 + + """); } @Test public void testGetSchemaResponse() throws Exception { - final NetconfMessageTransformer transformer = getTransformer(SCHEMA); - final NetconfMessage response = new NetconfMessage(XmlUtil.readXmlToDocument( - "\n" - + "\n" - + "\n" - + "Random YANG SCHEMA\n" - + "\n" - + "\n" - + "" - )); - final DOMRpcResult compositeNodeRpcResult = transformer.toRpcResult(RpcResultBuilder.success(response).build(), + final var transformer = getTransformer(SCHEMA); + final var response = new NetconfMessage(XmlUtil.readXmlToDocument(""" + + + Random YANG SCHEMA + + """)); + final var compositeNodeRpcResult = transformer.toRpcResult(RpcResultBuilder.success(response).build(), GET_SCHEMA_QNAME); assertTrue(compositeNodeRpcResult.errors().isEmpty()); assertNotNull(compositeNodeRpcResult.value()); - final DOMSource schemaContent = ((DOMSourceAnyxmlNode) compositeNodeRpcResult.value() + final var schemaContent = ((DOMSourceAnyxmlNode) compositeNodeRpcResult.value() .body().iterator().next()).body(); - assertThat(schemaContent.getNode().getTextContent(), - CoreMatchers.containsString("Random YANG SCHEMA")); + assertEquals(""" + + Random YANG SCHEMA + + """, XmlUtil.toString((Element) schemaContent.getNode())); } @Test public void testGetConfigResponse() throws Exception { - final NetconfMessage response = new NetconfMessage(XmlUtil.readXmlToDocument("\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "module\n" - + "2012-12-12\n" - + "x:yang\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "")); - - final NetconfMessageTransformer transformer = getTransformer(SCHEMA); - final DOMRpcResult compositeNodeRpcResult = transformer.toRpcResult(RpcResultBuilder.success(response).build(), + final var response = new NetconfMessage(XmlUtil.readXmlToDocument(""" + + + + + + module + 2012-12-12 + x:yang + + + + + """)); + + final var transformer = getTransformer(SCHEMA); + final var compositeNodeRpcResult = transformer.toRpcResult(RpcResultBuilder.success(response).build(), NETCONF_GET_CONFIG_QNAME); assertTrue(compositeNodeRpcResult.errors().isEmpty()); assertNotNull(compositeNodeRpcResult.value()); @@ -319,24 +323,23 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { final var values = MonitoringSchemaSourceProvider.createGetSchemaRequest( "module", Optional.of("2012-12-12")).body(); - final Map keys = new HashMap<>(); - for (final DataContainerChild value : values) { + final var keys = new HashMap(); + for (var value : values) { keys.put(value.name().getNodeType(), value.body()); } - final NodeIdentifierWithPredicates identifierWithPredicates = - NodeIdentifierWithPredicates.of(Schema.QNAME, keys); - final MapEntryNode schemaNode = - Builders.mapEntryBuilder().withNodeIdentifier(identifierWithPredicates).withValue(values).build(); + final var schemaNode = Builders.mapEntryBuilder() + .withNodeIdentifier(NodeIdentifierWithPredicates.of(Schema.QNAME, keys)) + .withValue(values) + .build(); - final DOMSourceAnyxmlNode data = (DOMSourceAnyxmlNode) compositeNodeRpcResult.value() - .findChildByArg(toId(NETCONF_DATA_QNAME)).orElseThrow(); + final var data = (DOMSourceAnyxmlNode) compositeNodeRpcResult.value().getChildByArg(toId(NETCONF_DATA_QNAME)); - var nodeResult = NormalizedDataUtil.transformDOMSourceToNormalizedNode(SCHEMA, data.body()); - ContainerNode result = (ContainerNode) nodeResult.getResult().data(); - final ContainerNode state = (ContainerNode) result.getChildByArg(toId(NetconfState.QNAME)); - final ContainerNode schemas = (ContainerNode) state.getChildByArg(toId(Schemas.QNAME)); - final MapNode schemaParent = (MapNode) schemas.getChildByArg(toId(Schema.QNAME)); + final var nodeResult = NormalizedDataUtil.transformDOMSourceToNormalizedNode(SCHEMA, data.body()); + final var result = (ContainerNode) nodeResult.getResult().data(); + final var state = (ContainerNode) result.getChildByArg(toId(NetconfState.QNAME)); + final var schemas = (ContainerNode) state.getChildByArg(toId(Schemas.QNAME)); + final var schemaParent = (MapNode) schemas.getChildByArg(toId(Schema.QNAME)); assertEquals(1, schemaParent.body().size()); assertEquals(schemaNode, schemaParent.body().iterator().next()); @@ -344,56 +347,58 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { @Test public void testGetConfigLeafRequest() throws Exception { - final AnyxmlNode filter = toFilterStructure( + final var filter = toFilterStructure( YangInstanceIdentifier.of(toId(NetconfState.QNAME), toId(Schemas.QNAME), toId(Schema.QNAME), NodeIdentifierWithPredicates.of(Schema.QNAME), toId(QName.create(Schemas.QNAME, "version"))), SCHEMA); - final ContainerNode source = NetconfBaseOps.getSourceNode(NETCONF_RUNNING_NODEID); - - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_CONFIG_QNAME, - NetconfMessageTransformUtil.wrap(NETCONF_GET_CONFIG_QNAME, source, filter)); - - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + ""); + final var source = NetconfBaseOps.getSourceNode(NETCONF_RUNNING_NODEID); + + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_CONFIG_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_CONFIG_NODEID, source, filter)); + + assertSimilarXml(netconfMessage, """ + + + + + + + + + + + + + + + + """); } @Test public void testGetConfigRequest() throws Exception { - final AnyxmlNode filter = toFilterStructure( + final var filter = toFilterStructure( YangInstanceIdentifier.of(toId(NetconfState.QNAME), toId(Schemas.QNAME)), SCHEMA); - final ContainerNode source = NetconfBaseOps.getSourceNode(NETCONF_RUNNING_NODEID); - - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_CONFIG_QNAME, - NetconfMessageTransformUtil.wrap(NETCONF_GET_CONFIG_QNAME, source, filter)); - - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "" - + "\n" - + "\n" - + "\n" - + "\n" - + "" - + ""); + final var source = NetconfBaseOps.getSourceNode(NETCONF_RUNNING_NODEID); + + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_CONFIG_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_CONFIG_NODEID, source, filter)); + + assertSimilarXml(netconfMessage, """ + + + + + + + + + + + + """); } @Test @@ -401,47 +406,47 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { final var values = MonitoringSchemaSourceProvider.createGetSchemaRequest( "module", Optional.of("2012-12-12")).body(); - final Map keys = new HashMap<>(); - for (final DataContainerChild value : values) { + final var keys = new HashMap(); + for (var value : values) { keys.put(value.name().getNodeType(), value.body()); } - final NodeIdentifierWithPredicates identifierWithPredicates = - NodeIdentifierWithPredicates.of(Schema.QNAME, keys); - final MapEntryNode schemaNode = - Builders.mapEntryBuilder().withNodeIdentifier(identifierWithPredicates).withValue(values).build(); + final var schemaNode = Builders.mapEntryBuilder() + .withNodeIdentifier(NodeIdentifierWithPredicates.of(Schema.QNAME, keys)) + .withValue(values) + .build(); - final YangInstanceIdentifier id = YangInstanceIdentifier.builder() + final var id = YangInstanceIdentifier.builder() .node(NetconfState.QNAME).node(Schemas.QNAME).node(Schema.QNAME) .nodeWithKey(Schema.QNAME, keys).build(); - final DataContainerChild editConfigStructure = + final var editConfigStructure = createEditConfigStructure(BASE_SCHEMAS.getBaseSchemaWithNotifications().getEffectiveModelContext(), id, Optional.empty(), Optional.ofNullable(schemaNode)); - final DataContainerChild target = NetconfBaseOps.getTargetNode(NETCONF_CANDIDATE_NODEID); - - final ContainerNode wrap = - NetconfMessageTransformUtil.wrap(NETCONF_EDIT_CONFIG_QNAME, editConfigStructure, target); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_EDIT_CONFIG_QNAME, wrap); - - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "module\n" - + "2012-12-12\n" - + "yang\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + ""); + final var target = NetconfBaseOps.getTargetNode(NETCONF_CANDIDATE_NODEID); + + final var wrap = NetconfMessageTransformUtil.wrap(NETCONF_EDIT_CONFIG_NODEID, editConfigStructure, target); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_EDIT_CONFIG_QNAME, wrap); + + assertSimilarXml(netconfMessage, """ + + + + + + + + + + module + 2012-12-12 + yang + + + + + + """); } private static void assertSimilarXml(final NetconfMessage netconfMessage, final String xmlContent) @@ -453,72 +458,72 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { @Test public void testGetRequest() throws Exception { - - final QName capability = QName.create(Capabilities.QNAME, "capability"); - final DataContainerChild filter = toFilterStructure( + final var capability = QName.create(Capabilities.QNAME, "capability"); + final var filter = toFilterStructure( YangInstanceIdentifier.of(toId(NetconfState.QNAME), toId(Capabilities.QNAME), toId(capability), new NodeWithValue<>(capability, "a:b:c")), SCHEMA); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, - NetconfMessageTransformUtil.wrap(NETCONF_GET_QNAME, filter)); - - assertSimilarXml(netconfMessage, "" - + "\n" - + "\n" - + "\n" - + "\n" - + "a:b:c\n" - + "\n" - + "" - + "\n" - + "" - + ""); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_NODEID, filter)); + + assertSimilarXml(netconfMessage, """ + + + + + + a:b:c + + + + + """); } @Test public void testGetLeafList() throws IOException, SAXException { - final YangInstanceIdentifier path = YangInstanceIdentifier.of( - NetconfState.QNAME, - Capabilities.QNAME, - QName.create(Capabilities.QNAME, "capability")); - final DataContainerChild filter = toFilterStructure(path, SCHEMA); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, - NetconfMessageTransformUtil.wrap(toId(NETCONF_GET_QNAME), filter)); - - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n"); + final var filter = toFilterStructure(YangInstanceIdentifier.of( + NetconfState.QNAME, + Capabilities.QNAME, + QName.create(Capabilities.QNAME, "capability")), SCHEMA); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_NODEID, filter)); + + assertSimilarXml(netconfMessage, """ + + + + + + + + + + + """); } @Test public void testGetList() throws IOException, SAXException { - final YangInstanceIdentifier path = YangInstanceIdentifier.of( - NetconfState.QNAME, - Datastores.QNAME, - QName.create(Datastores.QNAME, "datastore")); - final DataContainerChild filter = toFilterStructure(path, SCHEMA); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, - NetconfMessageTransformUtil.wrap(toId(NETCONF_GET_QNAME), filter)); - - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n"); + final var filter = toFilterStructure(YangInstanceIdentifier.of( + NetconfState.QNAME, + Datastores.QNAME, + QName.create(Datastores.QNAME, "datastore")), SCHEMA); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_NODEID, filter)); + + assertSimilarXml(netconfMessage, """ + + + + + + + + + + + """); } private static NetconfMessageTransformer getTransformer(final EffectiveModelContext schema) { @@ -825,39 +830,37 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { @Test public void toActionResultTest() throws Exception { - NetconfMessage message = new NetconfMessage(XmlUtil.readXmlToDocument( - "" - + "" - + "now" - + "" - + "")); - DOMActionResult actionResult = actionNetconfMessageTransformer.toActionResult(RESET_SERVER_PATH, message); + var message = new NetconfMessage(XmlUtil.readXmlToDocument(""" + + now + """)); + final var actionResult = actionNetconfMessageTransformer.toActionResult(RESET_SERVER_PATH, message); assertNotNull(actionResult); - ContainerNode containerNode = actionResult.getOutput().orElseThrow(); + final var containerNode = actionResult.getOutput().orElseThrow(); assertNotNull(containerNode); assertEquals("now", containerNode.body().iterator().next().body()); } @Test public void toActionEmptyBodyWithOutputDefinedResultTest() throws Exception { - NetconfMessage message = new NetconfMessage(XmlUtil.readXmlToDocument( - "" - + "" - + "")); - DOMActionResult actionResult = - actionNetconfMessageTransformer.toActionResult(CHECK_WITH_OUTPUT_INTERFACE_PATH, message); + final var message = new NetconfMessage(XmlUtil.readXmlToDocument(""" + + + """)); + final var actionResult = + actionNetconfMessageTransformer.toActionResult(CHECK_WITH_OUTPUT_INTERFACE_PATH, message); assertNotNull(actionResult); assertTrue(actionResult.getOutput().isEmpty()); } @Test public void toActionEmptyBodyWithoutOutputDefinedResultTest() throws Exception { - NetconfMessage message = new NetconfMessage(XmlUtil.readXmlToDocument( - "" - + "" - + "")); - DOMActionResult actionResult = - actionNetconfMessageTransformer.toActionResult(CHECK_WITHOUT_OUTPUT_INTERFACE_PATH, message); + final var message = new NetconfMessage(XmlUtil.readXmlToDocument(""" + + + """)); + final var actionResult = + actionNetconfMessageTransformer.toActionResult(CHECK_WITHOUT_OUTPUT_INTERFACE_PATH, message); assertNotNull(actionResult); assertTrue(actionResult.getOutput().isEmpty()); } @@ -865,233 +868,239 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { @Test public void getTwoNonOverlappingFieldsTest() throws IOException, SAXException { // preparation of the fields - final YangInstanceIdentifier parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME); - final YangInstanceIdentifier netconfStartTimeField = YangInstanceIdentifier.of(Statistics.QNAME, + final var parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME); + final var netconfStartTimeField = YangInstanceIdentifier.of(Statistics.QNAME, QName.create(Statistics.QNAME, "netconf-start-time")); - final YangInstanceIdentifier datastoresField = YangInstanceIdentifier.of(Datastores.QNAME); + final var datastoresField = YangInstanceIdentifier.of(Datastores.QNAME); // building filter structure and NETCONF message - final AnyxmlNode filterStructure = toFilterStructure( + final var filterStructure = toFilterStructure( List.of(FieldsFilter.of(parentYiid, List.of(netconfStartTimeField, datastoresField))), SCHEMA); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, - NetconfMessageTransformUtil.wrap(toId(NETCONF_GET_QNAME), filterStructure)); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_NODEID, filterStructure)); // testing - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + ""); + assertSimilarXml(netconfMessage, """ + + + + + + + + + + + + """); } @Test public void getOverlappingFieldsTest() throws IOException, SAXException { // preparation of the fields - final YangInstanceIdentifier parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME); - final YangInstanceIdentifier capabilitiesField = YangInstanceIdentifier.of(Capabilities.QNAME); - final YangInstanceIdentifier capabilityField = YangInstanceIdentifier.of(Capabilities.QNAME, + final var parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME); + final var capabilitiesField = YangInstanceIdentifier.of(Capabilities.QNAME); + final var capabilityField = YangInstanceIdentifier.of(Capabilities.QNAME, QName.create(Capabilities.QNAME, "capability")); - final YangInstanceIdentifier datastoreField = YangInstanceIdentifier.of(Datastores.QNAME); - final YangInstanceIdentifier locksFields = YangInstanceIdentifier.of(toId(Datastores.QNAME), + final var datastoreField = YangInstanceIdentifier.of(Datastores.QNAME); + final var locksFields = YangInstanceIdentifier.of(toId(Datastores.QNAME), toId(Datastore.QNAME), NodeIdentifierWithPredicates.of(Datastore.QNAME), toId(Locks.QNAME)); // building filter structure and NETCONF message - final AnyxmlNode filterStructure = toFilterStructure( + final var filterStructure = toFilterStructure( List.of(FieldsFilter.of(parentYiid, List.of(capabilitiesField, capabilityField, datastoreField, locksFields))), SCHEMA); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, - NetconfMessageTransformUtil.wrap(toId(NETCONF_GET_QNAME), filterStructure)); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_NODEID, filterStructure)); // testing - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + ""); + assertSimilarXml(netconfMessage, """ + + + + + + + + + + """); } @Test public void getOverlappingFieldsWithEmptyFieldTest() throws IOException, SAXException { // preparation of the fields - final YangInstanceIdentifier parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME); - final YangInstanceIdentifier capabilitiesField = YangInstanceIdentifier.of(Capabilities.QNAME); + final var parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME); + final var capabilitiesField = YangInstanceIdentifier.of(Capabilities.QNAME); // building filter structure and NETCONF message - final AnyxmlNode filterStructure = toFilterStructure( + final var filterStructure = toFilterStructure( List.of(FieldsFilter.of(parentYiid, List.of(capabilitiesField, YangInstanceIdentifier.of()))), SCHEMA); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, - NetconfMessageTransformUtil.wrap(toId(NETCONF_GET_QNAME), filterStructure)); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_NODEID, filterStructure)); // testing - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + ""); + assertSimilarXml(netconfMessage, """ + + + + + + + """); } @Test public void getSpecificFieldsUnderListTest() throws IOException, SAXException { // preparation of the fields - final YangInstanceIdentifier parentYiid = YangInstanceIdentifier.of(toId(NetconfState.QNAME), + final var parentYiid = YangInstanceIdentifier.of(toId(NetconfState.QNAME), toId(Schemas.QNAME), toId(Schema.QNAME), NodeIdentifierWithPredicates.of(Schema.QNAME)); - final YangInstanceIdentifier versionField = YangInstanceIdentifier.of( + final var versionField = YangInstanceIdentifier.of( QName.create(Schema.QNAME, "version")); - final YangInstanceIdentifier identifierField = YangInstanceIdentifier.of( + final var identifierField = YangInstanceIdentifier.of( QName.create(Schema.QNAME, "namespace")); // building filter structure and NETCONF message - final AnyxmlNode filterStructure = toFilterStructure( + final var filterStructure = toFilterStructure( List.of(FieldsFilter.of(parentYiid, List.of(versionField, identifierField))), SCHEMA); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, - NetconfMessageTransformUtil.wrap(toId(NETCONF_GET_QNAME), filterStructure)); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_NODEID, filterStructure)); // testing - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - // explicitly fetched list keys - identifier and format - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + ""); + assertSimilarXml(netconfMessage, """ + + + + + + + + + + + + + + + + """); } @Test public void getSpecificFieldsUnderMultipleLists() throws IOException, SAXException { // preparation of the fields - final YangInstanceIdentifier parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME, Datastores.QNAME); - final YangInstanceIdentifier partialLockYiid = YangInstanceIdentifier.of(toId(Datastore.QNAME), + final var parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME, Datastores.QNAME); + final var partialLockYiid = YangInstanceIdentifier.of(toId(Datastore.QNAME), NodeIdentifierWithPredicates.of(Datastore.QNAME), toId(Locks.QNAME), toId(QName.create(Locks.QNAME, "lock-type").intern()), toId(PartialLock.QNAME), NodeIdentifierWithPredicates.of(PartialLock.QNAME)); - final YangInstanceIdentifier lockedTimeField = partialLockYiid.node( + final var lockedTimeField = partialLockYiid.node( QName.create(Locks.QNAME, "locked-time").intern()); - final YangInstanceIdentifier lockedBySessionField = partialLockYiid.node( + final var lockedBySessionField = partialLockYiid.node( QName.create(Locks.QNAME, "locked-by-session").intern()); // building filter structure and NETCONF message - final AnyxmlNode filterStructure = toFilterStructure( + final var filterStructure = toFilterStructure( List.of(FieldsFilter.of(parentYiid, List.of(lockedTimeField, lockedBySessionField))), SCHEMA); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, - NetconfMessageTransformUtil.wrap(toId(NETCONF_GET_QNAME), filterStructure)); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_NODEID, filterStructure)); // testing - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + ""); + assertSimilarXml(netconfMessage, """ + + + + + + + + + + + + + + + + + + + + """); } @Test public void getWholeListsUsingFieldsTest() throws IOException, SAXException { // preparation of the fields - final YangInstanceIdentifier parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME); - final YangInstanceIdentifier datastoreListField = YangInstanceIdentifier.of(toId(Datastores.QNAME), + final var parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME); + final var datastoreListField = YangInstanceIdentifier.of(toId(Datastores.QNAME), toId(Datastore.QNAME), NodeIdentifierWithPredicates.of(Datastore.QNAME)); - final YangInstanceIdentifier sessionListField = YangInstanceIdentifier.of(toId(Sessions.QNAME), + final var sessionListField = YangInstanceIdentifier.of(toId(Sessions.QNAME), toId(Session.QNAME), NodeIdentifierWithPredicates.of(Session.QNAME)); // building filter structure and NETCONF message - final AnyxmlNode filterStructure = toFilterStructure( + final var filterStructure = toFilterStructure( List.of(FieldsFilter.of(parentYiid, List.of(datastoreListField, sessionListField))), SCHEMA); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, - NetconfMessageTransformUtil.wrap(toId(NETCONF_GET_QNAME), filterStructure)); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_NODEID, filterStructure)); // testing - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + ""); + assertSimilarXml(netconfMessage, """ + + + + + + + + + + + + + + """); } @Test public void getSpecificListEntriesWithSpecificFieldsTest() throws IOException, SAXException { // preparation of the fields - final YangInstanceIdentifier parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME, Sessions.QNAME); - final QName sessionId = QName.create(Session.QNAME, "session-id").intern(); - final YangInstanceIdentifier session1Field = YangInstanceIdentifier.of(toId(Session.QNAME), + final var parentYiid = YangInstanceIdentifier.of(NetconfState.QNAME, Sessions.QNAME); + final var sessionId = QName.create(Session.QNAME, "session-id").intern(); + final var session1Field = YangInstanceIdentifier.of(toId(Session.QNAME), NodeIdentifierWithPredicates.of(Session.QNAME, sessionId, 1)); - final YangInstanceIdentifier session2TransportField = YangInstanceIdentifier.of(toId(Session.QNAME), + final var session2TransportField = YangInstanceIdentifier.of(toId(Session.QNAME), NodeIdentifierWithPredicates.of(Session.QNAME, sessionId, 2), toId(QName.create(Session.QNAME, "transport").intern())); // building filter structure and NETCONF message - final AnyxmlNode filterStructure = toFilterStructure( + final var filterStructure = toFilterStructure( List.of(FieldsFilter.of(parentYiid, List.of(session1Field, session2TransportField))), SCHEMA); - final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, - NetconfMessageTransformUtil.wrap(toId(NETCONF_GET_QNAME), filterStructure)); + final var netconfMessage = netconfMessageTransformer.toRpcRequest(NETCONF_GET_QNAME, + NetconfMessageTransformUtil.wrap(NETCONF_GET_NODEID, filterStructure)); // testing - assertSimilarXml(netconfMessage, "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "1\n" - + "\n" - + "\n" - + "2\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + "\n" - + ""); + assertSimilarXml(netconfMessage, """ + + + + + + + 1 + + + 2 + + + + + + + """); } @Test