X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fnode%2Futils%2Fstream%2FSerializationUtilsTest.java;h=610a2328f367590cf04af176cad64d28dc853056;hb=14c92df74247c884a43c5aaea2f154992b0ec798;hp=50bfc09efa3b53fd36e5e454a5e0ffa0691e6064;hpb=c8121ea6b5bf54c43777afe6a747be40637e1f42;p=controller.git diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/SerializationUtilsTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/SerializationUtilsTest.java index 50bfc09efa..610a2328f3 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/SerializationUtilsTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/SerializationUtilsTest.java @@ -7,6 +7,9 @@ */ package org.opendaylight.controller.cluster.datastore.node.utils.stream; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import com.google.common.collect.ImmutableSet; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -22,11 +25,11 @@ import java.util.stream.Collectors; import javax.xml.transform.dom.DOMSource; import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.XMLUnit; -import org.junit.Assert; import org.junit.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; 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.schema.AnyXmlNode; import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; @@ -51,7 +54,8 @@ public class SerializationUtilsTest { public void testSerializeDeserializeNodes() throws IOException { final NormalizedNode normalizedNode = createNormalizedNode(); final byte[] bytes = serializeNormalizedNode(normalizedNode); - Assert.assertEquals(normalizedNode, SerializationUtils.deserializeNormalizedNode(bytes)); + assertEquals(10564, bytes.length); + assertEquals(normalizedNode, deserializeNormalizedNode(bytes)); } @Test @@ -64,11 +68,12 @@ public class SerializationUtilsTest { .withValue(new DOMSource(parse)) .build(); final byte[] bytes = serializeNormalizedNode(anyXmlNode); - final NormalizedNode deserialized = SerializationUtils.deserializeNormalizedNode(bytes); + assertEquals(113, bytes.length); + final NormalizedNode deserialized = deserializeNormalizedNode(bytes); final DOMSource value = (DOMSource) deserialized.getValue(); final Diff diff = XMLUnit.compareXML((Document) anyXmlNode.getValue().getNode(), value.getNode().getOwnerDocument()); - Assert.assertTrue(diff.toString(), diff.similar()); + assertTrue(diff.toString(), diff.similar()); } @Test @@ -82,9 +87,13 @@ public class SerializationUtilsTest { .node(leafSetId("leafSer1", "leafSetValue1")) .build(); SerializationUtils.writePath(out, path); + + final byte[] bytes = bos.toByteArray(); + assertEquals(119, bytes.length); + final YangInstanceIdentifier deserialized = - SerializationUtils.deserializePath(new DataInputStream(new ByteArrayInputStream(bos.toByteArray()))); - Assert.assertEquals(path, deserialized); + SerializationUtils.readPath(new DataInputStream(new ByteArrayInputStream(bytes))); + assertEquals(path, deserialized); } @Test @@ -94,14 +103,41 @@ public class SerializationUtilsTest { final NormalizedNode node = createNormalizedNode(); final YangInstanceIdentifier path = YangInstanceIdentifier.create(id("container1")); SerializationUtils.writeNodeAndPath(out, path, node); - final DataInputStream in = new DataInputStream(new ByteArrayInputStream(bos.toByteArray())); + + final byte[] bytes = bos.toByteArray(); + assertEquals(10566, bytes.length); + + final DataInputStream in = new DataInputStream(new ByteArrayInputStream(bytes)); final AtomicBoolean applierCalled = new AtomicBoolean(false); - SerializationUtils.deserializePathAndNode(in, applierCalled, (instance, deserializedPath, deserializedNode) -> { - Assert.assertEquals(path, deserializedPath); - Assert.assertEquals(node, deserializedNode); + SerializationUtils.readNodeAndPath(in, applierCalled, (instance, deserializedPath, deserializedNode) -> { + assertEquals(path, deserializedPath); + assertEquals(node, deserializedNode); applierCalled.set(true); }); - Assert.assertTrue(applierCalled.get()); + assertTrue(applierCalled.get()); + } + + @Test + public void testSerializeDeserializeAugmentNoref() throws IOException { + final YangInstanceIdentifier expected = YangInstanceIdentifier.create( + AugmentationIdentifier.create(ImmutableSet.of( + QName.create("foo", "leaf1"), + QName.create("bar", "leaf2")))); + + final ByteArrayOutputStream bos = new ByteArrayOutputStream(); + final DataOutput out = new DataOutputStream(bos); + SerializationUtils.writePath(out, expected); + + final byte[] bytes = bos.toByteArray(); + assertEquals(37, bytes.length); + + final DataInputStream in = new DataInputStream(new ByteArrayInputStream(bytes)); + final YangInstanceIdentifier read = SerializationUtils.readPath(in); + assertEquals(expected, read); + } + + private static NormalizedNode deserializeNormalizedNode(final byte[] bytes) throws IOException { + return SerializationUtils.readNormalizedNode(new DataInputStream(new ByteArrayInputStream(bytes))).get(); } private static byte[] serializeNormalizedNode(final NormalizedNode node) throws IOException { @@ -129,7 +165,7 @@ public class SerializationUtilsTest { final LeafNode stringLeaf = createLeaf("stringLeaf", "stringValue"); final LeafNode longStringLeaf = createLeaf("longStringLeaf", getLongString()); final LeafNode qNameLeaf = createLeaf("stringLeaf", QName.create("base", "qName")); - final LeafNode idLeaf = createLeaf("stringLeaf", YangInstanceIdentifier.EMPTY); + final LeafNode idLeaf = createLeaf("stringLeaf", YangInstanceIdentifier.empty()); final MapEntryNode entry1 = Builders.mapEntryBuilder() .withNodeIdentifier(listId("mapNode", "key", "key1")) .withChild(stringLeaf) @@ -233,4 +269,4 @@ public class SerializationUtilsTest { } return builder.toString(); } -} \ No newline at end of file +}