git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277236 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -0,0 +1,5 @@ | |||
| <project> | |||
| <typedef name="mapperresult" | |||
| classpath="../../../../../build/testcases" | |||
| classname="org.apache.tools.ant.types.mappers.MapperResult"/> | |||
| </project> | |||
| @@ -0,0 +1,15 @@ | |||
| <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> | |||
| @@ -0,0 +1,15 @@ | |||
| <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> | |||
| @@ -0,0 +1,42 @@ | |||
| /* | |||
| * 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"); | |||
| } | |||
| } | |||
| @@ -0,0 +1,97 @@ | |||
| /* | |||
| * 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); | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,42 @@ | |||
| /* | |||
| * 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 <regexpmapper> 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"); | |||
| } | |||
| } | |||