blob: 55f4f5025e0887817666b4e4ef7e292875cc61c5 [file] [log] [blame]
package groovy.util
import java.io.File
class AntTest extends GroovyTestCase {
void testAnt() {
ant = new AntBuilder()
// lets just call one task
ant.echo("hello")
// here"s an example of a block of Ant inside GroovyMarkup
ant.sequential {
echo("inside sequential")
myDir = "target/AntTest/"
mkdir(dir:myDir)
copy(todir:myDir) {
fileset(dir:"src/test") {
include(name:"**/*.groovy")
}
}
echo("done")
}
// now lets do some normal Groovy again
file = new File("target/AntTest/groovy/util/AntTest.groovy")
assert file.exists()
}
void testFileIteration() {
ant = new AntBuilder()
// lets create a scanner of filesets
scanner = ant.fileScanner {
fileset(dir:"src/test") {
include(name:"**/Ant*.groovy")
}
}
// now lets iterate over
found = false
for (f in scanner) {
println("Found file ${f}")
found = true
assert f instanceof File
assert f.name.endsWith(".groovy")
}
assert found
}
void testJunitTask() {
ant = new AntBuilder()
ant.junit {
test(name:'groovy.util.SomethingThatDoesNotExist')
}
}
void testPathBuilding() {
ant = new AntBuilder()
value = ant.path {
fileset(dir:"xdocs") {
include(name:"*.wiki")
}
}
assert value != null
println "Found path of type ${value.class.name}"
println value
}
void testTaskContainerAddTaskIsCalled() {
ant = new AntBuilder()
taskContainer = ant.parallel(){ // "Parallel" serves as a sample TaskContainer
ant.echo() // "Echo" without message to keep tests silent
}
// not very elegant, but the easiest way to get the ant internals...
assert taskContainer.dump() =~ 'nestedTasks=\\[org.apache.tools.ant.taskdefs.Echo@\\w+\\]'
}
void testTaskContainerExecutionSequence() {
ant = new AntBuilder()
SpoofTaskContainer.getSpoof().length = 0
PATH = 'task.path'
ant.path(id:PATH){ant.pathelement(location:'classes')}
['spoofcontainer':'SpoofTaskContainer', 'spoof':'SpoofTask'].each{ |pair|
ant.taskdef(name:pair.key, classname:'groovy.util.'+pair.value, classpathref:PATH)
}
ant.spoofcontainer(){
ant.spoof()
}
expectedSpoof =
"SpoofTaskContainer ctor\n"+
"SpoofTask ctor\n"+
"in addTask\n"+
"begin SpoofTaskContainer execute\n"+
"begin SpoofTask execute\n"+
"end SpoofTask execute\n"+
"end SpoofTaskContainer execute\n"
assertEquals expectedSpoof, SpoofTaskContainer.getSpoof().toString()
}
}