import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+
import akka.japi.Procedure;
import java.util.HashMap;
import java.util.List;
import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockReplicatedLogEntry;
/**
-*
+* Unit tests for AbstractReplicatedLogImplTest.
*/
public class AbstractReplicatedLogImplTest {
Assert.assertNull("get(0)", replicatedLogImpl.get(0));
Assert.assertNull("last", replicatedLogImpl.last());
- List<ReplicatedLogEntry> list = replicatedLogImpl.getFrom(0, 1);
+ List<ReplicatedLogEntry> list = replicatedLogImpl.getFrom(0, 1, ReplicatedLog.NO_MAX_SIZE);
assertEquals("getFrom size", 0, list.size());
assertEquals("removeFrom", -1, replicatedLogImpl.removeFrom(1));
}
@Test
- public void testGetFromWithMax(){
- List<ReplicatedLogEntry> from = replicatedLogImpl.getFrom(0, 1);
+ public void testGetFromWithMax() {
+ List<ReplicatedLogEntry> from = replicatedLogImpl.getFrom(0, 1, ReplicatedLog.NO_MAX_SIZE);
Assert.assertEquals(1, from.size());
- Assert.assertEquals(1, from.get(0).getTerm());
+ Assert.assertEquals("A", from.get(0).getData().toString());
- from = replicatedLogImpl.getFrom(0, 20);
+ from = replicatedLogImpl.getFrom(0, 20, ReplicatedLog.NO_MAX_SIZE);
Assert.assertEquals(4, from.size());
- Assert.assertEquals(2, from.get(3).getTerm());
+ Assert.assertEquals("A", from.get(0).getData().toString());
+ Assert.assertEquals("D", from.get(3).getData().toString());
+
+ from = replicatedLogImpl.getFrom(1, 2, ReplicatedLog.NO_MAX_SIZE);
+ Assert.assertEquals(2, from.size());
+ Assert.assertEquals("B", from.get(0).getData().toString());
+ Assert.assertEquals("C", from.get(1).getData().toString());
+
+ from = replicatedLogImpl.getFrom(1, 3, 2);
+ Assert.assertEquals(2, from.size());
+ Assert.assertEquals("B", from.get(0).getData().toString());
+ Assert.assertEquals("C", from.get(1).getData().toString());
+
+ from = replicatedLogImpl.getFrom(1, 3, 3);
+ Assert.assertEquals(3, from.size());
+ Assert.assertEquals("B", from.get(0).getData().toString());
+ Assert.assertEquals("C", from.get(1).getData().toString());
+ Assert.assertEquals("D", from.get(2).getData().toString());
- from = replicatedLogImpl.getFrom(1, 2);
+ from = replicatedLogImpl.getFrom(1, 2, 3);
Assert.assertEquals(2, from.size());
- Assert.assertEquals(1, from.get(1).getTerm());
+ Assert.assertEquals("B", from.get(0).getData().toString());
+ Assert.assertEquals("C", from.get(1).getData().toString());
+ replicatedLogImpl.append(new MockReplicatedLogEntry(2, 4, new MockPayload("12345")));
+ from = replicatedLogImpl.getFrom(4, 2, 2);
+ Assert.assertEquals(1, from.size());
+ Assert.assertEquals("12345", from.get(0).getData().toString());
}
@Test
long lastIndex = 0;
long lastTerm = 0;
- for(int i = 0; i < numEntries; i++) {
+ for (int i = 0; i < numEntries; i++) {
ReplicatedLogEntry entry = replicatedLogImpl.getAtPhysicalIndex(i);
map.put(entry.getIndex(), entry.getData().toString());
lastIndex = entry.getIndex();
return map;
}
+
class MockAbstractReplicatedLogImpl extends AbstractReplicatedLogImpl {
@Override
- public void appendAndPersist(final ReplicatedLogEntry replicatedLogEntry) {
+ public boolean removeFromAndPersist(final long index) {
+ return true;
}
@Override
- public void removeFromAndPersist(final long index) {
+ public boolean appendAndPersist(ReplicatedLogEntry replicatedLogEntry, Procedure<ReplicatedLogEntry> callback,
+ boolean doAsync) {
+ return true;
}
@Override
- public void appendAndPersist(ReplicatedLogEntry replicatedLogEntry, Procedure<ReplicatedLogEntry> callback) {
+ public void captureSnapshotIfReady(ReplicatedLogEntry replicatedLogEntry) {
}
}
}