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"); | |||
} | |||
} | |||