1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
sap-jenkins-library/test/groovy/TransportRequestCreateTest.groovy

136 lines
4.5 KiB
Groovy
Raw Normal View History

2018-06-20 11:36:41 +02:00
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
2018-06-20 11:36:41 +02:00
import util.BasePiperTest
import util.JenkinsStepRule
import util.JenkinsLoggingRule
import util.Rules
import hudson.AbortException
public class TransportRequestCreateTest 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:
[transportRequestCreate:
[
cmCredentialsId: 'CM',
cmEndpoint: 'https://example.org/cm'
]
]
]
}
@Test
public void changeIdNotProvidedTest() {
thrown.expect(AbortException)
thrown.expectMessage("Change document id not provided (parameter: 'changeDocumentId').")
2018-06-20 11:36:41 +02:00
jsr.step.call(script: nullScript, developmentSystemId: '001')
}
@Test
public void developmentSystemIdNotProvidedTest() {
thrown.expect(AbortException)
thrown.expectMessage("Development system id not provided (parameter: 'developmentSystemId').")
jsr.step.call(script: nullScript, changeDocumentId: '001')
2018-06-20 11:36:41 +02:00
}
@Test
public void createTransportRequestFailureTest() {
ChangeManagement cm = new ChangeManagement(nullScript) {
String createTransportRequest(String changeId,
String developmentSystemId,
String cmEndpoint,
String username,
String password) {
throw new ChangeManagementException('Exception message.')
}
}
2018-06-20 11:36:41 +02:00
thrown.expect(AbortException)
thrown.expectMessage("Exception message.")
2018-06-20 11:36:41 +02:00
jsr.step.call(script: nullScript, changeDocumentId: '001', developmentSystemId: '001', cmUtils: cm)
2018-06-20 11:36:41 +02:00
}
@Test
public void createTransportRequestSuccessTest() {
def result = [:]
ChangeManagement cm = new ChangeManagement(nullScript) {
String createTransportRequest(String changeId,
String developmentSystemId,
String cmEndpoint,
String username,
String password) {
result.changeId = changeId
result.developmentSystemId = developmentSystemId
result.cmEndpoint = cmEndpoint
result.username = username
result.password = password
return '001'
}
}
def transportId = jsr.step.call(script: nullScript, changeDocumentId: '001', developmentSystemId: '001', cmUtils: cm)
2018-06-20 11:36:41 +02:00
assert transportId == '001'
assert result == [changeId: '001',
developmentSystemId: '001',
cmEndpoint: 'https://example.org/cm',
username: 'anonymous',
password: '********'
]
2018-06-20 11:36:41 +02:00
assert jlr.log.contains("[INFO] Creating transport request for change document '001' and development system '001'.")
assert jlr.log.contains("[INFO] Transport Request '001' has been successfully created.")
}
}