import org.junit.runners.Parameterized;
import org.opendaylight.yangtools.util.xml.UntrustedXML;
import org.opendaylight.yangtools.yang.data.api.schema.AnydataNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedAnydata;
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.api.schema.stream.NormalizedNodeWriter;
import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAnydataNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder;
-import org.opendaylight.yangtools.yang.model.api.AnyDataSchemaNode;
+import org.opendaylight.yangtools.yang.data.util.ImmutableNormalizedAnydata;
+import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
}
@Test
- public void testDOMAnydata() throws XMLStreamException, IOException, SAXException {
+ public void testDOMAnydata() throws XMLStreamException, IOException {
final StringWriter writer = new StringWriter();
final XMLStreamWriter xmlStreamWriter = factory.createXMLStreamWriter(writer);
//Create Data Scheme from yang file
SchemaPath anydataPath = SchemaPath.create(true, FOO_QNAME);
final SchemaNode dataSchemaNode = SchemaContextUtil.findDataSchemaNode(SCHEMA_CONTEXT, anydataPath);
- assertTrue(dataSchemaNode instanceof AnyDataSchemaNode);
- final AnyDataSchemaNode anyDataSchemaNode = (AnyDataSchemaNode) dataSchemaNode;
+ assertTrue(dataSchemaNode instanceof AnydataSchemaNode);
+ final AnydataSchemaNode anyDataSchemaNode = (AnydataSchemaNode) dataSchemaNode;
// deserialization
final XMLStreamReader reader
//Load XML from file and write it with xmlParseStream
final DOMResult domResult = new DOMResult(UntrustedXML.newDocumentBuilder().newDocument());
final XMLStreamWriter xmlStreamWriter = factory.createXMLStreamWriter(domResult);
- final AnyDataSchemaNode anyDataSchemaNode = (AnyDataSchemaNode) SchemaContextUtil.findDataSchemaNode(
+ final AnydataSchemaNode anyDataSchemaNode = (AnydataSchemaNode) SchemaContextUtil.findDataSchemaNode(
SCHEMA_CONTEXT, SchemaPath.create(true, FOO_QNAME));
final NormalizedNodeStreamWriter streamWriter = XMLStreamNormalizedNodeStreamWriter.create(
xmlStreamWriter, SCHEMA_CONTEXT);
final DOMSource domSource = new DOMSource(doc.getDocumentElement());
//Get specific attribute from Yang file.
- final AnyDataSchemaNode contWithAttr = (AnyDataSchemaNode) SchemaContextUtil.findDataSchemaNode(
+ final AnydataSchemaNode contWithAttr = (AnydataSchemaNode) SchemaContextUtil.findDataSchemaNode(
SCHEMA_CONTEXT, SchemaPath.create(true, FOO_QNAME));
//Create NormalizedNodeResult
}
@Test
- public void testSiblingSerialize() throws IOException, SAXException, XMLStreamException {
+ public void testSiblingSerialize() throws IOException, XMLStreamException {
final StringWriter writer = new StringWriter();
final XMLStreamWriter xmlStreamWriter = factory.createXMLStreamWriter(writer);
normalizedNodeWriter.write(ImmutableContainerNodeBuilder.create().withNodeIdentifier(CONT_NODEID)
.withChild(ImmutableAnydataNodeBuilder.create(DOMSourceAnydata.class).withNodeIdentifier(CONT_ANY_NODEID)
.withValue(toDOMSource("<bar xmlns=\"test-anydata\"/>")).build())
- .withChild(ImmutableLeafNodeBuilder.create().withNodeIdentifier(CONT_LEAF_NODEID).withValue("abc").build())
+ .withChild(CONT_LEAF)
.build());
normalizedNodeWriter.flush();
assertEquals("<cont xmlns=\"test-anydata\"><cont-any><bar xmlns=\"test-anydata\"></bar></cont-any>"
+ "<cont-leaf>abc</cont-leaf></cont>", serializedXml);
}
+
+ @Test
+ public void testNormalizedSerialize() throws IOException, XMLStreamException {
+ final StringWriter writer = new StringWriter();
+ final XMLStreamWriter xmlStreamWriter = factory.createXMLStreamWriter(writer);
+
+ final NormalizedNodeStreamWriter xmlNormalizedNodeStreamWriter = XMLStreamNormalizedNodeStreamWriter.create(
+ xmlStreamWriter, SCHEMA_CONTEXT);
+ final NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(
+ xmlNormalizedNodeStreamWriter);
+ normalizedNodeWriter.write(ImmutableContainerNodeBuilder.create().withNodeIdentifier(CONT_NODEID)
+ .withChild(ImmutableAnydataNodeBuilder.create(NormalizedAnydata.class).withNodeIdentifier(CONT_ANY_NODEID)
+ .withValue(new ImmutableNormalizedAnydata(SCHEMA_CONTEXT,
+ SCHEMA_CONTEXT.findDataChildByName(CONT_QNAME).get(), ImmutableContainerNodeBuilder.create()
+ .withNodeIdentifier(CONT_NODEID).build())).build())
+ .build());
+ normalizedNodeWriter.flush();
+
+ final String serializedXml = writer.toString();
+ assertEquals("<cont xmlns=\"test-anydata\"><cont-any><cont/></cont-any></cont>", serializedXml);
+ }
}