import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.controller.cluster.DataPersistenceProvider;
import org.opendaylight.controller.cluster.io.FileBackedOutputStreamFactory;
import org.opendaylight.controller.cluster.raft.SnapshotManager.LastAppliedTermInformationReader;
import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor;
import org.slf4j.LoggerFactory;
+@RunWith(MockitoJUnitRunner.StrictStubs.class)
public class SnapshotManagerTest extends AbstractActorTest {
@Mock
@Before
public void setUp() {
- MockitoAnnotations.initMocks(this);
-
doReturn(false).when(mockRaftActorContext).hasFollowers();
doReturn(mockConfigParams).when(mockRaftActorContext).getConfigParams();
doReturn(10L).when(mockConfigParams).getSnapshotBatchCount();
doReturn(45L).when(mockReplicatedLog).getSnapshotIndex();
doReturn(6L).when(mockReplicatedLog).getSnapshotTerm();
ReplicatedLogEntry replicatedLogEntry = mock(ReplicatedLogEntry.class);
+ doReturn(null).when(mockReplicatedLog).get(0);
doReturn(replicatedLogEntry).when(mockReplicatedLog).get(9);
doReturn(6L).when(replicatedLogEntry).getTerm();
doReturn(9L).when(replicatedLogEntry).getIndex();
long replicatedToAllIndex = 1;
ReplicatedLogEntry replicatedLogEntry = mock(ReplicatedLogEntry.class);
+ doReturn(null).when(mockReplicatedLog).get(0);
doReturn(replicatedLogEntry).when(mockReplicatedLog).get(replicatedToAllIndex);
doReturn(6L).when(replicatedLogEntry).getTerm();
doReturn(replicatedToAllIndex).when(replicatedLogEntry).getIndex();
assertEquals("return index", 10L, retIndex);
verify(mockReplicatedLog).snapshotPreCommit(10, 5);
- verify(mockReplicatedLog).snapshotCommit();
+ verify(mockReplicatedLog).snapshotCommit(false);
verify(mockRaftActorBehavior, never()).setReplicatedToAllIndex(anyLong());
}
public void testTrimLogWhenLastAppliedNotSet() {
doReturn(-1L).when(mockRaftActorContext).getLastApplied();
- ReplicatedLogEntry replicatedLogEntry = mock(ReplicatedLogEntry.class);
- doReturn(true).when(mockReplicatedLog).isPresent(10);
- doReturn(replicatedLogEntry).when(mockReplicatedLog).get(10);
- doReturn(5L).when(replicatedLogEntry).getTerm();
-
long retIndex = snapshotManager.trimLog(10);
assertEquals("return index", -1L, retIndex);
verify(mockReplicatedLog, never()).snapshotPreCommit(anyLong(), anyLong());
- verify(mockReplicatedLog, never()).snapshotCommit();
+ verify(mockReplicatedLog, never()).snapshotCommit(false);
verify(mockRaftActorBehavior, never()).setReplicatedToAllIndex(anyLong());
}
public void testTrimLogWhenLastAppliedZero() {
doReturn(0L).when(mockRaftActorContext).getLastApplied();
- ReplicatedLogEntry replicatedLogEntry = mock(ReplicatedLogEntry.class);
- doReturn(true).when(mockReplicatedLog).isPresent(10);
- doReturn(replicatedLogEntry).when(mockReplicatedLog).get(10);
- doReturn(5L).when(replicatedLogEntry).getTerm();
-
long retIndex = snapshotManager.trimLog(10);
assertEquals("return index", -1L, retIndex);
verify(mockReplicatedLog, never()).snapshotPreCommit(anyLong(), anyLong());
- verify(mockReplicatedLog, never()).snapshotCommit();
+ verify(mockReplicatedLog, never()).snapshotCommit(false);
verify(mockRaftActorBehavior, never()).setReplicatedToAllIndex(anyLong());
}
assertEquals("return index", -1L, retIndex);
verify(mockReplicatedLog, never()).snapshotPreCommit(anyLong(), anyLong());
- verify(mockReplicatedLog, never()).snapshotCommit();
+ verify(mockReplicatedLog, never()).snapshotCommit(false);
// Trim index is greater than replicatedToAllIndex so should update it.
verify(mockRaftActorBehavior).setReplicatedToAllIndex(10L);
assertEquals(true, snapshotManager.isCapturing());
- ReplicatedLogEntry replicatedLogEntry = mock(ReplicatedLogEntry.class);
- doReturn(20L).when(mockRaftActorContext).getLastApplied();
- doReturn(true).when(mockReplicatedLog).isPresent(10);
- doReturn(replicatedLogEntry).when(mockReplicatedLog).get(10);
- doReturn(5L).when(replicatedLogEntry).getTerm();
-
snapshotManager.trimLog(10);
verify(mockReplicatedLog, never()).snapshotPreCommit(anyLong(), anyLong());
- verify(mockReplicatedLog, never()).snapshotCommit();
-
+ verify(mockReplicatedLog, never()).snapshotCommit(false);
}
@Test
assertEquals(true, snapshotManager.isCapturing());
- ReplicatedLogEntry replicatedLogEntry = mock(ReplicatedLogEntry.class);
- doReturn(20L).when(mockRaftActorContext).getLastApplied();
- doReturn(true).when(mockReplicatedLog).isPresent(10);
- doReturn(replicatedLogEntry).when(mockReplicatedLog).get(10);
- doReturn(5L).when(replicatedLogEntry).getTerm();
-
snapshotManager.trimLog(10);
verify(mockReplicatedLog, never()).snapshotPreCommit(10, 5);
verify(mockReplicatedLog, never()).snapshotCommit();
-
}
@Test