You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by pe...@apache.org on 2004/12/17 14:24:38 UTC

cvs commit: ant/src/etc/testcases/types/mappers define.mapperresult.xml globmapper.xml regexpmapper.xml

peterreilly    2004/12/17 05:24:38

  Added:       src/testcases/org/apache/tools/ant/types/mappers
                        GlobMapperTest.java MapperResult.java
                        RegexpPatternMapperTest.java
               src/etc/testcases/types/mappers define.mapperresult.xml
                        globmapper.xml regexpmapper.xml
  Log:
  testcases for new attributes on globmapper and regexpmapper
  
  Revision  Changes    Path
  1.1                  ant/src/testcases/org/apache/tools/ant/types/mappers/GlobMapperTest.java
  
  Index: GlobMapperTest.java
  ===================================================================
  /*
   * Copyright  2004 The Apache Software Foundation
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   *
   */
  
  package org.apache.tools.ant.types.mappers;
  
  import org.apache.tools.ant.BuildFileTest;
  
  /**
   * Testcase for the <globmapper> mapper.
   *
   */
  public class GlobMapperTest extends BuildFileTest {
      public GlobMapperTest(String name) {
          super(name);
      }
      public void setUp() {
          configureProject("src/etc/testcases/types/mappers/globmapper.xml");
      }
  
      public void testIgnoreCase() {
          executeTarget("ignore.case");
      }
      public void testHandleDirChar() {
          executeTarget("handle.dirchar");
      }
  }
  
  
  
  
  
  1.1                  ant/src/testcases/org/apache/tools/ant/types/mappers/MapperResult.java
  
  Index: MapperResult.java
  ===================================================================
  /*
   * Copyright  2004 The Apache Software Foundation
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   *
   */
  
  package org.apache.tools.ant.types.mappers;
  
  import org.apache.tools.ant.BuildException;
  import org.apache.tools.ant.Task;
  import org.apache.tools.ant.types.Mapper;
  import org.apache.tools.ant.util.FileNameMapper;
  
  /**
   * This is a test task to show the result of a mapper
   * on a specific input.
   * (Test is not in the name of the class, to make sure that
   * it is not treated as a unit test.
   */
  
  public class MapperResult extends Task {
  
      private String failMessage = "";
      private String input;
      private String output;
      private FileNameMapper fileNameMapper;
  
      public void setFailMessage(String failMessage) {
          this.failMessage = failMessage;
      }
      
      public void setInput(String input) {
          this.input = input;
      }
  
      public void setOutput(String output) {
          this.output = output;
      }
  
      public void addConfiguredMapper(Mapper mapper) {
          add(mapper.getImplementation());
      }
  
      public void add(FileNameMapper fileNameMapper) {
          if (this.fileNameMapper != null) {
              throw new BuildException("Only one mapper type nested element allowed");
          }
          this.fileNameMapper = fileNameMapper;
      }
          
      public void execute() {
          if (input == null) {
              throw new BuildException("Missing attribute 'input'");
          }
          if (output == null) {
              throw new BuildException("Missing attribute 'output'");
          }
          if (fileNameMapper == null) {
              throw new BuildException("Missing a nested file name mapper type element");
          }
          String[] result = fileNameMapper.mapFileName(input);
          String flattened;
          if (result == null) {
              flattened = "<NULL>";
          } else {
              StringBuffer b = new StringBuffer();
              for (int i = 0; i < result.length; ++i) {
                  if (i != 0) {
                      b.append("|");
                  }
                  b.append(result[i]);
              }
              flattened = b.toString();
          }
          if (!flattened.equals(output)) {
              throw new BuildException(
                  failMessage
                  + " "
                  + "got "
                  + flattened
                  + " "
                  + "expected "
                  + output);
          }
      }
  }
  
  
  
  1.1                  ant/src/testcases/org/apache/tools/ant/types/mappers/RegexpPatternMapperTest.java
  
  Index: RegexpPatternMapperTest.java
  ===================================================================
  /*
   * Copyright  2004 The Apache Software Foundation
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   *
   */
  
  package org.apache.tools.ant.types.mappers;
  
  import org.apache.tools.ant.BuildFileTest;
  
  /**
   * Testcase for the &lt;regexpmapper&gt; mapper.
   *
   */
  public class RegexpPatternMapperTest extends BuildFileTest {
      public RegexpPatternMapperTest(String name) {
          super(name);
      }
      public void setUp() {
          configureProject("src/etc/testcases/types/mappers/regexpmapper.xml");
      }
  
      public void testIgnoreCase() {
          executeTarget("ignore.case");
      }
      public void testHandleDirChar() {
          executeTarget("handle.dirchar");
      }
  }
  
  
  
  
  
  1.1                  ant/src/etc/testcases/types/mappers/define.mapperresult.xml
  
  Index: define.mapperresult.xml
  ===================================================================
  <project>
    <typedef name="mapperresult"
             classpath="../../../../../build/testcases"
             classname="org.apache.tools.ant.types.mappers.MapperResult"/>
  </project>
  
  
  
  1.1                  ant/src/etc/testcases/types/mappers/globmapper.xml
  
  Index: globmapper.xml
  ===================================================================
  <project>
    <import file="define.mapperresult.xml"/>
  
    <target name="handle.dirchar">
      <mapperresult input="d\e/f/j.java" output="f/j.java">
        <globmapper from="d/e\*" to="*" handledirchar="yes"/>
      </mapperresult>
    </target>
    
    <target name="ignore.case">
      <mapperresult input="AbcDef.JaVa" output="bcDef.java.bak">
        <globmapper from="a*.java" to="*.java.bak" casesensitive="no"/>
      </mapperresult>
    </target>
  </project>
  
  
  
  1.1                  ant/src/etc/testcases/types/mappers/regexpmapper.xml
  
  Index: regexpmapper.xml
  ===================================================================
  <project>
    <import file="define.mapperresult.xml"/>
  
    <target name="ignore.case">
      <mapperresult input="AbcDef.javA" output="bcDef.java.bak">
        <regexpmapper from="a(.*).JaVa" to="\1.java.bak" casesensitive="no"/>
      </mapperresult>
    </target>
  
    <target name="handle.dirchar">
      <mapperresult input="d\e/f\j.java" output="f/j.java">
        <regexpmapper from="d/e/(.*)" to="\1" handledirchar="yes"/>
      </mapperresult>
    </target>
  </project>
  
  
  

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