Remove NormalizedNode.getNodeType()
[yangtools.git] / yang / yang-data-codec-xml / src / test / java / org / opendaylight / yangtools / yang / data / codec / xml / AnyXmlWithParamsParsingTest.java
index 2111e1b65c62c03de93a9e1eac0f0d779dae6fe5..64098c18e77a2653c15cc24480c6a75f37af3565 100644 (file)
@@ -22,8 +22,11 @@ import javax.xml.transform.stream.StreamResult;
 import org.junit.Test;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
 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.common.YangConstants;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.DOMSourceAnyxmlNode;
@@ -33,42 +36,36 @@ import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStre
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.OperationDefinition;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 import org.w3c.dom.Document;
 
 public class AnyXmlWithParamsParsingTest {
-
     private static final InputStream EDIT_CONFIG = XmlToNormalizedNodesTest.class.getResourceAsStream(
             "/anyxml-support/params/edit.xml");
 
-    private static final EffectiveModelContext SCHEMA = YangParserTestUtils.parseYangResourceDirectory(
-            "/anyxml-support/params/");
-
-    private static final SchemaNode SCHEMA_NODE = SCHEMA.getOperations().stream()
-            .filter(o -> o.getQName().getLocalName().equals("edit-config"))
-            .findFirst()
-            .map(OperationDefinition::getInput)
-            .get();
+    private static final QNameModule IETF_NETCONF = QNameModule.create(
+        XMLNamespace.of("urn:ietf:params:xml:ns:netconf:base:1.0"), Revision.of("2011-06-01"));
 
     @Test
     public void testAnyXmlWithParams() throws Exception {
+        final EffectiveModelContext context = YangParserTestUtils.parseYangResourceDirectory("/anyxml-support/params/");
+
         final Document doc = UntrustedXML.newDocumentBuilder().parse(EDIT_CONFIG);
 
         final NormalizedNodeResult resultHolder = new NormalizedNodeResult();
         final NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder);
 
-        final XmlParserStream xmlParser = XmlParserStream.create(writer, SCHEMA, SCHEMA_NODE);
+        final XmlParserStream xmlParser = XmlParserStream.create(writer, SchemaInferenceStack.of(context,
+            Absolute.of(QName.create(IETF_NETCONF, "edit-config"), YangConstants.operationInputQName(IETF_NETCONF)))
+            .toInference());
         xmlParser.traverse(new DOMSource(doc.getDocumentElement()));
-        final NormalizedNode<?, ?> parsed = resultHolder.getResult();
-
-        final DataContainerChild<? extends PathArgument, ?> editCfg = ((ContainerNode) parsed)
-                .getChild(getNodeId(parsed, "edit-content")).get();
+        final NormalizedNode parsed = resultHolder.getResult();
 
+        final DataContainerChild editCfg = ((ContainerNode) parsed).childByArg(getNodeId(parsed, "edit-content"));
         final DOMSource anyXmlParsedDom = ((DOMSourceAnyxmlNode) ((ChoiceNode) editCfg)
-                .getChild(getNodeId(parsed, "config")).get())
-                .getValue();
+                .childByArg(getNodeId(parsed, "config"))).body();
 
         assertNotNull(anyXmlParsedDom);
         final String anyXmlParsedDomString = toStringDom(anyXmlParsedDom);
@@ -83,8 +80,8 @@ public class AnyXmlWithParamsParsingTest {
                 "interface-configurations xmlns=\"http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg\""));
     }
 
-    private static NodeIdentifier getNodeId(final NormalizedNode<?, ?> parsed, final String localName) {
-        return new NodeIdentifier(QName.create(parsed.getNodeType(), localName));
+    private static NodeIdentifier getNodeId(final NormalizedNode parsed, final String localName) {
+        return new NodeIdentifier(QName.create(parsed.getIdentifier().getNodeType(), localName));
     }
 
     private static String toStringDom(final DOMSource source) {