+ @SuppressWarnings("unchecked")
+ @Test
+ public void testAppendAndPersisWithDuplicateEntry() throws Exception {
+ ReplicatedLog log = ReplicatedLogImpl.newInstance(context);
+
+ Procedure<ReplicatedLogEntry> mockCallback = Mockito.mock(Procedure.class);
+ ReplicatedLogEntry logEntry = new SimpleReplicatedLogEntry(1, 1, new MockPayload("1"));
+
+ log.appendAndPersist(logEntry, mockCallback, true);
+
+ verifyPersist(logEntry);
+
+ assertEquals("size", 1, log.size());
+
+ reset(mockPersistence, mockCallback);
+
+ log.appendAndPersist(logEntry, mockCallback, true);
+
+ verifyNoMoreInteractions(mockPersistence, mockCallback);
+
+ assertEquals("size", 1, log.size());
+ }
+