private void assertEntries(Map<Long, ProducerStateEntry> expected, List<ProducerStateEntry> actual) {
        Map<Long, ProducerStateEntry> actualEntryMap =
                actual.stream().collect(Collectors.toMap(ProducerStateEntry::producerId, p -> p));
        assertEquals(expected.keySet(), actualEntryMap.keySet());
        expected.forEach((producerId, expectedEntry) -> {
            ProducerStateEntry actualEntry = actualEntryMap.get(producerId);
            assertProducerStateEntry(expectedEntry, actualEntry);
        });
    }
Test that marking a snapshot for deletion when the file has already been deleted
returns None instead of the SnapshotFile. The snapshot file should be removed from
the in-memory state of the ProducerStateManager. This scenario can occur during log
recovery when the intermediate ProducerStateManager instance deletes a file without
updating the state of the "real" ProducerStateManager instance which is passed to the Log.
storage/src/test/java/org/apache/kafka/storage/internals/log/ProducerStateManagerTest.java