<?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 xmlns:au="antlib:org.apache.ant.antunit" default="antunit">

  <import file="../antunit-base.xml" />

  <target name="setUp">
    <mkdir dir="${input}"/>
    <touch file="${input}/A"/>
    <touch file="${input}/B"/>
    <touch file="${input}/C"/>
    <touch file="${input}/D"/>
    <mkdir dir="${output}"/>
    <macrodef name="cp">
      <sequential>
        <copy todir="${output}">
          <fileset dir="${input}">
            <include name="A" if="${if}"/>
            <include name="B" unless="${if}"/>
            <include name="C" if="if"/>
            <include name="D" unless="if"/>
          </fileset>
        </copy>
      </sequential>
    </macrodef>
  </target>

  <target name="testIfNotSet" depends="setUp">
    <cp/>
    <au:assertFileDoesntExist file="${output}/A"/>
    <au:assertFileExists file="${output}/B"/>
    <au:assertFileDoesntExist file="${output}/C"/>
    <au:assertFileExists file="${output}/D"/>
  </target>

  <target name="testIfSet" depends="setUp">
    <property name="if" value="whatever"/>
    <cp/>
    <au:assertFileDoesntExist file="${output}/A"/>
    <au:assertFileExists file="${output}/B"/>
    <au:assertFileExists file="${output}/C"/>
    <au:assertFileDoesntExist file="${output}/D"/>
  </target>

  <target name="testIfTrue" depends="setUp">
    <property name="if" value="true"/>
    <cp/>
    <au:assertFileExists file="${output}/A"/>
    <au:assertFileDoesntExist file="${output}/B"/>
    <au:assertFileExists file="${output}/C"/>
    <au:assertFileDoesntExist file="${output}/D"/>
  </target>

  <target name="testIfFalse" depends="setUp">
    <property name="if" value="false"/>
    <cp/>
    <au:assertFileDoesntExist file="${output}/A"/>
    <au:assertFileExists file="${output}/B"/>
    <au:assertFileExists file="${output}/C"/>
    <au:assertFileDoesntExist file="${output}/D"/>
  </target>

</project>
