jruby-gradle-plugin/base-plugin/src/test/groovy/com/github/jrubygradle/JRubyExecTraitsSpec.groovy

89 lines
2.2 KiB
Groovy

package com.github.jrubygradle
import com.github.jrubygradle.internal.JRubyExecTraits
import org.gradle.api.DefaultTask
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.testfixtures.ProjectBuilder
import spock.lang.*
/**
*/
class JRubyExecTraitsSpec extends Specification {
Project project
Task task
final String taskName = 'abstract-spock-task'
void setup() {
project = ProjectBuilder.builder().build()
task = project.task(taskName, type: SpockJRubyExecTraitsTask)
}
void "Prepare a basic environment"() {
when:
Map preparedEnv = task.getPreparedEnvironment([:])
then:
preparedEnv.size() > 0
}
void "Filter out RVM environment values by default"() {
when:
Map preparedEnv = task.getPreparedEnvironment([
'GEM_HOME' : '/tmp/spock',
'RUBY_VERSION' : 'notaversion',
'rvm_ruby_string' : 'jruby-head',
])
then:
preparedEnv['GEM_HOME'] != '/tmp/spock'
!preparedEnv.containsKey('rvm_ruby_string')
}
void "Avoid filtering out the RVM environment if inheritRubyEnv == true"() {
given:
task.inheritRubyEnv true
when:
Map preparedEnv = task.getPreparedEnvironment([
'GEM_PATH' : '/tmp/spock/invalid',
])
then:
preparedEnv.containsKey('GEM_PATH') }
void "setting gemWorkDir should work"() {
given:
String workDir = 'customGemDir'
when:
project.configure(task) {
gemWorkDir workDir
}
then:
task.gemWorkDir == task.getGemWorkDir()
task.gemWorkDir.absolutePath.endsWith(workDir)
}
void "setting gemWorkDir with traits"() {
given:
String workDir = 'customGemDir'
task = project.task('spock', type: SpockJRubyExecTraitsTask)
when:
project.configure(task) {
gemWorkDir workDir
}
then:
task.gemWorkDir == task.getGemWorkDir()
task.gemWorkDir.absolutePath.endsWith(workDir)
}
static class SpockJRubyExecTraitsTask extends DefaultTask implements JRubyExecTraits {
}
}