X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2Fmessages%2FAppendEntriesTest.java;h=38f1defb9f420fdf7769fd2a5270feb9476b3544;hb=HEAD;hp=aceed9ea5186df2088acb5b37d43fa1507345f51;hpb=ecccb6d5b43dd73aef0d2d19349d19ee9b4728f7;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java index aceed9ea51..126887d7f5 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesTest.java @@ -8,18 +8,15 @@ package org.opendaylight.controller.cluster.raft.messages; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertSame; -import java.util.Arrays; -import java.util.Collections; + import java.util.Iterator; -import org.apache.commons.lang.SerializationUtils; -import org.junit.Assert; +import java.util.List; +import org.apache.commons.lang3.SerializationUtils; import org.junit.Test; import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockPayload; import org.opendaylight.controller.cluster.raft.RaftVersions; import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry; -import org.opendaylight.controller.cluster.raft.ReplicatedLogImplEntry; -import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages; +import org.opendaylight.controller.cluster.raft.persisted.SimpleReplicatedLogEntry; /** * Unit tests for AppendEntries. @@ -27,47 +24,39 @@ import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntries * @author Thomas Pantelis */ public class AppendEntriesTest { - @Test public void testSerialization() { - ReplicatedLogEntry entry1 = new ReplicatedLogImplEntry(1, 2, new MockPayload("payload1")); + ReplicatedLogEntry entry1 = new SimpleReplicatedLogEntry(1, 2, new MockPayload("payload1")); - ReplicatedLogEntry entry2 = new ReplicatedLogImplEntry(3, 4, new MockPayload("payload2")); + ReplicatedLogEntry entry2 = new SimpleReplicatedLogEntry(3, 4, new MockPayload("payload2")); short payloadVersion = 5; - AppendEntries expected = new AppendEntries(5L, "node1", 7L, 8L, Arrays.asList(entry1, entry2), 10L, - -1, payloadVersion); - AppendEntries cloned = (AppendEntries) SerializationUtils.clone(expected); + // Without leader address - verifyAppendEntries(expected, cloned); - } + var expected = new AppendEntries(5L, "node1", 7L, 8L, List.of(entry1, entry2), 10L, -1, payloadVersion, + RaftVersions.CURRENT_VERSION, null); - @Test - public void testToAndFromSerializable() { - AppendEntries entries = new AppendEntries(5L, "node1", 7L, 8L, - Collections.emptyList(), 10L, -1, (short)0); + var bytes = SerializationUtils.serialize(expected); + assertEquals(285, bytes.length); + var cloned = (AppendEntries) SerializationUtils.deserialize(bytes); - assertSame("toSerializable", entries, entries.toSerializable()); - assertSame("fromSerializable", entries, - org.opendaylight.controller.cluster.raft.SerializationUtils.fromSerializable(entries)); - } + verifyAppendEntries(expected, cloned, RaftVersions.CURRENT_VERSION); - @Test - public void testToAndFromLegacySerializable() { - ReplicatedLogEntry entry = new ReplicatedLogImplEntry(3, 4, new MockPayload("payload")); - AppendEntries entries = new AppendEntries(5L, "node1", 7L, 8L, Arrays.asList(entry), 10L, -1, (short)0); + // With leader address - Object serializable = entries.toSerializable(RaftVersions.HELIUM_VERSION); - Assert.assertTrue(serializable instanceof AppendEntriesMessages.AppendEntries); + expected = new AppendEntries(5L, "node1", 7L, 8L, List.of(entry1, entry2), 10L, -1, payloadVersion, + RaftVersions.CURRENT_VERSION, "leader address"); - AppendEntries entries2 = (AppendEntries) - org.opendaylight.controller.cluster.raft.SerializationUtils.fromSerializable(serializable); + bytes = SerializationUtils.serialize(expected); + assertEquals(301, bytes.length); + cloned = (AppendEntries) SerializationUtils.deserialize(bytes); - verifyAppendEntries(entries, entries2); + verifyAppendEntries(expected, cloned, RaftVersions.CURRENT_VERSION); } - private static void verifyAppendEntries(AppendEntries expected, AppendEntries actual) { + private static void verifyAppendEntries(final AppendEntries expected, final AppendEntries actual, + final short recipientRaftVersion) { assertEquals("getLeaderId", expected.getLeaderId(), actual.getLeaderId()); assertEquals("getTerm", expected.getTerm(), actual.getTerm()); assertEquals("getLeaderCommit", expected.getLeaderCommit(), actual.getLeaderCommit()); @@ -78,14 +67,17 @@ public class AppendEntriesTest { assertEquals("getEntries size", expected.getEntries().size(), actual.getEntries().size()); Iterator iter = expected.getEntries().iterator(); - for(ReplicatedLogEntry e: actual.getEntries()) { + for (ReplicatedLogEntry e: actual.getEntries()) { verifyReplicatedLogEntry(iter.next(), e); } + + assertEquals("getLeaderAddress", expected.leaderAddress(), actual.leaderAddress()); + assertEquals("getLeaderRaftVersion", RaftVersions.CURRENT_VERSION, actual.getLeaderRaftVersion()); } - private static void verifyReplicatedLogEntry(ReplicatedLogEntry expected, ReplicatedLogEntry actual) { - assertEquals("getIndex", expected.getIndex(), actual.getIndex()); - assertEquals("getTerm", expected.getTerm(), actual.getTerm()); + private static void verifyReplicatedLogEntry(final ReplicatedLogEntry expected, final ReplicatedLogEntry actual) { + assertEquals("getIndex", expected.index(), actual.index()); + assertEquals("getTerm", expected.term(), actual.term()); assertEquals("getData", expected.getData().toString(), actual.getData().toString()); } }