public static async Task EmptyLogEntry() { IPersistentState auditTrail = new ConsensusOnlyState(); await auditTrail.AppendAsync(new EmptyLogEntry(10)); Equal(1, auditTrail.GetLastIndex(false)); await auditTrail.CommitAsync(1L); Equal(1, auditTrail.GetLastIndex(true)); Func <IReadOnlyList <IRaftLogEntry>, long?, CancellationToken, ValueTask <Missing> > checker = static (entries, snapshotIndex, token) =>
public static async Task EmptyLogEntry() { IPersistentState auditTrail = new ConsensusOnlyState(); await auditTrail.AppendAsync(new EmptyEntry(10)); Equal(1, auditTrail.GetLastIndex(false)); await auditTrail.CommitAsync(1L); Equal(1, auditTrail.GetLastIndex(true)); Func <IReadOnlyList <IRaftLogEntry>, long?, ValueTask> checker = (entries, snapshotIndex) => { Equal(1, snapshotIndex); Equal(10, entries[0].Term); Equal(0, entries[0].Length); True(entries[0].IsReusable); True(entries[0].IsSnapshot); return(new ValueTask()); }; await auditTrail.ReadAsync <TestReader, DBNull>(checker, 1L); }