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/com/sap/piper/integration/CloudFoundryTest.groovy
sudeepsukumar 702664645c
feat(newman): fetch xsuaa credentials in newman execution (#1325)
* fetch xsuaa credentials in newman execution

* refactor CfUtils and moving to integration package

* removing CfUtils from old package com.sap.piper

* avoid config.verbose as "null"

* variable renamed for consistent naming

* handling NPE and other comments incorp

* added test cases

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-06-12 10:04:03 +02:00

159 lines
5.6 KiB
Groovy

package com.sap.piper.integration
import hudson.AbortException
import org.junit.Rule
import org.junit.Test
import org.junit.Ignore
import org.junit.rules.ExpectedException
import org.junit.rules.RuleChain
import util.*
import groovy.json.JsonSlurper
import static org.hamcrest.Matchers.*
import static org.junit.Assert.assertThat
import util.JenkinsCredentialsRule
class CloudFoundryTest extends BasePiperTest {
public ExpectedException exception = ExpectedException.none()
private JenkinsShellCallRule shellRule = new JenkinsShellCallRule(this)
private JenkinsCredentialsRule jenkinsCredentialsRule = new JenkinsCredentialsRule(this)
@Rule
public RuleChain rules = Rules
.getCommonRules(this)
.around(exception)
.around(new JenkinsErrorRule(this))
.around(new JenkinsReadJsonRule(this))
.around(shellRule)
.around(jenkinsCredentialsRule)
@Test
void getAuthEndPoint_test() {
helper.registerAllowedMethod('httpRequest', [Map.class] , {
return [content: '{ "authorization_endpoint": "myAuthEndPoint" }', status: 200]
})
String apiEndPoint = 'http://dummy.sap.com'
boolean verbose = true
def cf = new CloudFoundry(nullScript)
def endPoint = cf.getAuthEndPoint(apiEndPoint, verbose)
assertThat(endPoint, is('myAuthEndPoint'))
}
@Test
void getBearerToken_test(){
String authorizationEndpoint = 'http://dummy.sap.com'
String credentialsId = 'credentialsId'
boolean verbose = true
jenkinsCredentialsRule.withCredentials(credentialsId, 'myuser', 'topsecret')
helper.registerAllowedMethod('httpRequest', [Map.class] , {
return [content: '{ "access_token": "myAccessToken" }', status: 200]
})
def cf = new CloudFoundry(nullScript)
def token = cf.getBearerToken(authorizationEndpoint, credentialsId, verbose)
assertThat(token.toString(), is('Bearer myAccessToken'))
}
@Test
void getAppRefUrl_test(){
String apiEndpoint = 'http://dummy.sap.com'
String org = 'myOrg'
String space = 'mySpace'
String bearerToken = 'myAccessToken'
String appName = 'myAppName'
boolean verbose = true
helper.registerAllowedMethod('httpRequest', [Map.class] , {
return [content: '{ "resources":[{"guid":"myGuid", "links":{"self":{"href":"myAppUrl"}}}] }', status: 200]
})
def cf = new CloudFoundry(nullScript)
def appUrl = cf.getAppRefUrl(apiEndpoint, org, space, bearerToken, appName, verbose)
assertThat(appUrl.toString(), is('myAppUrl'))
}
@Test
void getOrgGuid_test(){
String apiEndpoint = 'http://dummy.sap.com'
String org = 'myOrg'
String bearerToken = 'myToken'
boolean verbose = true
helper.registerAllowedMethod('httpRequest', [Map.class] , {
return [content: '{ "resources":[{"guid":"myOrgGuid"}] }', status: 200]
})
def cf = new CloudFoundry(nullScript)
def orgGuid = cf.getOrgGuid(apiEndpoint, org, bearerToken, verbose)
assertThat(orgGuid.toString(), is('myOrgGuid'))
}
@Test
void getSpaceGuid_test(){
String apiEndpoint ='http://dummy.sap.com'
String orgGuid = 'myOrgGuid'
String space = 'mySpace'
String bearerToken = 'myToken'
boolean verbose = true
helper.registerAllowedMethod('httpRequest', [Map.class] , {
return [content: '{ "resources":[{"guid":"mySpaceGuid"}] }', status: 200]
})
def cf = new CloudFoundry(nullScript)
def spaceGuid = cf.getSpaceGuid(apiEndpoint, orgGuid, space, bearerToken, verbose)
assertThat(spaceGuid.toString(), is('mySpaceGuid'))
}
@Test
void getAppEnvironment_test(){
String apiEndpoint = 'http://dummy.sap.com'
String org = 'myOrg'
String space = 'mySpace'
String credentialsId = 'credentialsId'
String appName = 'myAppName'
boolean verbose = true
jenkinsCredentialsRule.withCredentials(credentialsId, 'myuser', 'topsecret')
helper.registerAllowedMethod('httpRequest', [Map.class] , {
return [content: '{ "authorization_endpoint": "myAuthEndPoint", "access_token": "myAccessToken", "resources":[{"guid":"myGuid", "links":{"self":{"href":"myAppUrl"}}}] }', status: 200]
})
def cf = new CloudFoundry(nullScript)
def appEnv = cf.getAppEnvironment(apiEndpoint, org, space, credentialsId, appName, verbose)
assertThat(appEnv.toString(), is('{authorization_endpoint=myAuthEndPoint, access_token=myAccessToken, resources=[{guid=myGuid, links={self={href=myAppUrl}}}]}'))
}
@Test
void getXsuaaCredentials_test(){
String apiEndpoint = 'http://dummy.sap.com'
String org = 'myOrg'
String space = 'mySpace'
String credentialsId = 'credentialsId'
String appName = 'myAppName'
boolean verbose = true
jenkinsCredentialsRule.withCredentials(credentialsId, 'myuser', 'topsecret')
helper.registerAllowedMethod('httpRequest', [Map.class] , {
return [content: '{ "system_env_json":{"VCAP_SERVICES":{"xsuaa":[{"credentials":"myCredentials"}]}}, "authorization_endpoint": "myAuthEndPoint", "access_token": "myAccessToken", "resources":[{"guid":"myGuid", "links":{"self":{"href":"myAppUrl"}}}] }', status: 200]
})
def cf = new CloudFoundry(nullScript)
def xsuaaCred = cf.getXsuaaCredentials(apiEndpoint, org, space, credentialsId, appName, verbose)
assertThat(xsuaaCred.toString(), is('myCredentials'))
}
}