mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-14 11:03:09 +02:00
d31e0e73cb
- In ArtifactSetVersionTest the method was declared, but not used at all. - In MtaUtilsTest there was a particular Object created for the sole purpose of serving as script. For that we have the nullScript. - In DockerArtifactVersioningTest 'this' was configured to serve as script. There is basically no reason why the instance of the JUnitTest should serve as script. Instead we have the nullScript for that purpose.
227 lines
7.1 KiB
Groovy
227 lines
7.1 KiB
Groovy
package com.sap.piper
|
|
|
|
import org.junit.Before
|
|
import org.junit.ClassRule
|
|
import org.junit.Rule
|
|
import org.junit.Test
|
|
import org.junit.rules.ExpectedException
|
|
import org.junit.rules.RuleChain
|
|
import org.junit.rules.TemporaryFolder
|
|
import org.yaml.snakeyaml.Yaml
|
|
|
|
import groovy.json.JsonSlurper
|
|
import hudson.AbortException
|
|
import util.BasePiperTest
|
|
import util.JenkinsReadYamlRule
|
|
import util.Rules
|
|
|
|
|
|
class MtaUtilsTest extends BasePiperTest {
|
|
private static srcPackageJson = 'test/resources/MtaUtils/package.json'
|
|
private static mtaTemplate = 'resources/template_mta.yml'
|
|
private static data
|
|
private static String generatedFile
|
|
private static String targetMtaDescriptor
|
|
private File badJson
|
|
private mtaUtils
|
|
|
|
private ExpectedException thrown= ExpectedException.none();
|
|
|
|
@ClassRule
|
|
public static TemporaryFolder tmp = new TemporaryFolder()
|
|
|
|
@Rule
|
|
public RuleChain ruleChain = Rules
|
|
.getCommonRules(this)
|
|
.around(new JenkinsReadYamlRule(this))
|
|
.around(thrown)
|
|
|
|
@Before
|
|
void init() {
|
|
targetMtaDescriptor = "${tmp.getRoot()}/generated_mta.yml"
|
|
mtaUtils = new MtaUtils(nullScript)
|
|
|
|
this.helper.registerAllowedMethod('readJSON', [Map], { Map parameters ->
|
|
return new JsonSlurper().parse(new File(parameters.file))
|
|
})
|
|
|
|
this.helper.registerAllowedMethod('libraryResource', [Map], { Map parameters ->
|
|
new Yaml().load(new File(mtaTemplate).text)
|
|
})
|
|
|
|
this.helper.registerAllowedMethod('readYaml', [], {
|
|
return new Yaml().load(new FileReader(mtaTemplate))
|
|
})
|
|
|
|
this.helper.registerAllowedMethod('writeYaml', [Map], { Map parameters ->
|
|
generatedFile = parameters.file
|
|
data = parameters.data
|
|
})
|
|
|
|
this.helper.registerAllowedMethod('fileExists', [String.class], { true })
|
|
}
|
|
|
|
@Test
|
|
void testStraightForward(){
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(srcPackageJson, targetMtaDescriptor, 'testAppName')
|
|
assert data.ID == 'com.mycompany.northwind'
|
|
assert data.version == '1.0.3'
|
|
assert data.modules.name[0] == 'testAppName'
|
|
assert data.modules.parameters.version[0] == '1.0.3-${timestamp}'
|
|
}
|
|
|
|
@Test
|
|
void testSrcPackageJsonEmpty() {
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("The parameter 'srcPackageJson' can not be null or empty.")
|
|
mtaUtils.generateMtaDescriptorFromPackageJson('', targetMtaDescriptor, 'testApplicationName')
|
|
}
|
|
|
|
@Test
|
|
void testSrcPackageJsonNull() {
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("The parameter 'srcPackageJson' can not be null or empty.")
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(null, targetMtaDescriptor, 'testApplicationName')
|
|
}
|
|
|
|
@Test
|
|
void testTargetMtaDescriptorEmpty() {
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("The parameter 'targetMtaDescriptor' can not be null or empty.")
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(srcPackageJson, '', 'testApplicationName')
|
|
}
|
|
|
|
@Test
|
|
void testTargetMtaDescriptorNull() {
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("The parameter 'targetMtaDescriptor' can not be null or empty.")
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(srcPackageJson, null, 'testApplicationName')
|
|
}
|
|
|
|
@Test
|
|
void testApplicationNameEmpty() {
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("The parameter 'applicationName' can not be null or empty.")
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(srcPackageJson, targetMtaDescriptor, '')
|
|
}
|
|
|
|
@Test
|
|
void testApplicationNameNull() {
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("The parameter 'applicationName' can not be null or empty.")
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(srcPackageJson, targetMtaDescriptor, null)
|
|
}
|
|
|
|
@Test
|
|
void testMissingNameInJson() {
|
|
badJson = tmp.newFile('missingName.json')
|
|
badJson.text = missingNameInJson()
|
|
badJson.dump()
|
|
|
|
thrown.expect(AbortException)
|
|
thrown.expectMessage("'name' not set in the given package.json.")
|
|
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(badJson.absolutePath, targetMtaDescriptor, 'testApplicationName')
|
|
}
|
|
|
|
@Test
|
|
void testEmptyNameInJson() {
|
|
badJson = tmp.newFile('emptyName.json')
|
|
badJson.text = emptyNameInJson()
|
|
badJson.dump()
|
|
|
|
thrown.expect(AbortException)
|
|
thrown.expectMessage("'name' not set in the given package.json.")
|
|
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(badJson.absolutePath, targetMtaDescriptor, 'testApplicationName')
|
|
}
|
|
|
|
@Test
|
|
void testMissingVersionInJson() {
|
|
badJson = tmp.newFile('missingVersion.json')
|
|
badJson.text = missingVersionInJson()
|
|
badJson.dump()
|
|
|
|
thrown.expect(AbortException)
|
|
thrown.expectMessage("'version' not set in the given package.json.")
|
|
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(badJson.absolutePath, targetMtaDescriptor, 'testApplicationName')
|
|
}
|
|
|
|
@Test
|
|
void testEmptyVersionInJson() {
|
|
badJson = tmp.newFile('emptyVersion.json')
|
|
badJson.text = emptyVersionInJson()
|
|
badJson.dump()
|
|
|
|
thrown.expect(AbortException)
|
|
thrown.expectMessage("'version' not set in the given package.json.")
|
|
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(badJson.absolutePath, targetMtaDescriptor, 'testApplicationName')
|
|
}
|
|
|
|
@Test
|
|
void testFileGenerated() {
|
|
mtaUtils.generateMtaDescriptorFromPackageJson(srcPackageJson, targetMtaDescriptor, 'testApplicationName')
|
|
assert generatedFile.equals(targetMtaDescriptor)
|
|
}
|
|
|
|
|
|
private missingNameInJson() {
|
|
return '''
|
|
{
|
|
"version": "1.0.3",
|
|
"description": "Webshop application for test purposes",
|
|
"private": true,
|
|
"devDependencies": {
|
|
"grunt": "1.0.1",
|
|
"@sap/grunt-sapui5-bestpractice-build": "^1.3.17"
|
|
}
|
|
}
|
|
'''
|
|
}
|
|
|
|
private emptyNameInJson() {
|
|
return '''
|
|
{
|
|
"name": "",
|
|
"version": "1.0.3",
|
|
"description": "Webshop application for test purposes",
|
|
"private": true,
|
|
"devDependencies": {
|
|
"grunt": "1.0.1",
|
|
"@sap/grunt-sapui5-bestpractice-build": "^1.3.17"
|
|
}
|
|
}
|
|
'''
|
|
}
|
|
private missingVersionInJson() {
|
|
return '''
|
|
{
|
|
"name": "com.mycompany.northwind",
|
|
"description": "Webshop application for test purposes",
|
|
"private": true,
|
|
"devDependencies": {
|
|
"grunt": "1.0.1",
|
|
"@sap/grunt-sapui5-bestpractice-build": "^1.3.17"
|
|
}
|
|
}
|
|
'''
|
|
}
|
|
|
|
private emptyVersionInJson() {
|
|
return '''
|
|
{
|
|
"name": "com.mycompany.northwind",
|
|
"version": "",
|
|
"description": "Webshop application for test purposes",
|
|
"private": true,
|
|
"devDependencies": {
|
|
"grunt": "1.0.1",
|
|
"@sap/grunt-sapui5-bestpractice-build": "^1.3.17"
|
|
}
|
|
}
|
|
'''
|
|
}
|
|
}
|