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=4855f42931da658d3d6f7912edb930fd78498bf8;hb=f33beecf2a10955a9219757529ba3017079816cc;hp=e0abd1726ffa54cbb7ba13ce0628d9b0181a06df;hpb=913ae866cd0cc82991e1f66ac80f6a42b0daaa48;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 e0abd1726f..4855f42931 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 @@ -10,9 +10,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.AdditionalMatchers.aryEq; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyInt; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; @@ -23,24 +22,26 @@ import akka.persistence.RecoveryCompleted; import akka.persistence.SnapshotMetadata; import akka.persistence.SnapshotOffer; import com.google.common.collect.Sets; +import com.google.common.util.concurrent.MoreExecutors; import java.util.Arrays; import java.util.Collections; -import org.hamcrest.Description; import org.junit.Before; import org.junit.Test; -import org.mockito.ArgumentMatcher; +import org.mockito.ArgumentMatchers; import org.mockito.InOrder; -import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.opendaylight.controller.cluster.DataPersistenceProvider; import org.opendaylight.controller.cluster.PersistentDataProvider; +import org.opendaylight.controller.cluster.raft.MockRaftActor.MockSnapshotState; +import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockPayload; import org.opendaylight.controller.cluster.raft.persisted.ApplyJournalEntries; import org.opendaylight.controller.cluster.raft.persisted.DeleteEntries; import org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload; import org.opendaylight.controller.cluster.raft.persisted.ServerInfo; import org.opendaylight.controller.cluster.raft.persisted.SimpleReplicatedLogEntry; +import org.opendaylight.controller.cluster.raft.persisted.Snapshot; import org.opendaylight.controller.cluster.raft.persisted.UpdateElectionTerm; import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; import org.slf4j.Logger; @@ -62,6 +63,9 @@ public class RaftActorRecoverySupportTest { @Mock private RaftActorRecoveryCohort mockCohort; + @Mock + private RaftActorSnapshotCohort mockSnapshotCohort; + @Mock PersistentDataProvider mockPersistentProvider; @@ -78,7 +82,7 @@ public class RaftActorRecoverySupportTest { context = new RaftActorContextImpl(null, null, localId, new ElectionTermImpl(mockPersistentProvider, "test", LOG), -1, -1, Collections.emptyMap(), configParams, - mockPersistence, applyState -> { }, LOG); + mockPersistence, applyState -> { }, LOG, MoreExecutors.directExecutor()); support = new RaftActorRecoverySupport(context, mockCohort); @@ -87,11 +91,11 @@ public class RaftActorRecoverySupportTest { context.setReplicatedLog(ReplicatedLogImpl.newInstance(context)); } - private void sendMessageToSupport(Object message) { + private void sendMessageToSupport(final Object message) { sendMessageToSupport(message, false); } - private void sendMessageToSupport(Object message, boolean expComplete) { + private void sendMessageToSupport(final Object message, final boolean expComplete) { boolean complete = support.handleRecoveryMessage(message, mockPersistentProvider); assertEquals("complete", expComplete, complete); } @@ -163,8 +167,6 @@ public class RaftActorRecoverySupportTest { replicatedLog.append(new SimpleReplicatedLogEntry(2, 1, new MockRaftActorContext.MockPayload("2"))); replicatedLog.append(new SimpleReplicatedLogEntry(3, 1, new MockRaftActorContext.MockPayload("3"))); - byte[] snapshotBytes = {1,2,3,4,5}; - ReplicatedLogEntry unAppliedEntry1 = new SimpleReplicatedLogEntry(4, 1, new MockRaftActorContext.MockPayload("4", 4)); @@ -176,8 +178,10 @@ public class RaftActorRecoverySupportTest { long electionTerm = 2; String electionVotedFor = "member-2"; - Snapshot snapshot = Snapshot.create(snapshotBytes, Arrays.asList(unAppliedEntry1, unAppliedEntry2), - lastIndexDuringSnapshotCapture, 1, lastAppliedDuringSnapshotCapture, 1, electionTerm, electionVotedFor); + MockSnapshotState snapshotState = new MockSnapshotState(Arrays.asList(new MockPayload("1"))); + Snapshot snapshot = Snapshot.create(snapshotState, + Arrays.asList(unAppliedEntry1, unAppliedEntry2), lastIndexDuringSnapshotCapture, 1, + lastAppliedDuringSnapshotCapture, 1, electionTerm, electionVotedFor, null); SnapshotMetadata metadata = new SnapshotMetadata("test", 6, 12345); SnapshotOffer snapshotOffer = new SnapshotOffer(metadata , snapshot); @@ -195,7 +199,7 @@ public class RaftActorRecoverySupportTest { assertEquals("Election votedFor", electionVotedFor, context.getTermInformation().getVotedFor()); assertFalse("Dynamic server configuration", context.isDynamicServerConfigurationInUse()); - verify(mockCohort).applyRecoverySnapshot(snapshotBytes); + verify(mockCohort).applyRecoverySnapshot(snapshotState); } @Test @@ -255,11 +259,12 @@ public class RaftActorRecoverySupportTest { @Test public void testDataRecoveredWithPersistenceDisabled() { - doNothing().when(mockCohort).applyRecoverySnapshot(aryEq(new byte[0])); + doNothing().when(mockCohort).applyRecoverySnapshot(any()); doReturn(false).when(mockPersistence).isRecoveryApplicable(); doReturn(10L).when(mockPersistentProvider).getLastSequenceNumber(); - Snapshot snapshot = Snapshot.create(new byte[]{1}, Collections.emptyList(), 3, 1, 3, 1); + Snapshot snapshot = Snapshot.create(new MockSnapshotState(Arrays.asList(new MockPayload("1"))), + Collections.emptyList(), 3, 1, 3, 1, -1, null, null); SnapshotOffer snapshotOffer = new SnapshotOffer(new SnapshotMetadata("test", 6, 12345), snapshot); sendMessageToSupport(snapshotOffer); @@ -285,7 +290,7 @@ public class RaftActorRecoverySupportTest { sendMessageToSupport(RecoveryCompleted.getInstance(), true); - verify(mockCohort).applyRecoverySnapshot(aryEq(new byte[0])); + verify(mockCohort, never()).applyRecoverySnapshot(any()); verify(mockCohort, never()).getRestoreFromSnapshot(); verifyNoMoreInteractions(mockCohort); @@ -293,18 +298,8 @@ public class RaftActorRecoverySupportTest { } static UpdateElectionTerm updateElectionTerm(final long term, final String votedFor) { - return Matchers.argThat(new ArgumentMatcher() { - @Override - public boolean matches(Object argument) { - UpdateElectionTerm other = (UpdateElectionTerm) argument; - return term == other.getCurrentTerm() && votedFor.equals(other.getVotedFor()); - } - - @Override - public void describeTo(Description description) { - description.appendValue(new UpdateElectionTerm(term, votedFor)); - } - }); + return ArgumentMatchers.argThat( + other -> term == other.getCurrentTerm() && votedFor.equals(other.getVotedFor())); } @Test @@ -389,7 +384,8 @@ public class RaftActorRecoverySupportTest { new ServerInfo("follower1", true), new ServerInfo("follower2", true))); - Snapshot snapshot = Snapshot.create(new byte[]{1}, Collections.emptyList(), + MockSnapshotState snapshotState = new MockSnapshotState(Arrays.asList(new MockPayload("1"))); + Snapshot snapshot = Snapshot.create(snapshotState, Collections.emptyList(), -1, -1, -1, -1, electionTerm, electionVotedFor, serverPayload); SnapshotMetadata metadata = new SnapshotMetadata("test", 6, 12345);