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=b7bb741e7335f58450f03387b7f1b0b496fdd3c5;hpb=b0f8283587b5cc8573d29f66219cbe7f70e21e1b;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 b7bb741e73..38f1defb9f 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 @@ -9,13 +9,14 @@ package org.opendaylight.controller.cluster.raft.messages; import static org.junit.Assert.assertEquals; -import java.util.Arrays; import java.util.Iterator; -import org.apache.commons.lang.SerializationUtils; +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.cluster.raft.persisted.SimpleReplicatedLogEntry; /** * Unit tests for AppendEntries. @@ -23,23 +24,39 @@ import org.opendaylight.controller.cluster.raft.ReplicatedLogImplEntry; * @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 + + var expected = new AppendEntries(5L, "node1", 7L, 8L, List.of(entry1, entry2), 10L, -1, payloadVersion, + RaftVersions.CURRENT_VERSION, null); + + var bytes = SerializationUtils.serialize(expected); + assertEquals(285, bytes.length); + var cloned = (AppendEntries) SerializationUtils.deserialize(bytes); + + verifyAppendEntries(expected, cloned, RaftVersions.CURRENT_VERSION); - verifyAppendEntries(expected, cloned); + // With leader address + + expected = new AppendEntries(5L, "node1", 7L, 8L, List.of(entry1, entry2), 10L, -1, payloadVersion, + RaftVersions.CURRENT_VERSION, "leader address"); + + bytes = SerializationUtils.serialize(expected); + assertEquals(301, bytes.length); + cloned = (AppendEntries) SerializationUtils.deserialize(bytes); + + 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()); @@ -53,9 +70,12 @@ public class AppendEntriesTest { 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) { + private static void verifyReplicatedLogEntry(final ReplicatedLogEntry expected, final ReplicatedLogEntry actual) { assertEquals("getIndex", expected.getIndex(), actual.getIndex()); assertEquals("getTerm", expected.getTerm(), actual.getTerm()); assertEquals("getData", expected.getData().toString(), actual.getData().toString());