ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bode...@apache.org
Subject cvs commit: jakarta-ant/src/testcases/org/apache/tools/ant/types DirSetTest.java FileSetTest.java PathTest.java
Date Wed, 03 Apr 2002 10:54:54 GMT
bodewig     02/04/03 02:54:54

  Modified:    src/main/org/apache/tools/ant/types DirSet.java FileSet.java
               src/testcases/org/apache/tools/ant/types FileSetTest.java
                        PathTest.java
  Added:       src/testcases/org/apache/tools/ant/types DirSetTest.java
  Log:
  Add tests fro DirSet and the new DirSet/FileList support in Path.
  
  Step one of planned DirSet refactoring.
  
  Revision  Changes    Path
  1.2       +1 -1      jakarta-ant/src/main/org/apache/tools/ant/types/DirSet.java
  
  Index: DirSet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/types/DirSet.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DirSet.java	30 Mar 2002 01:03:40 -0000	1.1
  +++ DirSet.java	3 Apr 2002 10:54:54 -0000	1.2
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
  + * Copyright (c) 2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  
  
  
  1.24      +1 -3      jakarta-ant/src/main/org/apache/tools/ant/types/FileSet.java
  
  Index: FileSet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/types/FileSet.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- FileSet.java	26 Mar 2002 21:18:34 -0000	1.23
  +++ FileSet.java	3 Apr 2002 10:54:54 -0000	1.24
  @@ -95,8 +95,6 @@
           this.isCaseSensitive = fileset.isCaseSensitive;
           setProject(getProject());
       }
  -    
  -    
   
       /**
        * Makes this instance in effect a reference to another PatternSet
  @@ -302,7 +300,7 @@
           ds.setIncludes(defaultPatterns.getIncludePatterns(p));
           ds.setExcludes(defaultPatterns.getExcludePatterns(p));
           if (useDefaultExcludes) {
  -          ds.addDefaultExcludes();
  +            ds.addDefaultExcludes();
           }
           ds.setCaseSensitive(isCaseSensitive);
       }
  
  
  
  1.6       +2 -2      jakarta-ant/src/testcases/org/apache/tools/ant/types/FileSetTest.java
  
  Index: FileSetTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/testcases/org/apache/tools/ant/types/FileSetTest.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FileSetTest.java	10 Jan 2002 10:13:13 -0000	1.5
  +++ FileSetTest.java	3 Apr 2002 10:54:54 -0000	1.6
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2000-2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -244,6 +244,6 @@
           project.addReference("dummy3", f3);
           f3.setDir(project.resolveFile("."));
           File dir = f1.getDir(project);
  -        assertEquals("Die is basedir", dir, project.getBaseDir());
  +        assertEquals("Dir is basedir", dir, project.getBaseDir());
       }
   }
  
  
  
  1.15      +54 -1     jakarta-ant/src/testcases/org/apache/tools/ant/types/PathTest.java
  
  Index: PathTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/testcases/org/apache/tools/ant/types/PathTest.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- PathTest.java	8 Mar 2002 08:20:15 -0000	1.14
  +++ PathTest.java	3 Apr 2002 10:54:54 -0000	1.15
  @@ -56,6 +56,7 @@
   
   import org.apache.tools.ant.BuildException;
   import org.apache.tools.ant.Project;
  +import org.apache.tools.ant.taskdefs.condition.Os;
   
   import junit.framework.TestCase;
   import junit.framework.AssertionFailedError;
  @@ -73,7 +74,7 @@
   public class PathTest extends TestCase {
   
       public static boolean isUnixStyle = File.pathSeparatorChar == ':';
  -    public static boolean isNetWare = (System.getProperty("os.name").toLowerCase(Locale.US).indexOf("netware")
> -1);
  +    public static boolean isNetWare = Os.isFamily("netware");
   
       private Project project;
   
  @@ -430,6 +431,22 @@
               assertEquals("You must not specify nested elements when using refid",
                            be.getMessage());
           }
  +
  +        try {
  +            p.addFilelist(new FileList());
  +            fail("Can add nested FileList in Path that is a reference.");
  +        } catch (BuildException be) {
  +            assertEquals("You must not specify nested elements when using refid",
  +                         be.getMessage());
  +        }
  +
  +        try {
  +            p.addDirset(new DirSet());
  +            fail("Can add nested Dirset in Path that is a reference.");
  +        } catch (BuildException be) {
  +            assertEquals("You must not specify nested elements when using refid",
  +                         be.getMessage());
  +        }
       }
   
       public void testCircularReferenceCheck() {
  @@ -478,6 +495,42 @@
           } else {
               assertEquals(":\\a", l[0].substring(1));
           }
  +    }
  +
  +    public void testFileList() {
  +        Path p = new Path(project);
  +        FileList f = new FileList();
  +        f.setProject(project);
  +        f.setDir(project.resolveFile("."));
  +        f.setFiles("build.xml");
  +        p.addFilelist(f);
  +        String[] l = p.list();
  +        assertEquals(1, l.length);
  +        assertEquals(project.resolveFile("build.xml").getAbsolutePath(), l[0]);
  +    }
  +
  +    public void testFileSet() {
  +        Path p = new Path(project);
  +        FileSet f = new FileSet();
  +        f.setProject(project);
  +        f.setDir(project.resolveFile("."));
  +        f.setIncludes("build.xml");
  +        p.addFileset(f);
  +        String[] l = p.list();
  +        assertEquals(1, l.length);
  +        assertEquals(project.resolveFile("build.xml").getAbsolutePath(), l[0]);
  +    }
  +
  +    public void testDirSet() {
  +        Path p = new Path(project);
  +        DirSet d = new DirSet();
  +        d.setProject(project);
  +        d.setDir(project.resolveFile("."));
  +        d.setIncludes("build");
  +        p.addDirset(d);
  +        String[] l = p.list();
  +        assertEquals(1, l.length);
  +        assertEquals(project.resolveFile("build").getAbsolutePath(), l[0]);
       }
   
   }
  
  
  
  1.1                  jakarta-ant/src/testcases/org/apache/tools/ant/types/DirSetTest.java
  
  Index: DirSetTest.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Ant", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.tools.ant.types;
  
  import org.apache.tools.ant.BuildException;
  import org.apache.tools.ant.Project;
  
  import junit.framework.TestCase;
  import junit.framework.AssertionFailedError;
  
  import java.io.File;
  
  /**
   * JUnit 3 testcases for org.apache.tools.ant.types.DirSet.
   *
   * <p>This doesn't actually test much, mainly reference handling.
   *
   * @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a>
   */
  
  public class DirSetTest extends TestCase {
  
      private Project project;
  
      public DirSetTest(String name) {
          super(name);
      }
  
      public void setUp() {
          project = new Project();
          project.setBasedir(".");
      }
  
      public void testEmptyElementIfIsReference() {
          DirSet f = new DirSet();
          f.setIncludes("**/*.java");
          try {
              f.setRefid(new Reference("dummyref"));
              fail("Can add reference to DirSet with elements from setIncludes");
          } catch (BuildException be) {
              assertEquals("You must not specify more than one attribute when using refid",
                           be.getMessage());
          }
  
          f = new DirSet();
          f.createPatternSet();
          try {
              f.setRefid(new Reference("dummyref"));
              fail("Can add reference to DirSet with nested patternset element.");
          } catch (BuildException be) {
              assertEquals("You must not specify nested elements when using refid",
                           be.getMessage());
          }
  
          f = new DirSet();
          f.createInclude();
          try {
              f.setRefid(new Reference("dummyref"));
              fail("Can add reference to DirSet with nested include element.");
          } catch (BuildException be) {
              assertEquals("You must not specify more than one attribute when using refid",
                           be.getMessage());
          }
  
          f = new DirSet();
          f.setRefid(new Reference("dummyref"));
          try {
              f.setIncludes("**/*.java");
              fail("Can set includes in DirSet that is a reference.");
          } catch (BuildException be) {
              assertEquals("You must not specify more than one attribute when using refid",
                           be.getMessage());
          }
          try {
              f.setIncludesfile(new File("/a"));
              fail("Can set includesfile in DirSet that is a reference.");
          } catch (BuildException be) {
              assertEquals("You must not specify more than one attribute when using refid",
                           be.getMessage());
          }
          try {
              f.setExcludes("**/*.java");
              fail("Can set excludes in DirSet that is a reference.");
          } catch (BuildException be) {
              assertEquals("You must not specify more than one attribute when using refid",
                           be.getMessage());
          }
          try {
              f.setExcludesfile(new File("/a"));
              fail("Can set excludesfile in DirSet that is a reference.");
          } catch (BuildException be) {
              assertEquals("You must not specify more than one attribute when using refid",
                           be.getMessage());
          }
          try {
              f.setDir(project.resolveFile("."));
              fail("Can set dir in DirSet that is a reference.");
          } catch (BuildException be) {
              assertEquals("You must not specify more than one attribute when using refid",
                           be.getMessage());
          }
          try {
              f.createInclude();
              fail("Can add nested include in DirSet that is a reference.");
          } catch (BuildException be) {
              assertEquals("You must not specify nested elements when using refid",
                           be.getMessage());
          }
          try {
              f.createExclude();
              fail("Can add nested exclude in DirSet that is a reference.");
          } catch (BuildException be) {
              assertEquals("You must not specify nested elements when using refid",
                           be.getMessage());
          }
          try {
              f.createIncludesFile();
              fail("Can add nested includesfile in DirSet that is a reference.");
          } catch (BuildException be) {
              assertEquals("You must not specify nested elements when using refid",
                           be.getMessage());
          }
          try {
              f.createExcludesFile();
              fail("Can add nested excludesfile in DirSet that is a reference.");
          } catch (BuildException be) {
              assertEquals("You must not specify nested elements when using refid",
                           be.getMessage());
          }
          try {
              f.createPatternSet();
              fail("Can add nested patternset in DirSet that is a reference.");
          } catch (BuildException be) {
              assertEquals("You must not specify nested elements when using refid",
                           be.getMessage());
          }
      }
  
      public void testCircularReferenceCheck() {
          DirSet f = new DirSet();
          project.addReference("dummy", f);
          f.setRefid(new Reference("dummy"));
          try {
              f.getDir(project);
              fail("Can make DirSet a Reference to itself.");
          } catch (BuildException be) {
              assertEquals("This data type contains a circular reference.",
                           be.getMessage());
          }
          try {
              f.getDirectoryScanner(project);
              fail("Can make DirSet a Reference to itself.");
          } catch (BuildException be) {
              assertEquals("This data type contains a circular reference.",
                           be.getMessage());
          }
  
          // dummy1 --> dummy2 --> dummy3 --> dummy1
          DirSet f1 = new DirSet();
          project.addReference("dummy1", f1);
          f1.setRefid(new Reference("dummy2"));
          DirSet f2 = new DirSet();
          project.addReference("dummy2", f2);
          f2.setRefid(new Reference("dummy3"));
          DirSet f3 = new DirSet();
          project.addReference("dummy3", f3);
          f3.setRefid(new Reference("dummy1"));
          try {
              f1.getDir(project);
              fail("Can make circular reference.");
          } catch (BuildException be) {
              assertEquals("This data type contains a circular reference.",
                           be.getMessage());
          }
          try {
              f1.getDirectoryScanner(project);
              fail("Can make circular reference.");
          } catch (BuildException be) {
              assertEquals("This data type contains a circular reference.",
                           be.getMessage());
          }
  
          // dummy1 --> dummy2 --> dummy3 
          // (which has the Project's basedir as root).
          f1 = new DirSet();
          project.addReference("dummy1", f1);
          f1.setRefid(new Reference("dummy2"));
          f2 = new DirSet();
          project.addReference("dummy2", f2);
          f2.setRefid(new Reference("dummy3"));
          f3 = new DirSet();
          project.addReference("dummy3", f3);
          f3.setDir(project.resolveFile("."));
          File dir = f1.getDir(project);
          assertEquals("Dir is basedir", dir, project.getBaseDir());
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message