| <?xml version="1.0"?> |
| <project name="test" basedir="."> |
| <path id="testclasses"> |
| <pathelement location="../../../../build/testcases" /> |
| <pathelement path="${java.class.path}" /> |
| </path> |
| |
| <mapper id="testmapper" |
| classname="org.apache.tools.ant.taskdefs.MultiMapTest$TestMapper" |
| classpathref="testclasses"/> |
| |
| <property name="map.ext" value=".copy2"/> |
| <property name="rootScratchDir" value="test_multi_mapper_scratch_area"/> |
| <property name="baseScratchSrc" value="${rootScratchDir}/src"/> |
| <property name="baseScratchDest" value="${rootScratchDir}/dest"/> |
| |
| <target name="setup"> |
| <delete dir="${baseScratchSrc}"/> |
| <mkdir dir="${baseScratchSrc}"/> |
| <delete dir="${baseScratchDest}"/> |
| <mkdir dir="${baseScratchDest}"/> |
| <touch file="${baseScratchSrc}/somefile.txt"/> |
| </target> |
| |
| <!-- test simple single file to multiple file move --> |
| <target name="multicopy" depends="setup"> |
| <copy todir="${baseScratchDest}" enablemultiplemappings="true"> |
| <fileset dir="${baseScratchSrc}" includes="somefile.txt"/> |
| <mapper refid="testmapper"/> |
| </copy> |
| <condition property="multicopy.outcome"> |
| <and> |
| <available file="${baseScratchDest}/somefile.txt"/> |
| <available file="${baseScratchDest}/somefile.txt${map.ext}"/> |
| </and> |
| </condition> |
| <fail unless="multicopy.outcome">multicopy failed</fail> |
| </target> |
| |
| <target name="multimove" depends="setup"> |
| <move todir="${baseScratchDest}" enablemultiplemappings="true"> |
| <fileset dir="${baseScratchSrc}" includes="somefile.txt"/> |
| <mapper refid="testmapper"/> |
| </move> |
| <condition property="test2.outcome"> |
| <and> |
| <available file="${baseScratchDest}/somefile.txt"/> |
| <available file="${baseScratchDest}/somefile.txt${map.ext}"/> |
| <not> |
| <available file="${baseScratchSrc}/somefile.txt"/> |
| </not> |
| <not> |
| <available file="${baseScratchSrc}/somefile.txt${map.ext}"/> |
| </not> |
| </and> |
| </condition> |
| <fail unless="test2.outcome">mulitmove failed</fail> |
| </target> |
| |
| <!-- |
| test traditional single file to single file copy explicitly telling |
| task to ignore multiple mappings |
| --> |
| |
| <target name="singlecopy" depends="setup"> |
| <copy todir="${baseScratchDest}" enablemultiplemappings="false"> |
| <fileset dir="${baseScratchSrc}" includes="somefile.txt"/> |
| <mapper refid="testmapper"/> |
| </copy> |
| <condition property="singlecopy.outcome"> |
| <and> |
| <available file="${baseScratchDest}/somefile.txt"/> |
| <not> |
| <available file="${baseScratchDest}/somefile.txt${map.ext}"/> |
| </not> |
| <available file="${baseScratchSrc}/somefile.txt"/> |
| </and> |
| </condition> |
| <fail unless="singlecopy.outcome">singlecopy failed</fail> |
| </target> |
| |
| <target name="singlemove" depends="setup"> |
| <move todir="${baseScratchDest}" enablemultiplemappings="false"> |
| <fileset dir="${baseScratchSrc}" includes="somefile.txt"/> |
| <mapper refid="testmapper"/> |
| </move> |
| <condition property="singlemove.outcome"> |
| <and> |
| <available file="${baseScratchDest}/somefile.txt"/> |
| <not> |
| <available file="${baseScratchDest}/somefile.txt${map.ext}"/> |
| </not> |
| <not> |
| <available file="${baseScratchSrc}/somefile.txt"/> |
| </not> |
| </and> |
| </condition> |
| <fail unless="singlemove.outcome">singlemove failed</fail> |
| </target> |
| |
| <!-- test dir w/ file + empty dir multimap copy --> |
| <target name="copywithempty"> |
| <delete dir="${baseScratchSrc}"/> |
| <mkdir dir="${baseScratchSrc}/dirwithfile"/> |
| <mkdir dir="${baseScratchSrc}/emptydir"/> |
| <touch file="${baseScratchSrc}/dirwithfile/somefile.txt"/> |
| |
| <delete dir="${baseScratchDest}"/> |
| <mkdir dir="${baseScratchDest}"/> |
| |
| <copy todir="${baseScratchDest}" enablemultiplemappings="true"> |
| <fileset dir="${baseScratchSrc}" includes="**/*"/> |
| <mapper refid="testmapper"/> |
| </copy> |
| <condition property="copywithempty.outcome"> |
| <and> |
| <available file="${baseScratchDest}/dirwithfile"/> |
| <available file="${baseScratchDest}/dirwithfile${map.ext}"/> |
| <available file="${baseScratchDest}/dirwithfile/somefile.txt"/> |
| <available file="${baseScratchDest}/dirwithfile/somefile.txt${map.ext}"/> |
| <not> |
| <available file="${baseScratchDest}/dirwithfile${map.ext}/somefile.txt"/> |
| </not> |
| <not> |
| <available file="${baseScratchDest}/dirwithfile${map.ext}/somefile.txt${map.ext}"/> |
| </not> |
| <available file="${baseScratchDest}/emptydir"/> |
| <available file="${baseScratchDest}/emptydir${map.ext}"/> |
| </and> |
| </condition> |
| <fail unless="copywithempty.outcome">copywithempty failed</fail> |
| </target> |
| <!-- test dir w/ file + empty dir multimap move --> |
| <target name="movewithempty"> |
| <delete dir="${baseScratchSrc}"/> |
| <mkdir dir="${baseScratchSrc}/dirwithfile"/> |
| <mkdir dir="${baseScratchSrc}/emptydir"/> |
| <touch file="${baseScratchSrc}/dirwithfile/somefile.txt"/> |
| |
| <delete dir="${baseScratchDest}"/> |
| <mkdir dir="${baseScratchDest}"/> |
| |
| <move todir="${baseScratchDest}" enablemultiplemappings="true"> |
| <fileset dir="${baseScratchSrc}" includes="**/*"/> |
| <mapper refid="testmapper"/> |
| </move> |
| <condition property="movewithempty.outcome"> |
| <and> |
| <available file="${baseScratchDest}/dirwithfile"/> |
| <available file="${baseScratchDest}/dirwithfile${map.ext}"/> |
| <available file="${baseScratchDest}/dirwithfile/somefile.txt"/> |
| <available file="${baseScratchDest}/dirwithfile/somefile.txt${map.ext}"/> |
| <not> |
| <available file="${baseScratchDest}/dirwithfile${map.ext}/somefile.txt"/> |
| </not> |
| <not> |
| <available file="${baseScratchDest}/dirwithfile${map.ext}/somefile.txt${map.ext}"/> |
| </not> |
| <available file="${baseScratchDest}/emptydir"/> |
| <available file="${baseScratchDest}/emptydir${map.ext}"/> |
| <not> |
| <available file="${baseScratchSrc}/dirwithfile"/> |
| </not> |
| <not> |
| <available file="${baseScratchSrc}/emptydir"/> |
| </not> |
| </and> |
| </condition> |
| <fail unless="movewithempty.outcome">movewithempty failed</fail> |
| </target> |
| |
| <target name="cleanup"> |
| <delete dir="${rootScratchDir}"/> |
| </target> |
| |
| </project> |