mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-14 11:03:09 +02:00
52bb1e842d
- In case a parameter is missing we do not thrown and AbortException anmore, but an IllegalArgumentExcpetion, since that exception is thrown by the configuration helper. The difference is: AbortExceptions are contained in the log without stacktrace, other exceptions are printed with stack trace. - Exception messages are changed to the standard error message triggered inside the configuration helper. In case the changeDocumentId is retrieved also from the commit history we keep an exception message pointing to that. - Having references to the parameters is droped. Instead the parameters are directly used from the configuration map. - in case of long signatures line breaks are inserted in order to simplify reading the code.
133 lines
4.6 KiB
Groovy
133 lines
4.6 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)
|
|
}
|
|
})
|
|
|
|
helper.registerAllowedMethod('sh', [Map], { Map m -> return 0 })
|
|
|
|
nullScript.commonPipelineEnvironment.configuration = [steps:
|
|
[transportRequestUploadFile:
|
|
[
|
|
credentialsId: 'CM',
|
|
endpoint: 'https://example.org/cm'
|
|
]
|
|
]
|
|
]
|
|
}
|
|
|
|
@Test
|
|
public void changeDocumentIdNotProvidedTest() {
|
|
|
|
thrown.expect(IllegalArgumentException)
|
|
thrown.expectMessage("ERROR - NO VALUE AVAILABLE FOR changeDocumentId")
|
|
|
|
jsr.step.call(script: nullScript, transportRequestId: '001', applicationId: 'app', filePath: '/path')
|
|
}
|
|
|
|
@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) {
|
|
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'.")
|
|
}
|
|
}
|