X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fpersisted%2FShardDataTreeSnapshotTest.java;h=9c50f1669c4d355a371f5c8b1128c5a31f8fc033;hb=8e1d3c4f9001fbc8a5d3d3bea57916c5099078b2;hp=7be91313acbea3785cd32e3bc99c3ccc7b256514;hpb=5464f50be733df1bbbe31cf05665d542d3b7c5e7;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshotTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshotTest.java index 7be91313ac..9c50f1669c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshotTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshotTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. + * Copyright (c) 2016, 2017 Brocade Communications Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -9,19 +9,22 @@ package org.opendaylight.controller.cluster.datastore.persisted; import static org.junit.Assert.assertEquals; -import com.google.common.collect.ImmutableMap; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; +import java.io.ObjectInputStream; import java.io.ObjectOutput; +import java.io.ObjectOutputStream; import java.util.Map; import java.util.Optional; import org.junit.Test; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; /** * Unit tests for ShardDataTreeSnapshot. @@ -32,66 +35,63 @@ public class ShardDataTreeSnapshotTest { @Test public void testShardDataTreeSnapshotWithNoMetadata() throws Exception { - NormalizedNode expectedNode = ImmutableContainerNodeBuilder.create() - .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(TestModel.TEST_QNAME)) + ContainerNode expectedNode = Builders.containerBuilder() + .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME)) .withChild(ImmutableNodes.leafNode(TestModel.DESC_QNAME, "foo")).build(); MetadataShardDataTreeSnapshot snapshot = new MetadataShardDataTreeSnapshot(expectedNode); - byte[] serialized = snapshot.serialize(); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + try (ObjectOutputStream out = new ObjectOutputStream(bos)) { + snapshot.serialize(out); + } + + final byte[] bytes = bos.toByteArray(); + assertEquals(236, bytes.length); - ShardDataTreeSnapshot deserialized = ShardDataTreeSnapshot.deserialize(serialized); + ShardDataTreeSnapshot deserialized; + try (ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes))) { + deserialized = ShardDataTreeSnapshot.deserialize(in).getSnapshot(); + } - Optional> actualNode = deserialized.getRootNode(); - assertEquals("rootNode present", true, actualNode.isPresent()); - assertEquals("rootNode", expectedNode, actualNode.get()); + assertEquals("rootNode", Optional.of(expectedNode), deserialized.getRootNode()); assertEquals("Deserialized type", MetadataShardDataTreeSnapshot.class, deserialized.getClass()); assertEquals("Metadata size", 0, ((MetadataShardDataTreeSnapshot)deserialized).getMetadata().size()); } @Test public void testShardDataTreeSnapshotWithMetadata() throws Exception { - NormalizedNode expectedNode = ImmutableContainerNodeBuilder.create() - .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(TestModel.TEST_QNAME)) + ContainerNode expectedNode = Builders.containerBuilder() + .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME)) .withChild(ImmutableNodes.leafNode(TestModel.DESC_QNAME, "foo")).build(); Map>, ShardDataTreeSnapshotMetadata> expMetadata = - ImmutableMap.of(TestShardDataTreeSnapshotMetadata.class, new TestShardDataTreeSnapshotMetadata("test")); + Map.of(TestShardDataTreeSnapshotMetadata.class, new TestShardDataTreeSnapshotMetadata("test")); MetadataShardDataTreeSnapshot snapshot = new MetadataShardDataTreeSnapshot(expectedNode, expMetadata); - byte[] serialized = snapshot.serialize(); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + try (ObjectOutputStream out = new ObjectOutputStream(bos)) { + snapshot.serialize(out); + } - ShardDataTreeSnapshot deserialized = ShardDataTreeSnapshot.deserialize(serialized); + final byte[] bytes = bos.toByteArray(); + assertEquals(384, bytes.length); - Optional> actualNode = deserialized.getRootNode(); - assertEquals("rootNode present", true, actualNode.isPresent()); - assertEquals("rootNode", expectedNode, actualNode.get()); + ShardDataTreeSnapshot deserialized; + try (ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes))) { + deserialized = ShardDataTreeSnapshot.deserialize(in).getSnapshot(); + } + + assertEquals("rootNode", Optional.of(expectedNode), deserialized.getRootNode()); assertEquals("Deserialized type", MetadataShardDataTreeSnapshot.class, deserialized.getClass()); assertEquals("Metadata", expMetadata, ((MetadataShardDataTreeSnapshot)deserialized).getMetadata()); } - @Test - public void testPreBoronShardDataTreeSnapshot() throws Exception { - NormalizedNode expectedNode = ImmutableContainerNodeBuilder.create() - .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(TestModel.TEST_QNAME)) - .withChild(ImmutableNodes.leafNode(TestModel.DESC_QNAME, "foo")).build(); - - PreBoronShardDataTreeSnapshot snapshot = new PreBoronShardDataTreeSnapshot(expectedNode); - byte[] serialized = snapshot.serialize(); - - ShardDataTreeSnapshot deserialized = ShardDataTreeSnapshot.deserialize(serialized); - - Optional> actualNode = deserialized.getRootNode(); - assertEquals("rootNode present", true, actualNode.isPresent()); - assertEquals("rootNode", expectedNode, actualNode.get()); - assertEquals("Deserialized type", PreBoronShardDataTreeSnapshot.class, deserialized.getClass()); - } - static class TestShardDataTreeSnapshotMetadata extends ShardDataTreeSnapshotMetadata { private static final long serialVersionUID = 1L; private final String data; - TestShardDataTreeSnapshotMetadata(String data) { + TestShardDataTreeSnapshotMetadata(final String data) { this.data = data; } @@ -111,29 +111,32 @@ public class ShardDataTreeSnapshotTest { } @Override - public boolean equals(Object obj) { + public boolean equals(final Object obj) { return obj instanceof TestShardDataTreeSnapshotMetadata && data.equals(((TestShardDataTreeSnapshotMetadata)obj).data); } private static class Proxy implements Externalizable { + @java.io.Serial + private static final long serialVersionUID = 7534948936595056176L; + private String data; @SuppressWarnings("checkstyle:RedundantModifier") public Proxy() { } - Proxy(String data) { + Proxy(final String data) { this.data = data; } @Override - public void writeExternal(ObjectOutput out) throws IOException { + public void writeExternal(final ObjectOutput out) throws IOException { out.writeObject(data); } @Override - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { data = (String) in.readObject(); }