@Test
public void committedWritesAreAddedToSweepQueue() {
List<WriteReference> table1Writes = ImmutableList.of(
WriteReference.write(TABLE_CONS, Cell.create("a".getBytes(), "b".getBytes())),
WriteReference.write(TABLE_CONS, Cell.create("a".getBytes(), "c".getBytes())),
WriteReference.tombstone(TABLE_CONS, Cell.create("a".getBytes(), "d".getBytes())),
WriteReference.write(TABLE_CONS, Cell.create("b".getBytes(), "d".getBytes())));
List<WriteReference> table2Writes = ImmutableList.of(
WriteReference.write(TABLE_THOR, Cell.create("w".getBytes(), "x".getBytes())),
WriteReference.write(TABLE_THOR, Cell.create("y".getBytes(), "z".getBytes())),
WriteReference.tombstone(TABLE_THOR, Cell.create("z".getBytes(), "z".getBytes())));
long startTimestamp = txManager.runTaskWithRetry(txn -> {
table1Writes.forEach(write -> put(txn, write));
table2Writes.forEach(write -> put(txn, write));
return txn.getTimestamp();
});
List<WriteInfo> expectedWrites = Stream.concat(table1Writes.stream(), table2Writes.stream())
.map(writeRef -> WriteInfo.of(writeRef, startTimestamp))
.collect(Collectors.toList());
assertThat(getEnqueuedWritesNumber(1)).hasSameElementsAs(expectedWrites);
verify(sweepQueue, times(1)).enqueue(anyList());
}