<?xml version="1.0" encoding="utf-8"?>
<!--
  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 name="augment-test" default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
  <import file="../antunit-base.xml"/>

  <target name="setUp">
    <mkdir dir="${input}" />
    <touch>
      <filelist id="filelist" dir="${input}" files="foo,bar,baz" />
    </touch>
    <fileset id="input-fs" dir="${input}" />
    <au:assertTrue>
      <resourcecount refid="input-fs" count="3" />
    </au:assertTrue>
  </target>

  <target name="test-augment-attribute" depends="setUp">
    <augment id="input-fs" excludes="foo" />
    <au:assertTrue>
      <resourcecount refid="input-fs" count="2" />
    </au:assertTrue>
  </target>

  <target name="test-augment-element" depends="setUp">
    <augment id="input-fs">
      <filename name="bar" />
    </augment>
    <au:assertTrue>
      <resourcecount refid="input-fs" count="1" />
    </au:assertTrue>
  </target>

  <target name="test-noref">
    <au:expectfailure expectedMessage="Unknown reference &quot;nosuchreference&quot;">
      <augment id="nosuchreference" />
    </au:expectfailure>
  </target>

  <target name="test-id-not-set">
    <au:expectfailure expectedMessage="augment attribute 'id' unset">
      <augment foo="bar" />
    </au:expectfailure>
  </target>

  <target name="test-illegal-attribute" depends="setUp">
    <au:expectfailure expectedMessage="augmented reference &quot;input-fs&quot; doesn't support the &quot;filesetwillmostlikelyneversupportthisattribute&quot; attribute">
      <augment id="input-fs" filesetwillmostlikelyneversupportthisattribute="blah" />
    </au:expectfailure>
  </target>

  <target name="test-illegal-element" depends="setUp">
    <au:expectfailure expectedMessage="augmented reference &quot;input-fs&quot; doesn't support the nested &quot;filesetwillmostlikelyneversupportthiselement&quot; element">
      <augment id="input-fs">
        <filesetwillmostlikelyneversupportthiselement />
      </augment>
    </au:expectfailure>
  </target>

</project>
