mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-12 10:55:20 +02:00
654dea4b3e
Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com> Co-authored-by: Florian Wilhelm <florian.wilhelm02@sap.com>
159 lines
5.5 KiB
Groovy
159 lines
5.5 KiB
Groovy
import org.junit.Before
|
|
import org.junit.Rule
|
|
import org.junit.Test
|
|
import org.junit.rules.RuleChain
|
|
import util.BasePiperTest
|
|
import util.JenkinsFileExistsRule
|
|
import util.JenkinsReadFileRule
|
|
import util.JenkinsReadYamlRule
|
|
import util.JenkinsStepRule
|
|
import util.JenkinsWriteFileRule
|
|
import util.Rules
|
|
|
|
import static org.junit.Assert.assertEquals
|
|
import static org.junit.Assert.assertFalse
|
|
import static org.junit.Assert.assertNull
|
|
import static org.junit.Assert.assertTrue
|
|
|
|
class PiperLoadGlobalExtensionsTest extends BasePiperTest {
|
|
|
|
private Map checkoutParameters
|
|
private boolean checkoutCalled = false
|
|
private List filesRead = []
|
|
private List fileWritten = []
|
|
|
|
private JenkinsStepRule stepRule = new JenkinsStepRule(this)
|
|
private JenkinsReadYamlRule readYamlRule = new JenkinsReadYamlRule(this)
|
|
private JenkinsFileExistsRule fileExistsRule = new JenkinsFileExistsRule(this, [])
|
|
|
|
@Rule
|
|
public RuleChain ruleChain = Rules
|
|
.getCommonRules(this)
|
|
.around(stepRule)
|
|
.around(readYamlRule)
|
|
.around(fileExistsRule)
|
|
|
|
@Before
|
|
void init() {
|
|
helper.registerAllowedMethod("checkout", [Map.class], { map ->
|
|
checkoutParameters = map
|
|
checkoutCalled = true
|
|
})
|
|
helper.registerAllowedMethod("readFile", [Map.class], { map ->
|
|
filesRead.add(map.file)
|
|
return ""
|
|
})
|
|
helper.registerAllowedMethod("writeFile", [Map.class], { map ->
|
|
fileWritten.add(map.file)
|
|
})
|
|
}
|
|
|
|
@Test
|
|
void testNotConfigured() throws Exception {
|
|
stepRule.step.piperLoadGlobalExtensions(script: nullScript)
|
|
assertFalse(checkoutCalled)
|
|
}
|
|
|
|
@Test
|
|
void testUrlConfigured() throws Exception {
|
|
|
|
nullScript.commonPipelineEnvironment.configuration = [
|
|
general: [
|
|
globalExtensionsRepository: 'https://my.git.example/foo/bar.git'
|
|
]
|
|
]
|
|
|
|
stepRule.step.piperLoadGlobalExtensions(script: nullScript)
|
|
assertTrue(checkoutCalled)
|
|
assertEquals('GitSCM', checkoutParameters.$class)
|
|
assertEquals(1, checkoutParameters.userRemoteConfigs.size())
|
|
assertEquals([url: 'https://my.git.example/foo/bar.git'], checkoutParameters.userRemoteConfigs[0])
|
|
}
|
|
|
|
@Test
|
|
void testVersionConfigured() throws Exception {
|
|
|
|
nullScript.commonPipelineEnvironment.configuration = [
|
|
general: [
|
|
globalExtensionsRepository: 'https://my.git.example/foo/bar.git',
|
|
globalExtensionsVersion: 'v35'
|
|
]
|
|
]
|
|
|
|
stepRule.step.piperLoadGlobalExtensions(script: nullScript)
|
|
assertTrue(checkoutCalled)
|
|
assertEquals(1, checkoutParameters.branches.size())
|
|
assertEquals([name: 'v35'], checkoutParameters.branches[0])
|
|
}
|
|
|
|
@Test
|
|
void testCredentialsConfigured() throws Exception {
|
|
|
|
nullScript.commonPipelineEnvironment.configuration = [
|
|
general: [
|
|
globalExtensionsRepository: 'https://my.git.example/foo/bar.git',
|
|
globalExtensionsRepositoryCredentialsId: 'my-credentials'
|
|
]
|
|
]
|
|
|
|
stepRule.step.piperLoadGlobalExtensions(script: nullScript)
|
|
assertTrue(checkoutCalled)
|
|
assertEquals(1, checkoutParameters.userRemoteConfigs.size())
|
|
assertEquals([url: 'https://my.git.example/foo/bar.git', credentialsId: 'my-credentials'], checkoutParameters.userRemoteConfigs[0])
|
|
}
|
|
|
|
@Test
|
|
void testExtensionConfigurationExists() throws Exception {
|
|
fileExistsRule.registerExistingFile('test/extension_configuration.yml')
|
|
|
|
nullScript.commonPipelineEnvironment.configuration = [
|
|
general: [
|
|
globalExtensionsDirectory: 'test',
|
|
globalExtensionsRepository: 'https://my.git.example/foo/bar.git'
|
|
]
|
|
]
|
|
|
|
Map prepareParameter = [:]
|
|
helper.registerAllowedMethod("prepareDefaultValues", [Map.class], { map ->
|
|
prepareParameter = map
|
|
})
|
|
|
|
stepRule.step.piperLoadGlobalExtensions(script: nullScript, customDefaults: ['default.yml'], customDefaultsFromFiles: ['file1.yml'])
|
|
assertTrue(checkoutCalled)
|
|
|
|
//File copied
|
|
assertTrue(filesRead.contains('test/extension_configuration.yml'))
|
|
assertTrue(fileWritten.contains('.pipeline/extension_configuration.yml'))
|
|
|
|
assertEquals(2, prepareParameter.customDefaultsFromFiles.size())
|
|
assertEquals('extension_configuration.yml', prepareParameter.customDefaultsFromFiles[0])
|
|
assertEquals('file1.yml', prepareParameter.customDefaultsFromFiles[1])
|
|
assertEquals(1, prepareParameter.customDefaults.size())
|
|
assertEquals('default.yml', prepareParameter.customDefaults[0])
|
|
}
|
|
|
|
@Test
|
|
void testLoadLibraries() throws Exception {
|
|
fileExistsRule.registerExistingFile('test/sharedLibraries.yml')
|
|
|
|
nullScript.commonPipelineEnvironment.configuration = [
|
|
general: [
|
|
globalExtensionsDirectory: 'test',
|
|
globalExtensionsRepository: 'https://my.git.example/foo/bar.git'
|
|
]
|
|
]
|
|
|
|
readYamlRule.registerYaml("test/sharedLibraries.yml", "[{name: my-extension-dependency, version: my-git-tag}]")
|
|
|
|
List libsLoaded = []
|
|
helper.registerAllowedMethod("library", [String.class], { lib ->
|
|
libsLoaded.add(lib)
|
|
})
|
|
|
|
stepRule.step.piperLoadGlobalExtensions(script: nullScript)
|
|
assertTrue(checkoutCalled)
|
|
assertEquals(1, libsLoaded.size())
|
|
assertEquals("my-extension-dependency@my-git-tag", libsLoaded[0].toString())
|
|
}
|
|
}
|