<project name="testng" default="all" basedir=".">

  <property file="build.properties"/>

  <property name="report.dir" value="${test.output.dir}"/>
  <property name="junit.report.dir" value="${report.dir}/test-tmp"/>
  <property name="testng.report.dir" value="${report.dir}"/>

  <target name="all" depends="prepare,compile,run,reports,done"/>

  <!-- ==================================================================== -->
  <!-- Compile                                                              -->
  <!-- ==================================================================== -->
  <path id="compile.cp">
    <pathelement location="${testng.jar}" />
    <fileset dir="${lib.dir}" includes="${guice2.jar}" />
    <fileset dir="${lib.dir}" includes="${junit.jar}" />
    <fileset dir="${lib.dir}" includes="aopalliance-1.0.jar" />
  </path>

  <target name="env:info">
    <echo>
BASEDIR          =${basedir}
TEST.DIR         =${test.dir}
TEST.BUILD.DIR   =${test.build.dir}
REPORT.DIR       =${report.dir}
JUNIT.REPORT.DIR =${junit.report.dir}
TESTNG.REPORT.DIR=${testng.report.dir}
    </echo>
  </target>

  <target name="compile" depends="prepare">
    <echo message="                                 -- Compiling tests --"/>

    <property name="build.compiler" value="modern"/>
    <javac debug="true"
           source="1.5"
           classpathref="compile.cp"
           srcdir="${test.dir}"
           destdir="${test.build.dir}"
    />

  </target>

  <target name="prepare">
    <tstamp/>
    <mkdir dir="${test.build.dir}"/>
    <mkdir dir="${junit.report.dir}"/>
    <mkdir dir="${testng.report.dir}"/>

  <taskdef name="testng"
             classname="org.testng.TestNGAntTask"
             classpath="${build.dir}"/>
  </target>

<!--
  <property name="cobertura.dir" value="../cobertura-1.9.4.1" />

  <path id="cobertura.classpath">
      <fileset dir="${cobertura.dir}">
          <include name="cobertura.jar" />
          <include name="lib/**/*.jar" />
      </fileset>
  </path>
-->

  <!-- ==================================================================== -->
  <!-- Run                                                             -->
  <!-- ==================================================================== -->

  <path id="run.cp">
<!--
  	<path location="target/instrumented-classes" />
  	<path refid="cobertura.classpath" />
-->
    <path refid="compile.cp"/>
    <pathelement location="${test.build.dir}"/>
  </path>

  <target name="run" description="Run tests" depends="compile,copy-resources">
    <echo message="                                 -- Running tests --"/>
    <echo message="                                 -- ${testng.jar} --" />
    <testng classpathref="run.cp"
            outputdir="${testng.report.dir}">
      <xmlfileset dir="${test.resources.dir}" includes="testng.xml"/>
      <jvmarg value="-Dtest.resources.dir=${test.resources.dir}" />
      <jvmarg value="-Dsun.io.serialization.extendedDebugInfo=true" />
    </testng>
  </target>

  <target name="copy-resources" description="Copies resources.">
    <copy verbose="false"
          file="${src.resources.dir}/testngtasks"
          todir="${build.dir}" />
    <copy todir="${build.dir}">
      <fileset dir="${src.resources.dir}">
        <exclude name="**/.*" />
        <exclude name="**/CVS/*" />
      </fileset>
    </copy>
  </target>

  <target name="run:single" description="Run 1 property file named with the ant property test" depends="compile">
      <echo message="                                 -- testng-tests-run1 --"/>

    <testng outputdir="${testng.report.dir}"
        classpathref="run.cp"
        useDefaultListeners="true"
        outputDir="${testng.report.dir}">
      <xmlfileset dir="${test.resources.dir}" includes="testng-single.xml"/>
     </testng>

      <echo>Report created in    open ${testng.report.dir}/index.html</echo>
  </target>

  <target name="run:antprop" description="Run a test to see if ant system propertes are passed correctly" depends="compile">
      <echo message="                                 -- testng-tests-run-antprop --"/>
      <property name="syspropset1" value="value 1"/>
      <property name="syspropset2" value="value 2"/>
      <propertyset id="propset1">
          <propertyref name="syspropset1"/>
          <propertyref name="syspropset2"/>
      </propertyset>

      <testng outputdir="${testng.report.dir}"
              classpathref="run.cp">
          <xmlfileset dir="${test.resources.dir}" includes="testng-single3.xml"/>
          <propertyset refid="propset1"/>
          <sysproperty key="sysprop1" value="value 3"/>
      </testng>
  </target>

  <!-- ==================================================================== -->
  <!-- Run specific configuration                                           -->
  <!-- ==================================================================== -->
  <target name="run:conf"
          if="testng.conf"
          depends="clean:reports,compile"
          description="Run specified tests">
    <echo message="                                 -- testng-tests-run --"/>
    <echo message="using: ${testng.conf}.xml"/>

    <testng classpathref="run.cp"
            outputDir="${testng.report.dir}">
        <xmlfileset dir="${test.resources.dir}" includes="${testng.conf}.xml"/>
    </testng>

    <antcall target="clean.tmp"/>
  </target>


  <!-- ==================================================================== -->
  <!-- Reports                                                              -->
  <!-- ==================================================================== -->

  <target name="reports">
    <junitreport todir="${junit.report.dir}">
      <fileset dir="${testng.report.dir}">
        <include name="*.xml"/>
        <exclude name="testng-failed.xml"/>
        <exclude name="testng-results.xml" />
      </fileset>
      <report format="noframes" todir="${junit.report.dir}"/>
    </junitreport>
  </target>


  <target name="clean.tmp">
      <delete dir="${test.output.dir}"/>
  </target>

  <target name="clean:reports">
      <delete dir="${report.dir}"/>
      <delete dir="${junit.report.dir}"/>
  </target>

  <target name="clean" depends="clean.tmp,clean:reports">
    <echo message="                                 -- test clean --"/>

    <delete dir="${test.build.dir}"/>
  </target>

  <target name="done">
    <echo>Reports can be found in:    open ${testng.report.dir}/index.html</echo>
  </target>

</project>
