You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2025/05/06 15:01:50 UTC

(commons-io) 01/02: Let JUnit manage deletion of temporary files and directories

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git

commit 32d229e3af2b5ee938c6b51664d03ce81697dde7
Author: Gary D. Gregory <ga...@gmail.com>
AuthorDate: Tue May 6 11:00:47 2025 -0400

    Let JUnit manage deletion of temporary files and directories
    
    - Remove bad assertion on Windows
    - Reduce vertical whitespace
---
 .../java/org/apache/commons/io/FileUtilsTest.java  | 184 ++++++++-------------
 1 file changed, 73 insertions(+), 111 deletions(-)

diff --git a/src/test/java/org/apache/commons/io/FileUtilsTest.java b/src/test/java/org/apache/commons/io/FileUtilsTest.java
index 580e0bbd1..5c63c8915 100644
--- a/src/test/java/org/apache/commons/io/FileUtilsTest.java
+++ b/src/test/java/org/apache/commons/io/FileUtilsTest.java
@@ -2148,36 +2148,28 @@ public void testIterateFilesAndDirs() throws IOException {
         assertTrue(subDir3.mkdir());
         assertTrue(subDir4.mkdir());
         final File someFile = new File(subDir2, "a.txt");
-        final WildcardFileFilter fileFilterAllFiles =  WildcardFileFilter.builder().setWildcards("*.*").get();
+        final WildcardFileFilter fileFilterAllFiles = WildcardFileFilter.builder().setWildcards("*.*").get();
         final WildcardFileFilter fileFilterAllDirs = WildcardFileFilter.builder().setWildcards("*").get();
         final WildcardFileFilter fileFilterExtTxt = WildcardFileFilter.builder().setWildcards("*.txt").get();
-        try {
-            try (OutputStream output = new BufferedOutputStream(Files.newOutputStream(someFile.toPath()))) {
-                TestUtils.generateTestData(output, 100);
-            }
-            //
-            // "*.*" and "*"
-            Collection<File> expectedFilesAndDirs = Arrays.asList(subDir1, subDir2, someFile, subDir3, subDir4);
-            iterateFilesAndDirs(subDir1, fileFilterAllFiles, fileFilterAllDirs, expectedFilesAndDirs);
-            //
-            // "*.txt" and "*"
-            expectedFilesAndDirs = Arrays.asList(subDir1, subDir2, someFile, subDir3, subDir4);
-            iterateFilesAndDirs(subDir1, fileFilterExtTxt, fileFilterAllDirs, expectedFilesAndDirs);
-            //
-            // "*.*" and "subdir2"
-            expectedFilesAndDirs = Arrays.asList(subDir1, subDir2, someFile);
-            iterateFilesAndDirs(subDir1, fileFilterAllFiles, new NameFileFilter("subdir2"), expectedFilesAndDirs);
-            //
-            // "*.txt" and "subdir2"
-            expectedFilesAndDirs = Arrays.asList(subDir1, subDir2, someFile);
-            iterateFilesAndDirs(subDir1, fileFilterExtTxt, new NameFileFilter("subdir2"), expectedFilesAndDirs);
-        } finally {
-            someFile.delete();
-            subDir4.delete();
-            subDir3.delete();
-            subDir2.delete();
-            subDir1.delete();
+        try (OutputStream output = new BufferedOutputStream(Files.newOutputStream(someFile.toPath()))) {
+            TestUtils.generateTestData(output, 100);
         }
+        //
+        // "*.*" and "*"
+        Collection<File> expectedFilesAndDirs = Arrays.asList(subDir1, subDir2, someFile, subDir3, subDir4);
+        iterateFilesAndDirs(subDir1, fileFilterAllFiles, fileFilterAllDirs, expectedFilesAndDirs);
+        //
+        // "*.txt" and "*"
+        expectedFilesAndDirs = Arrays.asList(subDir1, subDir2, someFile, subDir3, subDir4);
+        iterateFilesAndDirs(subDir1, fileFilterExtTxt, fileFilterAllDirs, expectedFilesAndDirs);
+        //
+        // "*.*" and "subdir2"
+        expectedFilesAndDirs = Arrays.asList(subDir1, subDir2, someFile);
+        iterateFilesAndDirs(subDir1, fileFilterAllFiles, new NameFileFilter("subdir2"), expectedFilesAndDirs);
+        //
+        // "*.txt" and "subdir2"
+        expectedFilesAndDirs = Arrays.asList(subDir1, subDir2, someFile);
+        iterateFilesAndDirs(subDir1, fileFilterExtTxt, new NameFileFilter("subdir2"), expectedFilesAndDirs);
     }
 
     @Test
@@ -2197,48 +2189,36 @@ public void testListFiles() throws Exception {
         final File subDir2 = new File(subDir, "subdir");
         subDir.mkdir();
         subDir2.mkdir();
-        try {
-
-            final String[] expectedFileNames = { "a.txt", "b.txt", "c.txt", "d.txt", "e.txt", "f.txt" };
-            final int[] fileSizes = { 123, 234, 345, 456, 678, 789 };
-
-            for (int i = 0; i < expectedFileNames.length; ++i) {
-                final File theFile = new File(subDir, expectedFileNames[i]);
-                if (!theFile.getParentFile().exists()) {
-                    fail("Cannot create file " + theFile + " as the parent directory does not exist");
-                }
-                try (BufferedOutputStream output = new BufferedOutputStream(Files.newOutputStream(theFile.toPath()))) {
-                    TestUtils.generateTestData(output, fileSizes[i]);
-                }
+        final String[] expectedFileNames = { "a.txt", "b.txt", "c.txt", "d.txt", "e.txt", "f.txt" };
+        final int[] fileSizes = { 123, 234, 345, 456, 678, 789 };
+        for (int i = 0; i < expectedFileNames.length; ++i) {
+            final File theFile = new File(subDir, expectedFileNames[i]);
+            if (!theFile.getParentFile().exists()) {
+                fail("Cannot create file " + theFile + " as the parent directory does not exist");
             }
-
-            // @formatter:off
+            try (BufferedOutputStream output = new BufferedOutputStream(Files.newOutputStream(theFile.toPath()))) {
+                TestUtils.generateTestData(output, fileSizes[i]);
+            }
+        }
+        // @formatter:off
             final Collection<File> actualFiles = FileUtils.listFiles(subDir,
                     WildcardFileFilter.builder().setWildcards("*.*").get(),
                     WildcardFileFilter.builder().setWildcards("*").get());
             // @formatter:on
-
-            final int count = actualFiles.size();
-            final Object[] fileObjs = actualFiles.toArray();
-
-            assertEquals(expectedFileNames.length, actualFiles.size(), actualFiles::toString);
-
-            final Map<String, String> foundFileNames = new HashMap<>();
-
-            for (int i = 0; i < count; ++i) {
-                boolean found = false;
-                for (int j = 0; !found && j < expectedFileNames.length; ++j) {
-                    if (expectedFileNames[j].equals(((File) fileObjs[i]).getName())) {
-                        foundFileNames.put(expectedFileNames[j], expectedFileNames[j]);
-                        found = true;
-                    }
+        final int count = actualFiles.size();
+        final Object[] fileObjs = actualFiles.toArray();
+        assertEquals(expectedFileNames.length, actualFiles.size(), actualFiles::toString);
+        final Map<String, String> foundFileNames = new HashMap<>();
+        for (int i = 0; i < count; ++i) {
+            boolean found = false;
+            for (int j = 0; !found && j < expectedFileNames.length; ++j) {
+                if (expectedFileNames[j].equals(((File) fileObjs[i]).getName())) {
+                    foundFileNames.put(expectedFileNames[j], expectedFileNames[j]);
+                    found = true;
                 }
             }
-
-            assertEquals(foundFileNames.size(), expectedFileNames.length, foundFileNames::toString);
-        } finally {
-            subDir.delete();
         }
+        assertEquals(foundFileNames.size(), expectedFileNames.length, foundFileNames::toString);
     }
 
     @Test
@@ -2256,37 +2236,29 @@ public void testListFilesOnlyNoDirs() throws IOException {
     @Test
     public void testListFilesWithDirs() throws IOException {
         final File srcDir = tempDirFile;
-
         final File subDir1 = new File(srcDir, "subdir");
         final File subDir2 = new File(subDir1, "subdir2");
         subDir1.mkdir();
         subDir2.mkdir();
-        try {
-            final File someFile = new File(subDir2, "a.txt");
-            if (!someFile.getParentFile().exists()) {
-                fail("Cannot create file " + someFile + " as the parent directory does not exist");
-            }
-            try (BufferedOutputStream output = new BufferedOutputStream(Files.newOutputStream(someFile.toPath()))) {
-                TestUtils.generateTestData(output, 100);
-            }
-
-            final File subDir3 = new File(subDir2, "subdir3");
-            subDir3.mkdir();
-
-            // @formatter:off
+        final File someFile = new File(subDir2, "a.txt");
+        if (!someFile.getParentFile().exists()) {
+            fail("Cannot create file " + someFile + " as the parent directory does not exist");
+        }
+        try (BufferedOutputStream output = new BufferedOutputStream(Files.newOutputStream(someFile.toPath()))) {
+            TestUtils.generateTestData(output, 100);
+        }
+        final File subDir3 = new File(subDir2, "subdir3");
+        subDir3.mkdir();
+        // @formatter:off
             final Collection<File> files = FileUtils.listFilesAndDirs(subDir1,
                     WildcardFileFilter.builder().setWildcards("*.*").get(),
                     WildcardFileFilter.builder().setWildcards("*").get());
             // @formatter:on
-
-            assertEquals(4, files.size());
-            assertTrue(files.contains(subDir1), "Should contain the directory.");
-            assertTrue(files.contains(subDir2), "Should contain the directory.");
-            assertTrue(files.contains(someFile), "Should contain the file.");
-            assertTrue(files.contains(subDir3), "Should contain the directory.");
-        } finally {
-            subDir1.delete();
-        }
+        assertEquals(4, files.size());
+        assertTrue(files.contains(subDir1), "Should contain the directory.");
+        assertTrue(files.contains(subDir2), "Should contain the directory.");
+        assertTrue(files.contains(someFile), "Should contain the file.");
+        assertTrue(files.contains(subDir3), "Should contain the directory.");
     }
 
     @Test
@@ -2351,7 +2323,7 @@ public void testMoveDirectory_Errors() throws Exception {
     }
 
     @Test
-    public void testMoveDirectory_Rename() throws Exception {
+    public void testMoveDirectoryRename() throws Exception {
         final File dir = tempDirFile;
         final File src = new File(dir, "testMoveDirectory1Source");
         final File testDir = new File(src, "foo");
@@ -2412,7 +2384,7 @@ public void testMoveDirectoryToDirectory() throws Exception {
     }
 
     @Test
-    public void testMoveDirectoryToDirectory_Errors() throws Exception {
+    public void testMoveDirectoryToDirectoryErrors() throws Exception {
         assertThrows(NullPointerException.class, () -> FileUtils.moveDirectoryToDirectory(null, new File("foo"), true));
         assertThrows(NullPointerException.class, () -> FileUtils.moveDirectoryToDirectory(new File("foo"), null, true));
         final File testFile1 = new File(tempDirFile, "testMoveFileFile1");
@@ -2592,7 +2564,7 @@ public void testMoveFileToDirectory() throws Exception {
     }
 
     @Test
-    public void testMoveFileToDirectory_Errors() throws Exception {
+    public void testMoveFileToDirectoryErrors() throws Exception {
         assertThrows(NullPointerException.class, () -> FileUtils.moveFileToDirectory(null, new File("foo"), true));
         assertThrows(NullPointerException.class, () -> FileUtils.moveFileToDirectory(new File("foo"), null, true));
         final File testFile1 = new File(tempDirFile, "testMoveFileFile1");
@@ -2818,39 +2790,29 @@ public void testReadFileToStringWithEncoding() throws Exception {
     }
 
     @Test
-    public void testReadLines() throws Exception {
+    public void testReadLinesUTF8() throws Exception {
         final File file = TestUtils.newFile(tempDirFile, "lines.txt");
-        try {
-            final String[] data = { "hello", "\u1234", "", "this is", "some text" };
-            TestUtils.createLineFileUtf8(file, data);
-            List<String> lines = FileUtils.readLines(file, UTF_8);
-            assertEquals(Arrays.asList(data), lines);
-            lines = FileUtils.readLines(file, (Charset) null);
-            assertEquals(Arrays.asList(data), lines);
-        } finally {
-            TestUtils.deleteFile(file);
-        }
+        final String[] data = { "hello", "\u1234", "", "this is", "some text" };
+        TestUtils.createLineFileUtf8(file, data);
+        final List<String> lines = FileUtils.readLines(file, UTF_8);
+        assertEquals(Arrays.asList(data), lines);
     }
 
     @Test
     public void testReadLinesDefaults() throws Exception {
         final File file = TestUtils.newFile(tempDirFile, "lines.txt");
-        try {
-            final String[] data = { "hello", "this is", "some text" };
-            TestUtils.createLineFileUtf8(file, data);
-            final List<String> lines1 = FileUtils.readLines(file);
-            final List<String> lines2 = FileUtils.readLines(file, (Charset) null);
-            final List<String> lines3 = FileUtils.readLines(file, Charset.defaultCharset());
-            assertEquals(lines1, Arrays.asList(data));
-            assertEquals(lines1, lines2);
-            assertEquals(lines1, lines3);
-        } finally {
-            TestUtils.deleteFile(file);
-        }
+        final String[] data = { "hello", "this is", "some text" };
+        TestUtils.createLineFileUtf8(file, data);
+        final List<String> lines1 = FileUtils.readLines(file);
+        final List<String> lines2 = FileUtils.readLines(file, (Charset) null);
+        final List<String> lines3 = FileUtils.readLines(file, Charset.defaultCharset());
+        assertEquals(lines1, Arrays.asList(data));
+        assertEquals(lines1, lines2);
+        assertEquals(lines1, lines3);
     }
 
     @Test
-    public void testReadLines_Errors() {
+    public void testReadLinesErrors() {
         assertThrows(NullPointerException.class, () -> FileUtils.readLines(null));
         assertThrows(IOException.class, () -> FileUtils.readLines(new File("non-exsistent")));
         assertThrows(IOException.class, () -> FileUtils.readLines(tempDirFile));