You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by je...@apache.org on 2003/11/22 21:47:30 UTC
cvs commit: jakarta-commons-sandbox/io/src/test/org/apache/commons/io FileUtilsListFilesTestCase.java
jeremias 2003/11/22 12:47:30
Added: io/src/test/org/apache/commons/io
FileUtilsListFilesTestCase.java
Log:
Testcase for new FileUtils.listFiles() methods
Revision Changes Path
1.1 jakarta-commons-sandbox/io/src/test/org/apache/commons/io/FileUtilsListFilesTestCase.java
Index: FileUtilsListFilesTestCase.java
===================================================================
package org.apache.commons.io;
import java.io.File;
import java.util.Collection;
import java.util.Iterator;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.testtools.FileBasedTestCase;
/**
* Test cases for FileUtils.listFiles() methods.
*/
public class FileUtilsListFilesTestCase extends FileBasedTestCase {
public FileUtilsListFilesTestCase(String name) {
super(name);
}
private File getLocalTestDirectory() {
return new File(getTestDirectory(), "list-files");
}
/**
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
File dir = getLocalTestDirectory();
if (dir.exists()) {
FileUtils.deleteDirectory(dir);
}
dir.mkdirs();
File file = new File(dir, "dummy-build.xml");
FileUtils.touch(file);
dir = new File(dir, "subdir1");
dir.mkdirs();
file = new File(dir, "dummy-build.xml");
FileUtils.touch(file);
file = new File(dir, "dummy-readme.txt");
FileUtils.touch(file);
dir = new File(dir, "subsubdir1");
dir.mkdirs();
file = new File(dir, "dummy-file.txt");
FileUtils.touch(file);
file = new File(dir, "dummy-index.html");
FileUtils.touch(file);
dir = dir.getParentFile();
dir = new File(dir, "CVS");
dir.mkdirs();
file = new File(dir, "Entries");
FileUtils.touch(file);
file = new File(dir, "Repository");
FileUtils.touch(file);
}
/**
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
File dir = getLocalTestDirectory();
FileUtils.deleteDirectory(dir);
}
private Collection filesToFilenames(Collection files) {
Collection filenames = new java.util.ArrayList(files.size());
Iterator i = files.iterator();
while (i.hasNext()) {
filenames.add(((File)i.next()).getName());
}
return filenames;
}
public void testListFilesByExtension() throws Exception {
String[] extensions = {"xml", "txt"};
Collection files = FileUtils.listFiles(getLocalTestDirectory(), extensions, false);
assertEquals(1, files.size());
Collection filenames = filesToFilenames(files);
assertTrue(filenames.contains("dummy-build.xml"));
files = FileUtils.listFiles(getLocalTestDirectory(), extensions, true);
filenames = filesToFilenames(files);
assertEquals(4, filenames.size());
assertTrue(filenames.contains("dummy-file.txt"));
assertFalse(filenames.contains("dumy-index.html"));
}
public void testListFiles() throws Exception {
Collection files;
Collection filenames;
IOFileFilter fileFilter;
IOFileFilter dirFilter;
//First, find non-recursively
fileFilter = FileFilterUtils.trueFileFilter();
files = FileUtils.listFiles(getLocalTestDirectory(), fileFilter, null);
filenames = filesToFilenames(files);
assertTrue("'dummy-build.xml' is missing", filenames.contains("dummy-build.xml"));
assertFalse("'dummy-index.html' shouldn't be found", filenames.contains("dummy-index.html"));
assertFalse("'Entries' shouldn't be found", filenames.contains("Entries"));
//Second, find recursively
fileFilter = FileFilterUtils.trueFileFilter();
dirFilter = FileFilterUtils.notFileFilter(FileFilterUtils.nameFileFilter("CVS"));
files = FileUtils.listFiles(getLocalTestDirectory(), fileFilter, dirFilter);
filenames = filesToFilenames(files);
assertTrue("'dummy-build.xml' is missing", filenames.contains("dummy-build.xml"));
assertTrue("'dummy-index.html' is missing", filenames.contains("dummy-index.html"));
assertFalse("'Entries' shouldn't be found", filenames.contains("Entries"));
//Do the same as above but now with the filter coming from FileFilterUtils
fileFilter = FileFilterUtils.trueFileFilter();
dirFilter = FileFilterUtils.makeCVSAware(null);
files = FileUtils.listFiles(getLocalTestDirectory(), fileFilter, dirFilter);
filenames = filesToFilenames(files);
assertTrue("'dummy-build.xml' is missing", filenames.contains("dummy-build.xml"));
assertTrue("'dummy-index.html' is missing", filenames.contains("dummy-index.html"));
assertFalse("'Entries' shouldn't be found", filenames.contains("Entries"));
//Again with the CVS filter but now with a non-null parameter
fileFilter = FileFilterUtils.trueFileFilter();
dirFilter = FileFilterUtils.prefixFileFilter("sub");
dirFilter = FileFilterUtils.makeCVSAware(dirFilter);
files = FileUtils.listFiles(getLocalTestDirectory(), fileFilter, dirFilter);
filenames = filesToFilenames(files);
assertTrue("'dummy-build.xml' is missing", filenames.contains("dummy-build.xml"));
assertTrue("'dummy-index.html' is missing", filenames.contains("dummy-index.html"));
assertFalse("'Entries' shouldn't be found", filenames.contains("Entries"));
try {
FileUtils.listFiles(getLocalTestDirectory(), null, null);
fail("Expected error about null parameter");
} catch (Exception e) {
//fine
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org