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

  <target name="-setUpWriterClass">
    <mkdir dir="${input}"/>
    <echo file="${input}/A.java"><![CDATA[
public class A {
    public static void main(String[] args) {
        System.err.println("to System.err");
        System.out.println("to System.out");
    }
}]]></echo>
    <mkdir dir="${output}"/>
    <javac srcdir="${input}" destdir="${output}"/>
  </target>

  <target name="testOutputProperty"
          description="https://issues.apache.org/bugzilla/show_bug.cgi?id=47602"
          depends="-setUpWriterClass">
    <java fork="false" classname="A" outputproperty="out"
          errorproperty="err">
      <classpath location="${output}"/>
    </java>
    <au:assertPropertyEquals name="out" value="to System.out"/>
    <au:assertPropertyEquals name="err" value="to System.err"/>
  </target>

  <target name="testLogErrorNoInput"
          description="https://issues.apache.org/bugzilla/show_bug.cgi?id=47844"
          depends="-setUpWriterClass">
    <property name="stdout" location="${output}/standard.txt"/>
    <java fork="false" classname="A" output="${stdout}" logError="true">
      <classpath location="${output}"/>
    </java>
    <au:assertResourceContains resource="${stdout}"
                               value="to System.out"/>
    <au:assertResourceDoesntContain resource="${stdout}"
                                    value="to System.err"/>
    <au:assertLogContains text="to System.err"/>
  </target>

  <target name="testLogErrorWithInput"
          description="https://issues.apache.org/bugzilla/show_bug.cgi?id=47844"
          depends="-setUpWriterClass">
    <property name="stdout" location="${output}/standard.txt"/>
    <java fork="false" classname="A" output="${stdout}"
          logError="true" inputstring="">
      <classpath location="${output}"/>
    </java>
    <au:assertResourceContains resource="${stdout}"
                               value="to System.out"/>
    <au:assertResourceDoesntContain resource="${stdout}"
                                    value="to System.err"/>
    <au:assertLogContains text="to System.err"/>
  </target>

</project>

