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%2FRaftActorRecoverySupportTest.java;h=b4497fd298487e3636387a4ca0bd366dd9b94246;hb=24ace09aacc620fd9768e0a7004e802f9385bcfc;hp=ddc8bed42a452767b6229d8996c84e06ac56e1b1;hpb=11dadddb4d9ba26ae0b1795921c7a218a6d893c2;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupportTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupportTest.java index ddc8bed42a..b4497fd298 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupportTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorRecoverySupportTest.java @@ -8,6 +8,8 @@ package org.opendaylight.controller.cluster.raft; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; import static org.mockito.Mockito.doReturn; @@ -38,7 +40,6 @@ import org.opendaylight.controller.cluster.raft.base.messages.ApplyJournalEntrie import org.opendaylight.controller.cluster.raft.base.messages.ApplyLogEntries; import org.opendaylight.controller.cluster.raft.base.messages.DeleteEntries; import org.opendaylight.controller.cluster.raft.base.messages.UpdateElectionTerm; -import org.opendaylight.controller.cluster.raft.behaviors.RaftActorBehavior; import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,8 +56,6 @@ public class RaftActorRecoverySupportTest { @Mock private DataPersistenceProvider mockPersistence; - @Mock - private RaftActorBehavior mockBehavior; @Mock private RaftActorRecoveryCohort mockCohort; @@ -78,11 +77,11 @@ public class RaftActorRecoverySupportTest { context = new RaftActorContextImpl(null, null, localId, new ElectionTermImpl(mockPersistentProvider, "test", LOG), -1, -1, Collections.emptyMap(), configParams, mockPersistence, LOG); - support = new RaftActorRecoverySupport(context, mockBehavior , mockCohort); + support = new RaftActorRecoverySupport(context, mockCohort); doReturn(true).when(mockPersistence).isRecoveryApplicable(); - context.setReplicatedLog(ReplicatedLogImpl.newInstance(context, mockBehavior)); + context.setReplicatedLog(ReplicatedLogImpl.newInstance(context)); } private void sendMessageToSupport(Object message) { @@ -213,6 +212,7 @@ public class RaftActorRecoverySupportTest { assertEquals("Snapshot index", lastAppliedDuringSnapshotCapture, context.getReplicatedLog().getSnapshotIndex()); assertEquals("Election term", electionTerm, context.getTermInformation().getCurrentTerm()); assertEquals("Election votedFor", electionVotedFor, context.getTermInformation().getVotedFor()); + assertFalse("Dynamic server configuration", context.isDynamicServerConfigurationInUse()); verify(mockCohort).applyRecoverySnapshot(snapshotBytes); } @@ -395,6 +395,7 @@ public class RaftActorRecoverySupportTest { sendMessageToSupport(new MockRaftActorContext.MockReplicatedLogEntry(1, 0, obj)); //verify new peers + assertTrue("Dynamic server configuration", context.isDynamicServerConfigurationInUse()); assertEquals("New peer Ids", Sets.newHashSet(follower1, follower2, follower3), Sets.newHashSet(context.getPeerIds())); assertEquals("follower1 isVoting", true, context.getPeerInfo(follower1).isVoting()); @@ -415,6 +416,7 @@ public class RaftActorRecoverySupportTest { sendMessageToSupport(new MockRaftActorContext.MockReplicatedLogEntry(1, 1, obj)); //verify new peers + assertTrue("Dynamic server configuration", context.isDynamicServerConfigurationInUse()); assertEquals("New peer Ids", Sets.newHashSet(follower2, follower3), Sets.newHashSet(context.getPeerIds())); } @@ -431,4 +433,29 @@ public class RaftActorRecoverySupportTest { //verify new peers assertEquals("New peer Ids", Sets.newHashSet(follower), Sets.newHashSet(context.getPeerIds())); } + + @Test + public void testOnSnapshotOfferWithServerConfiguration() { + long electionTerm = 2; + String electionVotedFor = "member-2"; + ServerConfigurationPayload serverPayload = new ServerConfigurationPayload(Arrays.asList( + new ServerInfo(localId, true), + new ServerInfo("follower1", true), + new ServerInfo("follower2", true))); + + Snapshot snapshot = Snapshot.create(new byte[]{1}, Collections.emptyList(), + -1, -1, -1, -1, electionTerm, electionVotedFor, serverPayload); + + SnapshotMetadata metadata = new SnapshotMetadata("test", 6, 12345); + SnapshotOffer snapshotOffer = new SnapshotOffer(metadata , snapshot); + + sendMessageToSupport(snapshotOffer); + + assertEquals("Journal log size", 0, context.getReplicatedLog().size()); + assertEquals("Election term", electionTerm, context.getTermInformation().getCurrentTerm()); + assertEquals("Election votedFor", electionVotedFor, context.getTermInformation().getVotedFor()); + assertTrue("Dynamic server configuration", context.isDynamicServerConfigurationInUse()); + assertEquals("Peer List", Sets.newHashSet("follower1", "follower2"), + Sets.newHashSet(context.getPeerIds())); + } }