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

