mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-14 11:03:09 +02:00
254a4e2017
registerAllowedMethod for sh call not used anymore since we mock the ChangeManagement utils class. The sh calls was triggered from the utils class. Since we mock that class, there is no sh call anymore.
143 lines
5.1 KiB
Groovy
143 lines
5.1 KiB
Groovy
import org.junit.Before
|
|
import org.junit.Rule
|
|
import org.junit.Test
|
|
import org.junit.rules.ExpectedException
|
|
import org.junit.rules.RuleChain
|
|
|
|
import com.sap.piper.cm.ChangeManagement
|
|
import com.sap.piper.cm.ChangeManagementException
|
|
|
|
import util.BasePiperTest
|
|
import util.JenkinsStepRule
|
|
import util.JenkinsLoggingRule
|
|
import util.Rules
|
|
|
|
import hudson.AbortException
|
|
|
|
|
|
public class TransportRequestUploadFileTest extends BasePiperTest {
|
|
|
|
private ExpectedException thrown = new ExpectedException()
|
|
private JenkinsStepRule jsr = new JenkinsStepRule(this)
|
|
private JenkinsLoggingRule jlr = new JenkinsLoggingRule(this)
|
|
|
|
@Rule
|
|
public RuleChain ruleChain = Rules.getCommonRules(this)
|
|
.around(thrown)
|
|
.around(jsr)
|
|
.around(jlr)
|
|
|
|
@Before
|
|
public void setup() {
|
|
|
|
helper.registerAllowedMethod('usernamePassword', [Map.class], {m -> return m})
|
|
|
|
helper.registerAllowedMethod('withCredentials', [List, Closure], { l, c ->
|
|
|
|
credentialsId = l[0].credentialsId
|
|
binding.setProperty('username', 'anonymous')
|
|
binding.setProperty('password', '********')
|
|
try {
|
|
c()
|
|
} finally {
|
|
binding.setProperty('username', null)
|
|
binding.setProperty('password', null)
|
|
}
|
|
})
|
|
|
|
nullScript.commonPipelineEnvironment.configuration = [steps:
|
|
[transportRequestUploadFile:
|
|
[
|
|
credentialsId: 'CM',
|
|
endpoint: 'https://example.org/cm'
|
|
]
|
|
]
|
|
]
|
|
}
|
|
|
|
@Test
|
|
public void changeDocumentIdNotProvidedTest() {
|
|
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("Change document id not provided (parameter: 'changeDocumentId' or via commit history).")
|
|
|
|
ChangeManagement cm = new ChangeManagement(nullScript) {
|
|
String getChangeDocumentId(
|
|
String from,
|
|
String to,
|
|
String pattern,
|
|
String format
|
|
) {
|
|
throw new ChangeManagementException('Cannot retrieve changeId from git commits.')
|
|
}
|
|
}
|
|
|
|
jsr.step.call(script: nullScript, transportRequestId: '001', applicationId: 'app', filePath: '/path', cmUtils: cm)
|
|
}
|
|
|
|
@Test
|
|
public void transportRequestIdNotProvidedTest() {
|
|
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("ERROR - NO VALUE AVAILABLE FOR transportRequestId")
|
|
|
|
jsr.step.call(script: nullScript, changeDocumentId: '001', applicationId: 'app', filePath: '/path')
|
|
}
|
|
|
|
@Test
|
|
public void applicationIdNotProvidedTest() {
|
|
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("ERROR - NO VALUE AVAILABLE FOR applicationId")
|
|
|
|
jsr.step.call(script: nullScript, changeDocumentId: '001', transportRequestId: '001', filePath: '/path')
|
|
}
|
|
|
|
@Test
|
|
public void filePathNotProvidedTest() {
|
|
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("ERROR - NO VALUE AVAILABLE FOR filePath")
|
|
|
|
jsr.step.call(script: nullScript, changeDocumentId: '001', transportRequestId: '001', applicationId: 'app')
|
|
}
|
|
|
|
@Test
|
|
public void uploadFileToTransportRequestFailureTest() {
|
|
|
|
ChangeManagement cm = new ChangeManagement(nullScript) {
|
|
void uploadFileToTransportRequest(String changeId,
|
|
String transportRequestId,
|
|
String applicationId,
|
|
String filePath,
|
|
String endpoint,
|
|
String username,
|
|
String password,
|
|
String cmclientOpts) {
|
|
throw new ChangeManagementException('Exception message')
|
|
}
|
|
}
|
|
|
|
thrown.expect(AbortException)
|
|
thrown.expectMessage("Exception message")
|
|
|
|
jsr.step.call(script: nullScript,
|
|
changeDocumentId: '001',
|
|
transportRequestId: '001',
|
|
applicationId: 'app',
|
|
filePath: '/path',
|
|
cmUtils: cm)
|
|
}
|
|
|
|
@Test
|
|
public void uploadFileToTransportRequestSuccessTest() {
|
|
|
|
helper.registerAllowedMethod('sh', [Map], { Map m -> return 0 })
|
|
|
|
jsr.step.call(script: nullScript, changeDocumentId: '001', transportRequestId: '001', applicationId: 'app', filePath: '/path')
|
|
|
|
assert jlr.log.contains("[INFO] Uploading file '/path' to transport request '001' of change document '001'.")
|
|
assert jlr.log.contains("[INFO] File '/path' has been successfully uploaded to transport request '001' of change document '001'.")
|
|
}
|
|
}
|