### Question:
FileSingleStreamSpillerFactory implements SingleStreamSpillerFactory { @PostConstruct public void cleanupOldSpillFiles() { spillPaths.forEach(FileSingleStreamSpillerFactory::cleanupOldSpillFiles); } @Inject  FileSingleStreamSpillerFactory(Metadata metadata, SpillerStats spillerStats, FeaturesConfig featuresConfig, NodeSpillConfig nodeSpillConfig); @VisibleForTesting  FileSingleStreamSpillerFactory(
            ListeningExecutorService executor,
            BlockEncodingSerde blockEncodingSerde,
            SpillerStats spillerStats,
            List<Path> spillPaths,
            double maxUsedSpaceThreshold,
            boolean spillCompressionEnabled,
            boolean spillEncryptionEnabled); @PostConstruct void cleanupOldSpillFiles(); @PreDestroy void destroy(); @Override SingleStreamSpiller create(List<Type> types, SpillContext spillContext, LocalMemoryContext memoryContext);  }### Answer:
@Test public void testCleanupOldSpillFiles() throws Exception { List<Path> spillPaths = ImmutableList.of(spillPath1.toPath(), spillPath2.toPath()); spillPath1.mkdirs(); spillPath2.mkdirs(); java.nio.file.Files.createTempFile(spillPath1.toPath(), SPILL_FILE_PREFIX, SPILL_FILE_SUFFIX); java.nio.file.Files.createTempFile(spillPath1.toPath(), SPILL_FILE_PREFIX, SPILL_FILE_SUFFIX); java.nio.file.Files.createTempFile(spillPath1.toPath(), SPILL_FILE_PREFIX, "blah"); java.nio.file.Files.createTempFile(spillPath2.toPath(), SPILL_FILE_PREFIX, SPILL_FILE_SUFFIX); java.nio.file.Files.createTempFile(spillPath2.toPath(), "blah", SPILL_FILE_SUFFIX); java.nio.file.Files.createTempFile(spillPath2.toPath(), "blah", "blah"); assertEquals(listFiles(spillPath1.toPath()).size(), 3); assertEquals(listFiles(spillPath2.toPath()).size(), 3); FileSingleStreamSpillerFactory spillerFactory = spillerFactoryFactory(spillPaths); spillerFactory.cleanupOldSpillFiles(); assertEquals(listFiles(spillPath1.toPath()).size(), 1); assertEquals(listFiles(spillPath2.toPath()).size(), 2); }