You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2010/01/10 01:48:55 UTC

svn commit: r897583 - /commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java

Author: sebb
Date: Sun Jan 10 00:48:55 2010
New Revision: 897583

URL: http://svn.apache.org/viewvc?rev=897583&view=rev
Log:
Test File filtering using a String results list

Modified:
    commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java

Modified: commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java?rev=897583&r1=897582&r2=897583&view=diff
==============================================================================
--- commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java (original)
+++ commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java Sun Jan 10 00:48:55 2010
@@ -241,6 +241,12 @@
         }
     }
 
+    private void checkContainsString(String prefix, File[] files, Collection<String> results) {
+        for (int i = 0; i < files.length; i++) {
+            assertTrue(prefix + "["+i+"] " + files[i], results.contains(files[i].toString()));
+        }
+    }
+
     /**
      * Extract the directories.
      */
@@ -365,6 +371,16 @@
 
     }
 
+    /**
+     * Test Filtering
+     */
+    public void testFilterString() {
+        List<String> results = new TestFileFinderString(dirsAndFilesFilter, -1).find(javaDir);
+        assertEquals("Result Size", (outputFiles.length + ioFiles.length), results.size());
+        checkContainsString("IO File", ioFiles, results);
+        checkContainsString("Output File", outputFiles, results);
+    }
+
     // ------------ Test DirectoryWalker implementation --------------------------
 
     /**
@@ -534,4 +550,32 @@
         }
     }
 
+    /**
+     * Test DirectoryWalker implementation that finds files in a directory hierarchy
+     * applying a file filter.
+     */
+    private static class TestFileFinderString extends DirectoryWalker<String> {
+
+        protected TestFileFinderString(FileFilter filter, int depthLimit) {
+            super(filter, depthLimit);
+        }
+
+        /** find files. */
+        protected List<String> find(File startDirectory) {
+           List<String> results = new ArrayList<String>();
+           try {
+               walk(startDirectory, results);
+           } catch(IOException ex) {
+               Assert.fail(ex.toString());
+           }
+           return results;
+        }
+
+        /** Handles a file by adding the File to the result set. */
+        @Override
+        protected void handleFile(File file, int depth, Collection<String> results) {
+            results.add(file.toString());
+        }
+    }
+
 }