<?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 default="antunit"
         xmlns:au="antlib:org.apache.ant.antunit"
         xmlns:cond="antlib:org.apache.tools.ant.types.conditions"
         xmlns:cmp="antlib:org.apache.ant.compress">

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

  <target name="testNativePack200" depends="setUp">
    <copy todir="${output}">
      <cmp:zipfileset>
        <cmp:pack200resource>
          <file file="../resources/Foo.pack"/>
        </cmp:pack200resource>
      </cmp:zipfileset>
    </copy>
    <au:assertFilesMatch expected="${java.dir}/Foo.java"
                         actual="${output}/Foo.java"/>
  </target>

  <target name="testDoesntSupportConcatenatedStreams">
    <au:expectfailure>
      <copy todir="${output}">
        <cmp:zipfileset>
          <cmp:pack200resource decompressconcatenated="true">
            <file file="${input}/test.pack"/>
          </cmp:pack200resource>
        </cmp:zipfileset>
      </copy>
    </au:expectfailure>
  </target>

</project>
