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