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