| <?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 | |
| https://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 xmlns:au="antlib:org.apache.ant.antunit" | |
| xmlns:props="antlib:org.apache.ant.props" default="antunit"> | |
| <typedef name="condition-type" | |
| classname="org.apache.ant.props.ConditionTypeEvaluator" /> | |
| <propertyhelper> | |
| <condition-type /> | |
| <props:nested /> | |
| </propertyhelper> | |
| <target name="if-available" | |
| if="${available(classname=org.apache.ant.props.ConditionTypeEvaluator)}"> | |
| <property name="testAvailable.pass" value="true" /> | |
| </target> | |
| <target name="unless-available" | |
| unless="${available(classname=org.apache.ant.props.ConditionTypeEvaluator)}"> | |
| <property name="testAvailable.fail" value="true" /> | |
| </target> | |
| <target name="testAvailable" depends="if-available,unless-available"> | |
| <au:assertTrue> | |
| <and> | |
| <istrue value="${testAvailable.pass}" /> | |
| <not><istrue value="${testAvailable.fail}" /></not> | |
| </and> | |
| </au:assertTrue> | |
| </target> | |
| <target name="set-prop"> | |
| <property name="foo" value="bar"/> | |
| </target> | |
| <target name="if-equals" if="${equals(arg1=bar,arg2=${foo})}"> | |
| <property name="testTrueEquals.pass" value="true" /> | |
| </target> | |
| <target name="unless-equals" unless="${equals(arg1=bar,arg2=${foo})}"> | |
| <property name="testFalseEquals.pass" value="true" /> | |
| </target> | |
| <target name="testTrueEquals" depends="set-prop,if-equals,unless-equals"> | |
| <au:assertTrue> | |
| <istrue value="${testTrueEquals.pass}" /> | |
| </au:assertTrue> | |
| </target> | |
| <target name="testFalseEquals" depends="if-equals,unless-equals" | |
| description="Pass is inconclusive"> | |
| <au:assertTrue> | |
| <istrue value="${testFalseEquals.pass}" /> | |
| </au:assertTrue> | |
| </target> | |
| <target name="testEvalToTextFalse"> | |
| <au:assertTrue> | |
| <!-- equals takes objects; embedding values in () forces string conversion --> | |
| <equals arg1="(false)" arg2="(${equals(arg1=bar,arg2=${foo})})" /> | |
| </au:assertTrue> | |
| </target> | |
| <target name="testEvalToTextTrue" depends="set-prop"> | |
| <au:assertTrue> | |
| <!-- equals takes objects; embedding values in () forces string conversion --> | |
| <equals arg1="(true)" arg2="(${equals(arg1=bar,arg2=${foo})})" /> | |
| </au:assertTrue> | |
| </target> | |
| <target name="testIsTrue" depends="set-prop"> | |
| <au:assertTrue> | |
| <istrue value="${equals(arg1=bar,arg2=${foo})}" /> | |
| </au:assertTrue> | |
| </target> | |
| <target name="testNotIsTrue" description="Pass is inconclusive"> | |
| <au:assertFalse> | |
| <istrue value="${equals(arg1=bar,arg2=${foo})}" /> | |
| </au:assertFalse> | |
| </target> | |
| <target name="antunit"> | |
| <antunit xmlns="antlib:org.apache.ant.antunit"> | |
| <plainlistener /> | |
| <file file="${ant.file}" xmlns="antlib:org.apache.tools.ant" /> | |
| </antunit> | |
| </target> | |
| <target name="testNegation"> | |
| <property name="foo" value="false" /> | |
| <au:assertTrue> | |
| <istrue value="${!istrue(value=${foo})}" /> | |
| </au:assertTrue> | |
| </target> | |
| </project> |