ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bode...@apache.org
Subject svn commit: r823158 - in /ant/core/trunk/src: main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java tests/antunit/taskdefs/optional/junit/junit-formatter-test.xml
Date Thu, 08 Oct 2009 12:58:42 GMT
Author: bodewig
Date: Thu Oct  8 12:58:42 2009
New Revision: 823158

URL: http://svn.apache.org/viewvc?rev=823158&view=rev
Log:
Make junit's formatter if/unless behave like target's if/unless

Added:
    ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/junit-formatter-test.xml   (with
props)
Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java?rev=823158&r1=823157&r2=823158&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java
Thu Oct  8 12:58:42 2009
@@ -27,6 +27,7 @@
 
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
+import org.apache.tools.ant.PropertyHelper;
 import org.apache.tools.ant.Task;
 import org.apache.tools.ant.types.EnumeratedAttribute;
 import org.apache.tools.ant.util.KeepAliveOutputStream;
@@ -61,8 +62,8 @@
     private OutputStream out = new KeepAliveOutputStream(System.out);
     private File outFile;
     private boolean useFile = true;
-    private String ifProperty;
-    private String unlessProperty;
+    private Object ifCond;
+    private Object unlessCond;
 
     /**
      * Store the project reference for passing it to nested components.
@@ -194,22 +195,45 @@
     }
 
     /**
-     * Set whether this formatter should be used.  It will be
-     * used if the property has been set, otherwise it won't.
-     * @param ifProperty name of property
+     * Set whether this formatter should be used.  It will be used if
+     * the expression evaluates to true or the name of a property
+     * which has been set, otherwise it won't.
+     * @param ifCond name of property
+     * @since Ant 1.8.0
      */
-    public void setIf(String ifProperty) {
-        this.ifProperty = ifProperty;
+    public void setIf(Object ifCond) {
+        this.ifCond = ifCond;
     }
 
     /**
-     * Set whether this formatter should NOT be used. It
-     * will not be used if the property has been set, orthwise it
-     * will be used.
-     * @param unlessProperty name of property
+     * Set whether this formatter should be used.  It will be used if
+     * the expression evaluates to true or the name of a property
+     * which has been set, otherwise it won't.
+     * @param ifCond name of property
      */
-    public void setUnless(String unlessProperty) {
-        this.unlessProperty = unlessProperty;
+    public void setIf(String ifCond) {
+        setIf((Object) ifCond);
+    }
+
+    /**
+     * Set whether this formatter should NOT be used. It will be used
+     * if the expression evaluates to false or the name of a property
+     * which has not been set, orthwise it will not be used.
+     * @param unlessCond name of property
+     * @since Ant 1.8.0
+     */
+    public void setUnless(Object unlessCond) {
+        this.unlessCond = unlessCond;
+    }
+
+    /**
+     * Set whether this formatter should NOT be used. It will be used
+     * if the expression evaluates to false or the name of a property
+     * which has not been set, orthwise it will not be used.
+     * @param unlessCond name of property
+     */
+    public void setUnless(String unlessCond) {
+        setUnless((Object) unlessCond);
     }
 
     /**
@@ -219,13 +243,9 @@
      * @return true if the formatter should be used.
      */
     public boolean shouldUse(Task t) {
-        if (ifProperty != null && t.getProject().getProperty(ifProperty) == null)
{
-            return false;
-        }
-        if (unlessProperty != null && t.getProject().getProperty(unlessProperty)
!= null) {
-            return false;
-        }
-        return true;
+        PropertyHelper ph = PropertyHelper.getPropertyHelper(t.getProject());
+        return ph.testIfCondition(ifCond)
+            && ph.testUnlessCondition(unlessCond);
     }
 
     /**

Added: ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/junit-formatter-test.xml
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/junit-formatter-test.xml?rev=823158&view=auto
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/junit-formatter-test.xml (added)
+++ ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/junit-formatter-test.xml Thu
Oct  8 12:58:42 2009
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+<project default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
+  <import file="../../../antunit-base.xml" />
+
+  <path id="junit">
+    <fileset dir="../../../../../../lib/optional" includes="junit*"/>
+  </path>
+
+  <target name="setUp">
+    <mkdir dir="${input}"/>
+    <mkdir dir="${output}"/>
+    <echo file="${input}/ATest.java"><![CDATA[
+package test;
+import junit.framework.TestCase;
+
+public class ATest extends TestCase {
+    public void testEmpty() {}
+}
+]]></echo>
+    <javac srcdir="${input}" destdir="${output}">
+      <classpath refid="junit"/>
+    </javac>
+    <macrodef name="j">
+      <sequential>
+        <junit fork="true" forkMode="perBatch">
+          <classpath refid="junit"/>
+          <classpath location="${output}"/>
+          <batchtest todir="${output}">
+            <fileset dir="${output}">
+              <include name="**/*Test.class" />
+            </fileset>
+          </batchtest>
+          <formatter type="plain" if="${if}" extension=".dollar_if"/>
+          <formatter type="plain" if="if" extension=".if"/>
+          <formatter type="plain" unless="${if}" extension=".dollar_unless"/>
+          <formatter type="plain" unless="if" extension=".unless"/>
+        </junit>
+      </sequential>
+    </macrodef>
+  </target>
+
+  <target name="testPropertyNotSet" depends="setUp">
+    <j/>
+    <au:assertFileDoesntExist file="${output}/TEST-test.ATest.dollar_if"/>
+    <au:assertFileDoesntExist file="${output}/TEST-test.ATest.if"/>
+    <au:assertFileExists file="${output}/TEST-test.ATest.dollar_unless"/>
+    <au:assertFileExists file="${output}/TEST-test.ATest.unless"/>
+  </target>
+
+  <target name="testPropertySet" depends="setUp">
+    <property name="if" value="whatever"/>
+    <j/>
+    <au:assertFileDoesntExist file="${output}/TEST-test.ATest.dollar_if"/>
+    <au:assertFileExists file="${output}/TEST-test.ATest.if"/>
+    <au:assertFileExists file="${output}/TEST-test.ATest.dollar_unless"/>
+    <au:assertFileDoesntExist file="${output}/TEST-test.ATest.unless"/>
+  </target>
+
+  <target name="testPropertyTrue" depends="setUp">
+    <property name="if" value="true"/>
+    <j/>
+    <au:assertFileExists file="${output}/TEST-test.ATest.dollar_if"/>
+    <au:assertFileExists file="${output}/TEST-test.ATest.if"/>
+    <au:assertFileDoesntExist file="${output}/TEST-test.ATest.dollar_unless"/>
+    <au:assertFileDoesntExist file="${output}/TEST-test.ATest.unless"/>
+  </target>
+
+  <target name="testPropertyFalse" depends="setUp">
+    <property name="if" value="false"/>
+    <j/>
+    <au:assertFileDoesntExist file="${output}/TEST-test.ATest.dollar_if"/>
+    <au:assertFileExists file="${output}/TEST-test.ATest.if"/>
+    <au:assertFileExists file="${output}/TEST-test.ATest.dollar_unless"/>
+    <au:assertFileDoesntExist file="${output}/TEST-test.ATest.unless"/>
+  </target>
+
+</project>

Propchange: ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/junit-formatter-test.xml
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message