Return-Path: Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: (qmail 77330 invoked from network); 10 Jan 2010 00:49:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 10 Jan 2010 00:49:17 -0000 Received: (qmail 89121 invoked by uid 500); 10 Jan 2010 00:49:16 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 89030 invoked by uid 500); 10 Jan 2010 00:49:16 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 89021 invoked by uid 99); 10 Jan 2010 00:49:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 10 Jan 2010 00:49:16 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 10 Jan 2010 00:49:15 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B32FE2388906; Sun, 10 Jan 2010 00:48:55 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r897583 - /commons/proper/io/trunk/src/test/org/apache/commons/io/DirectoryWalkerTestCase.java Date: Sun, 10 Jan 2010 00:48:55 -0000 To: commits@commons.apache.org From: sebb@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100110004855.B32FE2388906@eris.apache.org> 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 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 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 { + + protected TestFileFinderString(FileFilter filter, int depthLimit) { + super(filter, depthLimit); + } + + /** find files. */ + protected List find(File startDirectory) { + List results = new ArrayList(); + 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 results) { + results.add(file.toString()); + } + } + }