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

  <!-- ==================================================================== -->
  <!-- Compile                                                              -->
  <!-- ==================================================================== -->
  <path id="compile.cp">
    <pathelement location="${testng.jar}" />
    <fileset dir="${lib.dir}" includes="${guice2.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>

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

  <path id="run.cp">
    <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}" />
    </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="false"
        methods="test.sample.Sample2.method1,test.sample.Sample2.method3"
        outputDir="${testng.report.dir}">
      <reporter classname="org.testng.reporters.XMLReporter">
        <property name="generateGroupsAttribute" value="true" />
      </reporter>
<!-- 
      <xmlfileset dir="${test.resources.dir}" includes="testng-single.xml"/>
 -->
     </testng>

      <echo>Report created in ${testng.report.dir}</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>
</project>
