bodewig     2003/04/22 23:34:53

  Modified:    .        build.xml
               src/etc/testcases/types selectors.xml
  Added:       src/testcases/org/apache/tools/ant/types/selectors
                        ContainsRegexpTest.java
  Log:
  Add testcase for containsregexp selector.
  
  Submitted by: Jay <jvandermeer2 at comcast dot net>
  
  Revision  Changes    Path
  1.368     +2 -0      ant/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/ant/build.xml,v
  retrieving revision 1.367
  retrieving revision 1.368
  diff -u -r1.367 -r1.368
  --- build.xml 22 Apr 2003 18:23:53 -0000      1.367
  +++ build.xml 23 Apr 2003 06:34:52 -0000      1.368
  @@ -1514,6 +1514,8 @@
                      unless="some.regexp.support"/>
             <exclude name="${optional.package}/sitraka/*.java"
                      unless="some.regexp.support"/>
  +          <exclude 
name="${ant.package}/types/selectors/ContainsRegexpTest.java"
  +                   unless="some.regexp.support"/>
             <exclude name="${optional.package}/RhinoScriptTest.java"
                      unless="bsf.present"/>
             <exclude name="${optional.package}/RhinoScriptTest.java"
  
  
  
  1.5       +26 -0     ant/src/etc/testcases/types/selectors.xml
  
  Index: selectors.xml
  ===================================================================
  RCS file: /home/cvs/ant/src/etc/testcases/types/selectors.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- selectors.xml     11 Mar 2003 09:26:44 -0000      1.4
  +++ selectors.xml     23 Apr 2003 06:34:52 -0000      1.5
  @@ -5,6 +5,10 @@
     <property name="etc.dir" value=".."/>
     <property name="test.dir"
             value="selectortest"/>
  +  <property name="testregexpsrc.dir"
  +          value="regexpseltestsrc"/>
  +  <property name="testregexpdest.dir"
  +          value="regexpseltestdest"/>
     <property name="mirror.dir"
             value="selectortest2"/>
   
  @@ -80,6 +84,28 @@
   
     <target name="cleanup.mirrorfiles">
       <delete dir="${mirror.dir}" />
  +  </target>
  +  
  +  <target name="cleanupregexp">
  +    <delete dir="${testregexpsrc.dir}" />
  +    <delete dir="${testregexpdest.dir}" />
  +  </target>
  +  
  +  <target name="containsregexp">
  +    <mkdir dir="${testregexpsrc.dir}" />
  +    <mkdir dir="${testregexpdest.dir}" />
  +    <!-- Make two test files, shouldcopy.txt will get selected if everything 
works
  +         shouldnotcopy.txt will not get selected for copy.  The test looks 
to see
  +         that only one file is copied
  +    -->
  +    <echo message="Some testregexp text 2.0" 
file="${testregexpsrc.dir}/shouldcopy.txt" />
  +    <echo message="Some testregexp text 20" 
file="${testregexpsrc.dir}/shouldnotcopy.txt" />
  +    <copy todir="${testregexpdest.dir}">
  +      <fileset dir="${testregexpsrc.dir}">
  +        <include name="*.txt" />
  +        <containsregexp expression="[0-9]\.[0,1,2]" />
  +      </fileset>
  +    </copy>
     </target>
   
   </project>
  
  
  
  1.1                  
ant/src/testcases/org/apache/tools/ant/types/selectors/ContainsRegexpTest.java
  
  Index: ContainsRegexpTest.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 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 "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 [EMAIL PROTECTED]
   *
   * 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.selectors;
  
  import org.apache.tools.ant.BuildException;
  import org.apache.tools.ant.Project;
  import org.apache.tools.ant.BuildFileTest;
  
  import junit.framework.TestCase;
  import junit.framework.AssertionFailedError;
  
  import java.io.File;
  
  
  public class ContainsRegexpTest extends TestCase {
  
      private Project project;
  
      public ContainsRegexpTest(String name) {
          super(name);
      }
  
      public void setUp() {
          project = new Project();
          project.setBasedir(".");
      }
  
      public void testContainsRegexp() {
          TaskdefForRegexpTest MyTask = 
              new TaskdefForRegexpTest("containsregexp");
          try {
              MyTask.setUp();
              MyTask.test();
          } finally {
              MyTask.tearDown();
          }
      }
  
      private class TaskdefForRegexpTest extends BuildFileTest {
          TaskdefForRegexpTest(String name) {
              super(name);
          }
  
          public void setUp() { 
              configureProject("src/etc/testcases/types/selectors.xml");
          }
  
          public void tearDown() {
              executeTarget("cleanupregexp");
          }
  
          public void test() { 
              File dir = null;
              File[] files = null;
              int filecount;
  
              executeTarget("containsregexp");
        
              dir = new File(getProjectDir() + "/regexpseltestdest/");
              files = dir.listFiles();
              filecount = files.length;
          
              if (filecount != 1)
                  assertEquals("ContainsRegexp test should have copied 1 file",
                               1, files.length);
          
          }
      }
  }
  
  
  
  

Reply via email to