SweepableCells extends SweepQueueTable { void deleteDedicatedRows(DedicatedRows dedicatedRows) { List<byte[]> rows = dedicatedRows.getDedicatedRows() .stream() .map(SweepableCellsRow::persistToBytes) .collect(Collectors.toList()); deleteRows(rows); } SweepableCells(
            KeyValueService kvs,
            WriteInfoPartitioner partitioner,
            TargetedSweepMetrics metrics,
            TransactionService transactionService);   }
@Test public void cleanupMultipleDedicatedRows() { useSingleShard(); long timestamp = TS + 1; DedicatedRows dedicatedRows = DedicatedRows.of(LongStream.range(0, 3) .mapToObj(rowNumber -> ImmutableTargetedSweepMetadata.builder() .conservative(true) .dedicatedRow(true) .dedicatedRowNumber(rowNumber) .shard(0) .build() .persistToBytes()) .map(metadata -> SweepableCellsRow.of(timestamp, metadata)) .collect(Collectors.toList())); writeCommittedConservativeRowForTimestamp(timestamp, MAX_CELLS_DEDICATED * 2 + 1); sweepableCells.deleteDedicatedRows(dedicatedRows); verifyRowsDeletedFromSweepQueue(dedicatedRows.getDedicatedRows()); verify(spiedKvs, times(1)).deleteRows(eq(SWEEP_QUEUE_TABLE), any()); }