X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FRaftActorSnapshotMessageSupportTest.java;h=d9dcd0607164d8409c5fa5b76a8d6064e4bcc5cf;hp=ae9c784a556496a6edb8d14b82fe9e7e315ea61e;hb=dcc92fc8fdf056d5ada94931f2d24523070fd9a7;hpb=2720ff2c662769d1c72e5723c18be4f7d79cd642 diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorSnapshotMessageSupportTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorSnapshotMessageSupportTest.java index ae9c784a55..d9dcd06071 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorSnapshotMessageSupportTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorSnapshotMessageSupportTest.java @@ -9,7 +9,10 @@ package org.opendaylight.controller.cluster.raft; import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.anyLong; +import static org.mockito.Matchers.eq; import static org.mockito.Matchers.same; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; import akka.actor.ActorRef; @@ -17,18 +20,13 @@ import akka.japi.Procedure; import akka.persistence.SaveSnapshotFailure; import akka.persistence.SaveSnapshotSuccess; import akka.persistence.SnapshotMetadata; -import java.util.Arrays; import java.util.Collections; import org.junit.Before; import org.junit.Test; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.opendaylight.controller.cluster.DataPersistenceProvider; -import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockPayload; -import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockReplicatedLogEntry; import org.opendaylight.controller.cluster.raft.base.messages.ApplySnapshot; -import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshot; import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshotReply; import org.opendaylight.controller.cluster.raft.behaviors.RaftActorBehavior; import org.slf4j.Logger; @@ -67,6 +65,13 @@ public class RaftActorSnapshotMessageSupportTest { public void setup() { MockitoAnnotations.initMocks(this); + doNothing().when(mockSnapshotManager).setApplySnapshotProcedure(any(Procedure.class)); + doNothing().when(mockSnapshotManager).setCreateSnapshotCallable(any(Procedure.class)); + doNothing().when(mockSnapshotManager).apply(any(ApplySnapshot.class)); + doNothing().when(mockSnapshotManager).commit(any(long.class), any(RaftActorBehavior.class)); + doNothing().when(mockSnapshotManager).persist(any(byte[].class), any(RaftActorBehavior.class), any(long.class)); + doNothing().when(mockSnapshotManager).rollback(); + context = new RaftActorContextImpl(mockRaftActorRef, null, "test", new ElectionTermImpl(mockPersistence, "test", LOG), -1, -1, Collections.emptyMap(), configParams, mockPersistence, LOG) { @@ -76,11 +81,11 @@ public class RaftActorSnapshotMessageSupportTest { } }; - support = new RaftActorSnapshotMessageSupport(mockPersistence, context, mockBehavior, mockCohort); + support = new RaftActorSnapshotMessageSupport(context, mockBehavior, mockCohort); doReturn(true).when(mockPersistence).isRecoveryApplicable(); - context.setReplicatedLog(ReplicatedLogImpl.newInstance(context, mockPersistence, mockBehavior)); + context.setReplicatedLog(ReplicatedLogImpl.newInstance(context, mockBehavior)); } private void sendMessageToSupport(Object message) { @@ -88,50 +93,24 @@ public class RaftActorSnapshotMessageSupportTest { } private void sendMessageToSupport(Object message, boolean expHandled) { - boolean handled = support.handleSnapshotMessage(message); + boolean handled = support.handleSnapshotMessage(message, mockRaftActorRef); assertEquals("complete", expHandled, handled); } @Test public void testOnApplySnapshot() { - ReplicatedLog replicatedLog = context.getReplicatedLog(); - replicatedLog.append(new MockReplicatedLogEntry(1, 1, new MockPayload("1"))); - - byte[] snapshotBytes = {1,2,3,4,5}; - - ReplicatedLogEntry unAppliedEntry = new MockReplicatedLogEntry(1, 2, new MockPayload("2")); - long lastAppliedDuringSnapshotCapture = 1; long lastIndexDuringSnapshotCapture = 2; + byte[] snapshotBytes = {1,2,3,4,5}; - Snapshot snapshot = Snapshot.create(snapshotBytes, Arrays.asList(unAppliedEntry), + Snapshot snapshot = Snapshot.create(snapshotBytes, Collections.emptyList(), lastIndexDuringSnapshotCapture, 1, lastAppliedDuringSnapshotCapture, 1); - sendMessageToSupport(new ApplySnapshot(snapshot)); - - assertEquals("Journal log size", 1, context.getReplicatedLog().size()); - assertEquals("Last index", lastIndexDuringSnapshotCapture, context.getReplicatedLog().lastIndex()); - assertEquals("Last applied", lastAppliedDuringSnapshotCapture, context.getLastApplied()); - assertEquals("Commit index", -1, context.getCommitIndex()); - assertEquals("Snapshot term", 1, context.getReplicatedLog().getSnapshotTerm()); - assertEquals("Snapshot index", lastAppliedDuringSnapshotCapture, context.getReplicatedLog().getSnapshotIndex()); - - verify(mockCohort).applySnapshot(snapshotBytes); - } - - @SuppressWarnings({ "rawtypes", "unchecked" }) - @Test - public void testOnCaptureSnapshot() throws Exception { - - sendMessageToSupport(new CaptureSnapshot(3, 1, 2, 1, 2, 1, null)); - - ArgumentCaptor procedure = ArgumentCaptor.forClass(Procedure.class); - verify(mockSnapshotManager).create(procedure.capture()); - - procedure.getValue().apply(null); + ApplySnapshot applySnapshot = new ApplySnapshot(snapshot); + sendMessageToSupport(applySnapshot); - verify(mockCohort).createSnapshot(same(mockRaftActorRef)); + verify(mockSnapshotManager).apply(applySnapshot); } @Test @@ -140,7 +119,7 @@ public class RaftActorSnapshotMessageSupportTest { byte[] snapshot = {1,2,3,4,5}; sendMessageToSupport(new CaptureSnapshotReply(snapshot)); - verify(mockSnapshotManager).persist(same(mockPersistence), same(snapshot), same(mockBehavior), anyLong()); + verify(mockSnapshotManager).persist(same(snapshot), same(mockBehavior), anyLong()); } @Test @@ -149,7 +128,7 @@ public class RaftActorSnapshotMessageSupportTest { long sequenceNumber = 100; sendMessageToSupport(new SaveSnapshotSuccess(new SnapshotMetadata("foo", sequenceNumber, 1234L))); - verify(mockSnapshotManager).commit(mockPersistence, sequenceNumber); + verify(mockSnapshotManager).commit(eq(sequenceNumber), same(mockBehavior)); } @Test @@ -166,7 +145,7 @@ public class RaftActorSnapshotMessageSupportTest { sendMessageToSupport(RaftActorSnapshotMessageSupport.COMMIT_SNAPSHOT); - verify(mockSnapshotManager).commit(mockPersistence, -1); + verify(mockSnapshotManager).commit(eq(-1L), same(mockBehavior)); } @Test