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