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