Skip to content

Commit ae636ea

Browse files
committed
changed attribute type
1 parent cf8fd3d commit ae636ea

File tree

3 files changed

+38
-14
lines changed

3 files changed

+38
-14
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ configure(allprojects) {
2525
testNgVersion = '7.9.0'
2626
loggerVersion = '2.20.0'
2727
jnaVersion = '5.3.1'
28-
version '3.0.2'
28+
version '3.0.3'
2929
}
3030
group "$groupName"
3131

src/main/java/com/automationanywhere/botcommand/actions/device/DeleteFilesFolders.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public class DeleteFilesFolders {
4343

4444
@Execute
4545
public void action(
46-
@Idx(index = "1", type = AttributeType.TEXT)
46+
@Idx(index = "1", type = AttributeType.FILE)
4747
@Pkg(label = "Enter base folder path", description = "Files/Folders will be scanned within this folder " +
4848
"for deletion")
4949
@NotEmpty
@@ -179,7 +179,13 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
179179
}
180180
}
181181
directoriesToDelete.removeAll(directoriesToSkipDeletion);
182-
deleteFileDirectories(filesToDelete, directoriesToDelete, unableToDeleteBehavior);
182+
if (selectMethod.equalsIgnoreCase(PROCESS_ALL_TYPES)) {
183+
delete(filesToDelete, unableToDeleteBehavior);
184+
delete(directoriesToDelete, unableToDeleteBehavior);
185+
} else if (selectMethod.equalsIgnoreCase(PROCESS_ONLY_FILE_TYPE)) {
186+
delete(filesToDelete, unableToDeleteBehavior);
187+
}
188+
183189
} catch (IOException e) {
184190
if (unableToDeleteBehavior.equalsIgnoreCase(ERROR_THROW)) {
185191
throw new BotCommandException(e.getMessage());
@@ -230,8 +236,8 @@ private boolean shouldSkipFile(Path path, String filePattern) {
230236
return Files.isRegularFile(path) && Pattern.matches(filePattern, path.toFile().getAbsolutePath());
231237
}
232238

233-
private static void deleteFileDirectories(Set<Path> filesToDelete, Set<Path> directoriesToDelete,
234-
String unableToDeleteBehavior) {
239+
private static void delete(Set<Path> filesToDelete,
240+
String unableToDeleteBehavior) {
235241
for (Path filePath : filesToDelete) {
236242
try {
237243
FileUtils.forceDelete(filePath.toFile());
@@ -241,15 +247,6 @@ private static void deleteFileDirectories(Set<Path> filesToDelete, Set<Path> dir
241247
}
242248
}
243249
}
244-
for (Path dirPath : directoriesToDelete) {
245-
try {
246-
FileUtils.forceDelete(dirPath.toFile());
247-
} catch (IOException e) {
248-
if (unableToDeleteBehavior.equalsIgnoreCase(ERROR_THROW)) {
249-
throw new BotCommandException(e.getMessage());
250-
}
251-
}
252-
}
253250
}
254251

255252
}

src/test/java/device/DeleteFilesFoldersTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public void testDeleteFilesAndDirectories() {
7373
Collection<File> filesAndDirs = FileUtils.listFilesAndDirs(testDirectory,
7474
TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE);
7575
filesAndDirs.remove(testDirectory);
76+
System.out.println(filesAndDirs);
7677
Assert.assertEquals(filesAndDirs.size(), 0, "Test directory should be " +
7778
"empty after deletion");
7879
}
@@ -95,6 +96,7 @@ public void testNotDeleteFilesAndDirectories() {
9596
Collection<File> filesAndDirs = FileUtils.listFilesAndDirs(testDirectory,
9697
TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE);
9798
filesAndDirs.remove(testDirectory);
99+
System.out.println(filesAndDirs);
98100
Assert.assertEquals(filesAndDirs.size(), 3, "Test directory should be " +
99101
"intact as threshold does not match");
100102
}
@@ -117,6 +119,7 @@ public void testSkipDirectoryDeletion() {
117119
Collection<File> filesAndDirs = FileUtils.listFilesAndDirs(testDirectory,
118120
TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE);
119121
filesAndDirs.remove(testDirectory);
122+
System.out.println(filesAndDirs);
120123
Assert.assertEquals(filesAndDirs.size(), 2, "Test directory must contain skipped directory and its children");
121124
}
122125

@@ -138,9 +141,32 @@ public void testSkipFileDeletion() {
138141
Collection<File> filesAndDirs = FileUtils.listFilesAndDirs(testDirectory,
139142
TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE);
140143
filesAndDirs.remove(testDirectory);
144+
System.out.println(filesAndDirs);
141145
Assert.assertEquals(filesAndDirs.size(), 3, "Test directory must contain directory and its skipped children");
142146
}
143147

148+
@Test
149+
public void testSkipFileTypeDeletion() {
150+
Boolean recursive = Boolean.TRUE;
151+
Number thresholdNumber = 0;//all files and folders will match
152+
Boolean skipFolders = false;
153+
String skipFolderPathPattern = "";
154+
Boolean skipFiles = false;
155+
String skipFilePathPattern = "";
156+
157+
deleteFilesFolders.action(TEST_DIRECTORY_PATH, PROCESS_ONLY_FILE_TYPE, recursive, thresholdNumber,
158+
THRESHOLD_UNIT_DAY, THRESHOLD_CRITERIA_CREATION,
159+
skipFolders, skipFolderPathPattern, skipFiles, skipFilePathPattern, ERROR_IGNORE);
160+
161+
File testDirectory = new File(TEST_DIRECTORY_PATH);
162+
Assert.assertTrue(testDirectory.exists());
163+
Collection<File> filesAndDirs = FileUtils.listFilesAndDirs(testDirectory,
164+
TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE);
165+
filesAndDirs.remove(testDirectory);
166+
System.out.println(filesAndDirs);
167+
Assert.assertEquals(filesAndDirs.size(), 1, "Only directory should be present");
168+
}
169+
144170
@Test
145171
public void testSkipFileDeletionSingleFolder() {
146172
Boolean recursive = Boolean.TRUE;
@@ -159,6 +185,7 @@ public void testSkipFileDeletionSingleFolder() {
159185
Collection<File> filesAndDirs = FileUtils.listFilesAndDirs(testDirectory,
160186
TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE);
161187
filesAndDirs.remove(testDirectory);
188+
System.out.println(filesAndDirs);
162189
Assert.assertEquals(filesAndDirs.size(), 2, "Test directory must contain directory and its skipped children");
163190
}
164191
}

0 commit comments

Comments
 (0)