+ MockReplicatedLogEntry logEntry2 = new MockReplicatedLogEntry(1, 2, new MockPayload("2"));
+ Procedure<ReplicatedLogEntry> 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);
+