Browse Source

testcases for new attributes on globmapper and regexpmapper

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277236 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Reilly 20 years ago
parent
commit
19d45cc66e
6 changed files with 216 additions and 0 deletions
  1. +5
    -0
      src/etc/testcases/types/mappers/define.mapperresult.xml
  2. +15
    -0
      src/etc/testcases/types/mappers/globmapper.xml
  3. +15
    -0
      src/etc/testcases/types/mappers/regexpmapper.xml
  4. +42
    -0
      src/testcases/org/apache/tools/ant/types/mappers/GlobMapperTest.java
  5. +97
    -0
      src/testcases/org/apache/tools/ant/types/mappers/MapperResult.java
  6. +42
    -0
      src/testcases/org/apache/tools/ant/types/mappers/RegexpPatternMapperTest.java

+ 5
- 0
src/etc/testcases/types/mappers/define.mapperresult.xml View File

@@ -0,0 +1,5 @@
<project>
<typedef name="mapperresult"
classpath="../../../../../build/testcases"
classname="org.apache.tools.ant.types.mappers.MapperResult"/>
</project>

+ 15
- 0
src/etc/testcases/types/mappers/globmapper.xml View File

@@ -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>

+ 15
- 0
src/etc/testcases/types/mappers/regexpmapper.xml View File

@@ -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>

+ 42
- 0
src/testcases/org/apache/tools/ant/types/mappers/GlobMapperTest.java View File

@@ -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 &lt;globmapper&gt; 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");
}
}



+ 97
- 0
src/testcases/org/apache/tools/ant/types/mappers/MapperResult.java View File

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

+ 42
- 0
src/testcases/org/apache/tools/ant/types/mappers/RegexpPatternMapperTest.java View File

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



Loading…
Cancel
Save