### Question:
DeleteProjectFilesTask extends Task { private void deleteFolder(DomainFolder folder, TaskMonitor monitor) throws CancelledException { for (DomainFolder subFolder : folder.getFolders()) { monitor.checkCanceled(); if (!selectedFolders.contains(subFolder)) { deleteFolder(subFolder, monitor); } } for (DomainFile file : folder.getFiles()) { monitor.checkCanceled(); if (!selectedFiles.contains(file)) { deleteFile(file); monitor.incrementProgress(1); } } deleteEmptyFolder(folder); } DeleteProjectFilesTask(Set<DomainFolder> folders, Set<DomainFile> files, int fileCount,
			Component parent); @Override void run(TaskMonitor monitor); synchronized int getFileCount(); synchronized int getTotalDeleted();  }### Answer:
@Test public void testDeleteFolder() { createDeleteAction(CollectionUtils.asSet(a, b), null); runAction(); confirmDelete(); assertSummaryDialog(false); waitForTask(); assertNull(root.getFolder("a")); assertNull(root.getFolder("b")); assertNotNull(root.getFolder("c")); }