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]

Reply via email to