<?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 name="typefound">


    <target name="testTask">
        <condition property="testTask">
            <typefound name="echo"/>
        </condition>
    </target>


    <target name="testUndefined">
        <condition property="testUndefined">
            <typefound />
        </condition>
    </target>

    <target name="testTaskThatIsntDefined">
        <condition property="testTaskThatIsntDefined">
            <typefound name="invalid-and-undefined-task-name"/>
        </condition>
    </target>

    <target name="testTaskThatDoesntReallyExist">
     <taskdef name="invalid-task-name" onerror="ignore"
        classname="org.example.invalid.task.name.hopefully"/>
        <condition property="testTaskThatDoesntReallyExist">
            <typefound name="invalid-task-name"/>
        </condition>
    </target>

    <target name="testType">
        <condition property="testType">
            <typefound name="path"/>
        </condition>
    </target>

    <target name="testPreset">
        <presetdef name="important-echo">
            <echo level="error"/>
        </presetdef>
        <condition property="testPreset">
            <typefound name="important-echo"/>
        </condition>
    </target>

    <target name="testMacro">
        <macrodef name="error-message">
            <element name="text" optional="false"/>
            <sequential>
                <echo level="error">@{text}</echo>
            </sequential>
        </macrodef>
        <condition property="testMacro">
            <typefound name="error-message"/>
        </condition>
    </target>

</project>