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=a3e574c9c037ade5243ff11d8963f32318c38ff0;hb=b843cd2e6a2fdf894b458975a5fd9d168da62433;hp=50d06ada231c23ca611d1ad0234288ed9bedfce3;hpb=12fcdfe39aa26dcba7fd3bb4d4c68e3d02e65c51;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 50d06ada23..a3e574c9c0 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,12 +7,16 @@ */ 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; import java.io.DataInputStream; import java.io.DataOutput; import java.io.DataOutputStream; +import java.io.IOException; import java.nio.charset.Charset; import java.util.Arrays; import java.util.Set; @@ -21,7 +25,6 @@ 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; @@ -47,11 +50,11 @@ public class SerializationUtilsTest { private static final QName CONTAINER_Q_NAME = QName.create("ns-1", "2017-03-17", "container1"); @Test - public void testSerializeDeserializeNodes() { + public void testSerializeDeserializeNodes() throws IOException { final NormalizedNode normalizedNode = createNormalizedNode(); - final byte[] bytes = SerializationUtils.serializeNormalizedNode(normalizedNode); - Assert.assertEquals(normalizedNode, SerializationUtils.deserializeNormalizedNode(bytes)); - + final byte[] bytes = serializeNormalizedNode(normalizedNode); + assertEquals(10774, bytes.length); + assertEquals(normalizedNode, deserializeNormalizedNode(bytes)); } @Test @@ -63,16 +66,17 @@ public class SerializationUtilsTest { .withNodeIdentifier(id("anyXmlNode")) .withValue(new DOMSource(parse)) .build(); - final byte[] bytes = SerializationUtils.serializeNormalizedNode(anyXmlNode); - final NormalizedNode deserialized = SerializationUtils.deserializeNormalizedNode(bytes); + final byte[] bytes = serializeNormalizedNode(anyXmlNode); + assertEquals(115, 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 - public void testSerializeDeserializePath() { + public void testSerializeDeserializePath() throws IOException { final ByteArrayOutputStream bos = new ByteArrayOutputStream(); final DataOutput out = new DataOutputStream(bos); final YangInstanceIdentifier path = YangInstanceIdentifier.builder() @@ -81,27 +85,45 @@ public class SerializationUtilsTest { .node(listId("list1", "keyName1", "keyValue1")) .node(leafSetId("leafSer1", "leafSetValue1")) .build(); - SerializationUtils.serializePath(path, out); + SerializationUtils.writePath(out, path); + + final byte[] bytes = bos.toByteArray(); + assertEquals(150, 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 - public void testSerializeDeserializePathAndNode() { + public void testSerializeDeserializePathAndNode() throws IOException { final ByteArrayOutputStream bos = new ByteArrayOutputStream(); final DataOutput out = new DataOutputStream(bos); final NormalizedNode node = createNormalizedNode(); final YangInstanceIdentifier path = YangInstanceIdentifier.create(id("container1")); - SerializationUtils.serializePathAndNode(path, node, out); - final DataInputStream in = new DataInputStream(new ByteArrayInputStream(bos.toByteArray())); + SerializationUtils.writeNodeAndPath(out, path, node); + + final byte[] bytes = bos.toByteArray(); + assertEquals(10783, 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()); + } + + 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 { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + SerializationUtils.writeNormalizedNode(new DataOutputStream(bos), node); + return bos.toByteArray(); } private static NormalizedNode createNormalizedNode() { @@ -205,7 +227,7 @@ public class SerializationUtilsTest { private static YangInstanceIdentifier.NodeIdentifierWithPredicates listId(final String listName, final String keyName, final Object keyValue) { - return new YangInstanceIdentifier.NodeIdentifierWithPredicates(QName.create(CONTAINER_Q_NAME, listName), + return YangInstanceIdentifier.NodeIdentifierWithPredicates.of(QName.create(CONTAINER_Q_NAME, listName), QName.create(CONTAINER_Q_NAME, keyName), keyValue); }