X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-codec-xml%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fcodec%2Fxml%2FAnyXmlWithParamsParsingTest.java;h=64098c18e77a2653c15cc24480c6a75f37af3565;hb=1e8209bb1e52b827e0e1e783a9c11cb6b8241d12;hp=6c33dd77d9e7d1c805e37267b9769c213f71e0af;hpb=1bb10c7f82ae8ad45d82a52528861cd966a35361;p=yangtools.git diff --git a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnyXmlWithParamsParsingTest.java b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnyXmlWithParamsParsingTest.java index 6c33dd77d9..64098c18e7 100644 --- a/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnyXmlWithParamsParsingTest.java +++ b/yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnyXmlWithParamsParsingTest.java @@ -8,8 +8,8 @@ package org.opendaylight.yangtools.yang.data.codec.xml; import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; import java.io.InputStream; import java.io.StringWriter; @@ -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; @@ -32,43 +35,37 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; 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.OperationDefinition; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.model.api.SchemaNode; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +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 SchemaContext 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 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) {