X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fnode%2Futils%2Fstream%2FNormalizedNodeStreamReaderWriterTest.java;h=951170c7a1608a06cbc3f569b193264694f8d3f4;hp=4024cefff85dc74e13817fa28bd3b8d26823ae7f;hb=683170bee30d6938fbaac9ad422d664259fc1bba;hpb=468373b62341066eda6abcabe21e0e4ce86b4cc3 diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NormalizedNodeStreamReaderWriterTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NormalizedNodeStreamReaderWriterTest.java index 4024cefff8..951170c7a1 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NormalizedNodeStreamReaderWriterTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NormalizedNodeStreamReaderWriterTest.java @@ -5,16 +5,18 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.cluster.datastore.node.utils.stream; import static org.junit.Assert.assertEquals; +import com.google.common.collect.ImmutableSet; import com.google.common.io.ByteStreams; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; @@ -29,12 +31,13 @@ import org.opendaylight.controller.cluster.datastore.util.TestModel; import org.opendaylight.yangtools.yang.common.Empty; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; 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.LeafSetEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; @@ -75,7 +78,7 @@ public class NormalizedNodeStreamReaderWriterTest { nnout.writeNormalizedNode(toasterContainer); final byte[] bytes = bos.toByteArray(); - assertEquals(1049950, bytes.length); + assertEquals(1049619, bytes.length); NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput(bytes)); @@ -119,7 +122,7 @@ public class NormalizedNodeStreamReaderWriterTest { nnout.writeYangInstanceIdentifier(path); final byte[] bytes = bos.toByteArray(); - assertEquals(161, bytes.length); + assertEquals(139, bytes.length); NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput(bytes)); @@ -144,7 +147,7 @@ public class NormalizedNodeStreamReaderWriterTest { writer.writeYangInstanceIdentifier(path); final byte[] bytes = bos.toByteArray(); - assertEquals(1163, bytes.length); + assertEquals(826, bytes.length); NormalizedNodeDataInput reader = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput(bytes)); @@ -207,7 +210,7 @@ public class NormalizedNodeStreamReaderWriterTest { nnout.writeNormalizedNode(anyXmlContainer); final byte[] bytes = bos.toByteArray(); - assertEquals(235, bytes.length); + assertEquals(229, bytes.length); NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput(bytes)); @@ -220,10 +223,11 @@ public class NormalizedNodeStreamReaderWriterTest { StreamResult xmlOutput = new StreamResult(new StringWriter()); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); - transformer.transform(((AnyXmlNode)child.get()).getValue(), xmlOutput); + transformer.transform(((DOMSourceAnyxmlNode)child.get()).getValue(), xmlOutput); assertEquals("XML", xml, xmlOutput.getWriter().toString()); - assertEquals("http://www.w3.org/TR/html4/", ((AnyXmlNode)child.get()).getValue().getNode().getNamespaceURI()); + assertEquals("http://www.w3.org/TR/html4/", + ((DOMSourceAnyxmlNode)child.get()).getValue().getNode().getNamespaceURI()); } @Test @@ -236,7 +240,7 @@ public class NormalizedNodeStreamReaderWriterTest { } final byte[] bytes = bos.toByteArray(); - assertEquals(100, bytes.length); + assertEquals(99, bytes.length); NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput(bytes)); assertEquals(expected, nnin.readSchemaPath()); @@ -253,7 +257,7 @@ public class NormalizedNodeStreamReaderWriterTest { } final byte[] bytes = bos.toByteArray(); - assertEquals(105, bytes.length); + assertEquals(103, bytes.length); NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput(bytes)); assertEquals(expected, nnin.readPathArgument()); @@ -287,12 +291,39 @@ public class NormalizedNodeStreamReaderWriterTest { } final byte[] bytes = bos.toByteArray(); - assertEquals(5_577_993, bytes.length); + assertEquals(2_289_103, bytes.length); NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput(bytes)); assertEquals(expected, nnin.readNormalizedNode()); } + @Test + public void testAugmentationIdentifier() throws IOException { + final List qnames = new ArrayList<>(); + for (int i = 0; i < 257; ++i) { + qnames.add(QName.create(TestModel.TEST_QNAME, "a" + i)); + } + + for (int i = 0; i < qnames.size(); ++i) { + final AugmentationIdentifier expected = AugmentationIdentifier.create( + ImmutableSet.copyOf(qnames.subList(0, i))); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + + try (NormalizedNodeDataOutput nnout = + NormalizedNodeInputOutput.newDataOutput(ByteStreams.newDataOutput(bos), + NormalizedNodeStreamVersion.SODIUM_SR1)) { + nnout.writePathArgument(expected); + } + + final byte[] bytes = bos.toByteArray(); + + NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput(bytes)); + PathArgument arg = nnin.readPathArgument(); + assertEquals(expected, arg); + } + } + private static String largeString(final int pow) { StringBuilder sb = new StringBuilder("X"); for (int i = 0; i < pow; i++) {