grails-profiles/rest-api/commands/generate-functional-test.groovy (31 lines of code) (raw):
import org.grails.cli.interactive.completers.DomainClassCompleter
description( "Generates a functional test for a controller that performs REST operations" ) {
usage "grails generate-functional-test [DOMAIN CLASS]"
argument name:'Domain Class', description:"The name of the domain class", required:true
completer DomainClassCompleter
flag name:'force', description:"Whether to overwrite existing files"
}
if(args) {
def classNames = args
if(args[0] == '*') {
classNames = resources("file:grails-app/domain/**/*.groovy").collect { className(it) }
}
for(arg in classNames) {
def sourceClass = source(arg)
boolean overwrite = flag('force')
if(sourceClass) {
def model = model(sourceClass)
render template: template('artifacts/scaffolding/FunctionalSpec.groovy'),
destination: file("src/integration-test/groovy/${model.packagePath}/${model.convention('FunctionalSpec')}.groovy"),
model: model,
overwrite: overwrite
addStatus "Scaffolding completed for ${projectPath(sourceClass)}"
}
else {
error "Domain class not found for name $arg"
}
}
}
else {
error "No domain class specified"
}