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

  <property name="file" value="testfile"/>

  <condition property="unix">
    <os family="unix"/>
  </condition>

  <target name="createTestdir">
    <mkdir dir="${output}"/>
    <touch file="${output}/${file}"/>
  </target>

  <target name="testExecutable" depends="makeFileExecutable" if="unix">
    <au:assertTrue>
      <resourcecount when="equal" count="1">
        <fileset dir="${output}">
          <executable/>
        </fileset>
      </resourcecount>
    </au:assertTrue>
    <au:assertTrue>
      <resourcecount when="equal" count="0">
        <fileset dir="${output}" excludes="${file}">
          <executable/>
        </fileset>
      </resourcecount>
    </au:assertTrue>
  </target>

  <target name="makeFileExecutable" depends="createTestdir">
    <setpermissions mode="755" nonPosixMode="pass">
      <file file="${output}/${file}"/>
    </setpermissions>
  </target>

  <target name="testNotexecutable" depends="createTestdir" if="unix">
    <au:assertTrue>
      <resourcecount when="equal" count="0">
        <fileset dir="${output}">
          <executable/>
        </fileset>
      </resourcecount>
    </au:assertTrue>
  </target>

  <target name="testAsFalseConditions" depends="createTestdir" if="unix">
    <au:assertFalse>
      <isfileselected file="${output}/${file}">
        <executable/>
      </isfileselected>
    </au:assertFalse>
  </target>

  <target name="testAsTrueConditions" depends="makeFileExecutable" if="unix">
    <au:assertTrue>
      <isfileselected file="${output}/${file}">
        <executable/>
      </isfileselected>
    </au:assertTrue>
  </target>

</project>
