Author: mbenson
Date: Tue Jul 17 17:39:42 2007
New Revision: 557100
URL: http://svn.apache.org/viewvc?view=rev&rev=557100
Log:
add tests for non-string properties
Modified:
ant/core/trunk/src/tests/antunit/taskdefs/propertyhelper-test.xml
Modified: ant/core/trunk/src/tests/antunit/taskdefs/propertyhelper-test.xml
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/propertyhelper-test.xml?view=diff&rev=557100&r1=557099&r2=557100
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/propertyhelper-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/taskdefs/propertyhelper-test.xml Tue Jul
17 17:39:42 2007
@@ -1,25 +1,109 @@
<project default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
+ <!-- each test verifies that the PropertyEvaluator delegate works -->
<import file="../antunit-base.xml" />
- <target name="testScript">
+ <target name="setUp" unless="setup.complete">
<script language="beanshell" manager="bsf">
import org.apache.tools.ant.PropertyHelper;
- public class FooEvaluator implements PropertyHelper.PropertyEvaluator {
+ public class MapEvaluator implements PropertyHelper.PropertyEvaluator {
+ HashMap map = new HashMap();
+ public MapEvaluator() {
+ map.put("string", "string");
+ map.put("object", new Object());
+ map.put("int", new Integer(1));
+ map.put("null", null);
+ }
public Object evaluate(String property, PropertyHelper propertyHelper)
{
- return "foo".equals(property) ? "foo.value" : null;
+ return map.get(property.toLowerCase());
}
}
- project.addReference("fooEvaluator", new FooEvaluator());
+ project.addReference("mapEvaluator", new MapEvaluator());
</script>
- <au:assertFalse>
- <isset property="foo" />
- </au:assertFalse>
<propertyhelper>
- <delegate refid="fooEvaluator" />
+ <delegate refid="mapEvaluator" />
</propertyhelper>
+ <property name="setup.complete" value="true" />
+ </target>
+
+ <target name="testValueTypes" depends="setUp">
+ <!-- verify BC, strings -->
+ <au:assertPropertyEquals name="string" value="${STRING}" />
+
+ <!-- verify non-string properties -->
+ <au:assertPropertyEquals name="object" value="${OBJECT}" />
+ <au:assertPropertyEquals name="int" value="${INT}" />
+
+ <!-- verify that a string containing nothing but a property reference is a
valid value -->
+ <property name="string2" value="${string}" />
+ <au:assertPropertyEquals name="string2" value="${string}" />
+
+ <property name="object2" value="${object}" />
+ <!-- demonstrate that equals args can be non-string -->
+ <au:assertPropertyEquals name="object2" value="${object}" />
+
+ <property name="int2" value="${int}" />
+ <au:assertPropertyEquals name="int2" value="${int}" />
+ </target>
+
+ <target name="testNull" depends="setUp">
+ <!-- demonstrate that a null value always implies a nonexistent property
-->
+ <au:assertFalse>
+ <isset property="null" />
+ </au:assertFalse>
+ </target>
+
+ <target name="testAvailable" depends="setUp">
+ <!-- verify the available task can set a non-string property -->
+ <available file="${ant.file}" type="file" property="available.string"
value="bc" />
+ <au:assertPropertyEquals name="available.string" value="bc" />
+ <available file="${ant.file}" type="file" property="available.object"
value="${object}" />
+ <au:assertPropertyEquals name="available.object" value="${OBJECT}" />
+ </target>
+
+ <target name="testCondition" depends="setUp">
+ <!-- verify the condition task can set a non-string property -->
+ <echo>$${ant.file}=${ant.file}</echo>
+ <condition property="condition.true.string">
+ <available file="${ant.file}" type="file" />
+ </condition>
+ <au:assertPropertyEquals name="condition.true.string" value="true" />
+ <condition property="condition.else.string" value="true" else="false">
+ <not><available file="${ant.file}" type="file" /></not>
+ </condition>
+ <au:assertPropertyEquals name="condition.else.string" value="false" />
+ <condition property="condition.true.object" value="${object}">
+ <available file="${ant.file}" type="file" />
+ </condition>
+ <au:assertPropertyEquals name="condition.true.object" value="${OBJECT}" />
+ <condition property="condition.else.int" value="${object}" else="${int}">
+ <not><available file="${ant.file}" type="file" /></not>
+ </condition>
+ <au:assertPropertyEquals name="condition.else.int" value="${INT}" />
+ </target>
+
+ <target name="testEmbeddedNonString">
+ <!-- verify that a property embedded in a string is a substring -->
+ <au:assertTrue>
+ <equals arg1="@${int}@" arg2="@1@" />
+ </au:assertTrue>
+ </target>
+
+ <target name="testLoadProperties">
+ <au:assertFalse>
+ <isset property="object2" />
+ </au:assertFalse>
+ <string id="props" value="object2=$${object}" />
+ <!-- verify the property is not yet expanded -->
<au:assertTrue>
- <equals arg1="${foo}" arg2="foo.value" />
+ <length length="17">
+ <resource refid="props" />
+ </length>
</au:assertTrue>
+ <loadproperties>
+ <resource refid="props" />
+ </loadproperties>
+ <au:assertPropertyEquals name="object2" value="${object}" />
+ <au:assertPropertyEquals name="object2" value="${OBJECT}" />
</target>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]