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=a7c3c8b9d5e97bde0e4b6fb431e105545eea754b;hb=refs%2Fchanges%2F09%2F83009%2F6;hp=e5f627c857d09efe89548ca4a07d24a95ce4e6dd;hpb=e1eca73a5ae2ffae8dd78c6fe5281cd2f45d5ef3;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 e5f627c857..a7c3c8b9d5 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,14 +8,16 @@ package org.opendaylight.controller.cluster.raft.messages; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import java.util.Arrays; import java.util.Iterator; import org.apache.commons.lang.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. @@ -26,20 +28,49 @@ 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; + + // Without leader address + AppendEntries expected = new AppendEntries(5L, "node1", 7L, 8L, Arrays.asList(entry1, entry2), 10L, - -1, payloadVersion); + -1, payloadVersion, RaftVersions.CURRENT_VERSION, null); AppendEntries cloned = (AppendEntries) SerializationUtils.clone(expected); - verifyAppendEntries(expected, cloned); + verifyAppendEntries(expected, cloned, RaftVersions.CURRENT_VERSION); + + // With leader address + + expected = new AppendEntries(5L, "node1", 7L, 8L, Arrays.asList(entry1, entry2), 10L, + -1, payloadVersion, RaftVersions.CURRENT_VERSION, "leader address"); + + cloned = (AppendEntries) SerializationUtils.clone(expected); + + verifyAppendEntries(expected, cloned, RaftVersions.CURRENT_VERSION); } - private static void verifyAppendEntries(AppendEntries expected, AppendEntries actual) { + @Test + @Deprecated + public void testPreFluorineSerialization() { + ReplicatedLogEntry entry1 = new SimpleReplicatedLogEntry(1, 2, new MockPayload("payload1")); + + 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, RaftVersions.BORON_VERSION, "leader address"); + + AppendEntries cloned = (AppendEntries) SerializationUtils.clone(expected); + + verifyAppendEntries(expected, cloned, RaftVersions.BORON_VERSION); + } + + private static void verifyAppendEntries(AppendEntries expected, AppendEntries actual, short recipientRaftVersion) { assertEquals("getLeaderId", expected.getLeaderId(), actual.getLeaderId()); assertEquals("getTerm", expected.getTerm(), actual.getTerm()); assertEquals("getLeaderCommit", expected.getLeaderCommit(), actual.getLeaderCommit()); @@ -50,9 +81,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); } + + if (recipientRaftVersion >= RaftVersions.FLUORINE_VERSION) { + assertEquals("getLeaderAddress", expected.getLeaderAddress(), actual.getLeaderAddress()); + assertEquals("getLeaderRaftVersion", RaftVersions.CURRENT_VERSION, actual.getLeaderRaftVersion()); + } else { + assertFalse(actual.getLeaderAddress().isPresent()); + assertEquals("getLeaderRaftVersion", RaftVersions.BORON_VERSION, actual.getLeaderRaftVersion()); + } } private static void verifyReplicatedLogEntry(ReplicatedLogEntry expected, ReplicatedLogEntry actual) {