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%2FReplicatedLogImplTest.java;h=1caef35ccc08dedf1d6c1b6bd55e768eae858046;hb=92cbb07ef81943b0740ba7c8915001ac6785f560;hp=9bef4fb750f3b2326c54859e9aeeb54cab2dd167;hpb=a5ede745694ca779d8629952e1a1069011877558;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/ReplicatedLogImplTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/ReplicatedLogImplTest.java index 9bef4fb750..1caef35ccc 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/ReplicatedLogImplTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/ReplicatedLogImplTest.java @@ -15,7 +15,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import akka.japi.Procedure; import java.util.Collections; -import java.util.function.Supplier; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.hamcrest.Matcher; @@ -30,8 +29,8 @@ import org.mockito.internal.matchers.Same; 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.DeleteEntries; import org.opendaylight.controller.cluster.raft.behaviors.RaftActorBehavior; +import org.opendaylight.controller.cluster.raft.persisted.DeleteEntries; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -78,24 +77,48 @@ public class ReplicatedLogImplTest { public void testAppendAndPersistExpectingNoCapture() throws Exception { ReplicatedLog log = ReplicatedLogImpl.newInstance(context); - MockReplicatedLogEntry logEntry = new MockReplicatedLogEntry(1, 1, new MockPayload("1")); + MockReplicatedLogEntry logEntry1 = new MockReplicatedLogEntry(1, 1, new MockPayload("1")); - log.appendAndPersist(logEntry); + log.appendAndPersist(logEntry1); - verifyPersist(logEntry); + verifyPersist(logEntry1); assertEquals("size", 1, log.size()); reset(mockPersistence); + MockReplicatedLogEntry logEntry2 = new MockReplicatedLogEntry(1, 2, new MockPayload("2")); + Procedure mockCallback = Mockito.mock(Procedure.class); + log.appendAndPersist(logEntry2, mockCallback); + + verifyPersist(logEntry2); + + verify(mockCallback).apply(same(logEntry2)); + + assertEquals("size", 2, log.size()); + } + + @SuppressWarnings("unchecked") + @Test + public void testAppendAndPersisWithDuplicateEntry() throws Exception { + ReplicatedLog log = ReplicatedLogImpl.newInstance(context); + Procedure mockCallback = Mockito.mock(Procedure.class); + MockReplicatedLogEntry logEntry = new MockReplicatedLogEntry(1, 1, new MockPayload("1")); + log.appendAndPersist(logEntry, mockCallback); verifyPersist(logEntry); - verify(mockCallback).apply(same(logEntry)); + assertEquals("size", 1, log.size()); - assertEquals("size", 2, log.size()); + reset(mockPersistence, mockCallback); + + log.appendAndPersist(logEntry, mockCallback); + + verifyNoMoreInteractions(mockPersistence, mockCallback); + + assertEquals("size", 1, log.size()); } @Test @@ -125,12 +148,7 @@ public class ReplicatedLogImplTest { public void testAppendAndPersistExpectingCaptureDueToDataSize() throws Exception { doReturn(1L).when(mockBehavior).getReplicatedToAllIndex(); - context.setTotalMemoryRetriever(new Supplier() { - @Override - public Long get() { - return 100L; - } - }); + context.setTotalMemoryRetriever(() -> 100); ReplicatedLog log = ReplicatedLogImpl.newInstance(context);