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%2FAbstractReplicatedLogImplTest.java;h=65ac83d0d00c17d6c8a7e47136a2e95772a754bb;hb=88a7f904602133bb803752848bb58c9b0a3e9792;hp=8ff68310243ac8129fb719ed9150cad1c5c69123;hpb=913ae866cd0cc82991e1f66ac80f6a42b0daaa48;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/AbstractReplicatedLogImplTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/AbstractReplicatedLogImplTest.java index 8ff6831024..65ac83d0d0 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/AbstractReplicatedLogImplTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/AbstractReplicatedLogImplTest.java @@ -10,14 +10,14 @@ package org.opendaylight.controller.cluster.raft; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; 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 java.util.Map; -import org.junit.Assert; +import java.util.function.Consumer; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockPayload; @@ -53,8 +53,8 @@ public class AbstractReplicatedLogImplTest { assertEquals("lastTerm", -1, replicatedLogImpl.lastTerm()); assertEquals("isPresent", false, replicatedLogImpl.isPresent(0)); assertEquals("isInSnapshot", false, replicatedLogImpl.isInSnapshot(0)); - Assert.assertNull("get(0)", replicatedLogImpl.get(0)); - Assert.assertNull("last", replicatedLogImpl.last()); + assertNull("get(0)", replicatedLogImpl.get(0)); + assertNull("last", replicatedLogImpl.last()); List list = replicatedLogImpl.getFrom(0, 1, ReplicatedLog.NO_MAX_SIZE); assertEquals("getFrom size", 0, list.size()); @@ -139,39 +139,46 @@ public class AbstractReplicatedLogImplTest { @Test public void testGetFromWithMax() { List from = replicatedLogImpl.getFrom(0, 1, ReplicatedLog.NO_MAX_SIZE); - Assert.assertEquals(1, from.size()); - Assert.assertEquals("A", from.get(0).getData().toString()); + assertEquals(1, from.size()); + assertEquals("A", from.get(0).getData().toString()); from = replicatedLogImpl.getFrom(0, 20, ReplicatedLog.NO_MAX_SIZE); - Assert.assertEquals(4, from.size()); - Assert.assertEquals("A", from.get(0).getData().toString()); - Assert.assertEquals("D", from.get(3).getData().toString()); + assertEquals(4, from.size()); + assertEquals("A", from.get(0).getData().toString()); + assertEquals("B", from.get(1).getData().toString()); + assertEquals("C", from.get(2).getData().toString()); + assertEquals("D", from.get(3).getData().toString()); + + // Pre-calculate sizing information for use with capping + final int sizeB = from.get(1).serializedSize(); + final int sizeC = from.get(2).serializedSize(); + final int sizeD = from.get(3).serializedSize(); 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, 3); - Assert.assertEquals(2, from.size()); - Assert.assertEquals("B", from.get(0).getData().toString()); - Assert.assertEquals("C", from.get(1).getData().toString()); + assertEquals(2, from.size()); + assertEquals("B", from.get(0).getData().toString()); + assertEquals("C", from.get(1).getData().toString()); + + from = replicatedLogImpl.getFrom(1, 3, sizeB + sizeC); + assertEquals(2, from.size()); + assertEquals("B", from.get(0).getData().toString()); + assertEquals("C", from.get(1).getData().toString()); + + from = replicatedLogImpl.getFrom(1, 3, sizeB + sizeC + sizeD); + assertEquals(3, from.size()); + assertEquals("B", from.get(0).getData().toString()); + assertEquals("C", from.get(1).getData().toString()); + assertEquals("D", from.get(2).getData().toString()); + + from = replicatedLogImpl.getFrom(1, 2, sizeB + sizeC + sizeD); + assertEquals(2, from.size()); + assertEquals("B", from.get(0).getData().toString()); + assertEquals("C", from.get(1).getData().toString()); replicatedLogImpl.append(new SimpleReplicatedLogEntry(4, 2, new MockPayload("12345"))); from = replicatedLogImpl.getFrom(4, 2, 2); - Assert.assertEquals(1, from.size()); - Assert.assertEquals("12345", from.get(0).getData().toString()); + assertEquals(1, from.size()); + assertEquals("12345", from.get(0).getData().toString()); } @Test @@ -224,10 +231,10 @@ public class AbstractReplicatedLogImplTest { assertEquals("lastIndex", 3, replicatedLogImpl.lastIndex()); assertEquals("lastTerm", 2, replicatedLogImpl.lastTerm()); - Assert.assertNull("get(0)", replicatedLogImpl.get(0)); - Assert.assertNull("get(1)", replicatedLogImpl.get(1)); - Assert.assertNotNull("get(2)", replicatedLogImpl.get(2)); - Assert.assertNotNull("get(3)", replicatedLogImpl.get(3)); + assertNull("get(0)", replicatedLogImpl.get(0)); + assertNull("get(1)", replicatedLogImpl.get(1)); + assertNotNull("get(2)", replicatedLogImpl.get(2)); + assertNotNull("get(3)", replicatedLogImpl.get(3)); } @Test @@ -245,8 +252,8 @@ public class AbstractReplicatedLogImplTest { assertEquals("dataSize", 4, replicatedLogImpl.dataSize()); assertEquals("getSnapshotIndex", -1, replicatedLogImpl.getSnapshotIndex()); assertEquals("getSnapshotTerm", -1, replicatedLogImpl.getSnapshotTerm()); - Assert.assertNotNull("get(0)", replicatedLogImpl.get(0)); - Assert.assertNotNull("get(3)", replicatedLogImpl.get(3)); + assertNotNull("get(0)", replicatedLogImpl.get(0)); + assertNotNull("get(3)", replicatedLogImpl.get(3)); } @Test @@ -318,24 +325,28 @@ public class AbstractReplicatedLogImplTest { } - class MockAbstractReplicatedLogImpl extends AbstractReplicatedLogImpl { + static class MockAbstractReplicatedLogImpl extends AbstractReplicatedLogImpl { @Override public boolean removeFromAndPersist(final long index) { return true; } @Override - public boolean appendAndPersist(ReplicatedLogEntry replicatedLogEntry, Procedure callback, - boolean doAsync) { + public boolean appendAndPersist(final ReplicatedLogEntry replicatedLogEntry, + final Consumer callback, final boolean doAsync) { + if (callback != null) { + callback.accept(replicatedLogEntry); + } return true; } @Override - public void captureSnapshotIfReady(ReplicatedLogEntry replicatedLogEntry) { + public void captureSnapshotIfReady(final ReplicatedLogEntry replicatedLogEntry) { + // No-op } @Override - public boolean shouldCaptureSnapshot(long logIndex) { + public boolean shouldCaptureSnapshot(final long logIndex) { return false; } }