mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-14 11:03:09 +02:00
ef0b1bd9dd
Starting point for that refactoring: it turned out that the tests was not independent. The DefaultValueCache which is a singleton keeps the status over various tests. Success of test execution depends on the order test execution. We have now * a dedicated rule for resetting the default value cache * JenkinsConfiguration rule (which already provided facilities for dealing with the configuration) has been replaced by a readYaml rule. From the PipelineUnit test framework we get already a handler for libraryResource, which is also part of the setup of the default values. * An auxiliar class which combines the * JenkinsSetupRule (registers the lib) * JenkinsReadYamlRule (provides facilities for Yaml parsing) * JenkinsResetDefaultValueCacheRule (cleans up the DefaultValueCache) into a rule chain. By using this rule chain we ensure that our setup OK (piper lib registered, and default config can be setup in a clean way).
58 lines
1.9 KiB
Groovy
58 lines
1.9 KiB
Groovy
import org.junit.Before
|
|
import org.junit.Rule
|
|
import org.junit.Test
|
|
import org.junit.rules.RuleChain
|
|
import org.yaml.snakeyaml.Yaml
|
|
|
|
import com.lesfurets.jenkins.unit.BasePipelineTest
|
|
|
|
import util.Rules
|
|
|
|
import static org.junit.Assert.assertEquals
|
|
import static org.junit.Assert.assertNotNull
|
|
|
|
class SetupCommonPipelineEnvironmentTest extends BasePipelineTest {
|
|
|
|
def usedConfigFile
|
|
|
|
def setupCommonPipelineEnvironmentScript
|
|
|
|
def commonPipelineEnvironment
|
|
|
|
@Rule
|
|
public RuleChain rules = Rules.getCommonRules(this)
|
|
|
|
@Before
|
|
void init() {
|
|
|
|
def examplePipelineConfig = new File('test/resources/test_pipeline_config.yml').text
|
|
|
|
helper.registerAllowedMethod("readYaml", [Map], { Map parameters ->
|
|
Yaml yamlParser = new Yaml()
|
|
if(parameters.text) {
|
|
return yamlParser.load(parameters.text)
|
|
}
|
|
|
|
usedConfigFile = parameters.file
|
|
return yamlParser.load(examplePipelineConfig)
|
|
})
|
|
|
|
helper.registerAllowedMethod("fileExists", [String], { String path ->
|
|
return path.endsWith('.pipeline/config.yml')
|
|
})
|
|
|
|
setupCommonPipelineEnvironmentScript = loadScript("setupCommonPipelineEnvironment.groovy").setupCommonPipelineEnvironment
|
|
commonPipelineEnvironment = loadScript('commonPipelineEnvironment.groovy').commonPipelineEnvironment
|
|
}
|
|
|
|
@Test
|
|
void testIsConfigurationAvailable() throws Exception {
|
|
setupCommonPipelineEnvironmentScript.call(script: [commonPipelineEnvironment: commonPipelineEnvironment])
|
|
|
|
assertEquals('.pipeline/config.yml', usedConfigFile)
|
|
assertNotNull(commonPipelineEnvironment.configuration)
|
|
assertEquals('develop', commonPipelineEnvironment.configuration.general.productiveBranch)
|
|
assertEquals('my-maven-docker', commonPipelineEnvironment.configuration.steps.mavenExecute.dockerImage)
|
|
}
|
|
}
|