mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-14 11:03:09 +02:00
164327667c
* Add abaputils pkg and go files * Add ReadServiceKeyAbapEnvironment function * Fixes * Add structs for SC, Pull and Branch * Minor Improvements * Adapt unit tests to new abaputils pkg * Fixes * Add adapted tests * Fixes * Fix cloudfoundry test * Add check for host prefix (HTTPS) * Fix tests + cleanup * Fixes * Fixes * Fix * Add mock for abaputils pkg unit tests * Adapt abaputils comments * Add abapEnvironmentCheckoutBranch step setup * Change description of abapEnvCheckoutBranch step * Add http client code * Disable code due to missing interace * Add coding for use of abaputils * Adapt checkout branch step * Adapt URL for checkout_branch function import * Fixes * Add unit test for missing params case * Fix for missing mapping of CfSpace * Fix for missing mapping of CfSpace * Add working code for a Branch Checkout * Fix host schema * Remove LogoutOption param of unit tests and steps * Fix unit test * Fix unit test CF ReadServiceKey * Add abapEnvironmentCheckoutBranch step setup * Change description of abapEnvCheckoutBranch step * Add http client code * Disable code due to missing interace * Add coding for use of abaputils * Adapt checkout branch step * Adapt URL for checkout_branch function import * Fixes * Fix for missing mapping of CfSpace * Add working code for a Branch Checkout * Adapt changes of abautils pkg * Add test for polling * Minor fix * Fix yaml spacing * Add longdescription to yaml * Refactor abaputil methods * Refactoring * Refactoring * Minor fix * Minor fixeds * Adapt to new abaputils.AUtilsMock * Delete obsolete initial checks for params * Fix manageGitRepoUtils_test.go * Adjust pollEntity tests Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com>
125 lines
3.7 KiB
Go
125 lines
3.7 KiB
Go
package cmd
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/SAP/jenkins-library/pkg/abaputils"
|
|
"github.com/pkg/errors"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCheckoutBranchStep(t *testing.T) {
|
|
t.Run("Run Step Successful", func(t *testing.T) {
|
|
|
|
var autils = abaputils.AUtilsMock{}
|
|
defer autils.Cleanup()
|
|
autils.ReturnedConnectionDetailsHTTP.Password = "password"
|
|
autils.ReturnedConnectionDetailsHTTP.User = "user"
|
|
autils.ReturnedConnectionDetailsHTTP.URL = "https://example.com"
|
|
autils.ReturnedConnectionDetailsHTTP.XCsrfToken = "xcsrftoken"
|
|
|
|
config := abapEnvironmentCheckoutBranchOptions{
|
|
CfAPIEndpoint: "https://api.endpoint.com",
|
|
CfOrg: "testOrg",
|
|
CfSpace: "testSpace",
|
|
CfServiceInstance: "testInstance",
|
|
CfServiceKeyName: "testServiceKey",
|
|
Username: "testUser",
|
|
Password: "testPassword",
|
|
RepositoryName: "testRepo1",
|
|
BranchName: "testBranch",
|
|
}
|
|
|
|
client := &abaputils.ClientMock{
|
|
BodyList: []string{
|
|
`{"d" : { "status" : "S" } }`,
|
|
`{"d" : { "status" : "S" } }`,
|
|
`{"d" : { "status" : "S" } }`,
|
|
},
|
|
Token: "myToken",
|
|
StatusCode: 200,
|
|
}
|
|
|
|
err := runAbapEnvironmentCheckoutBranch(&config, nil, &autils, client)
|
|
assert.NoError(t, err, "Did not expect error")
|
|
})
|
|
}
|
|
|
|
func TestTriggerCheckout(t *testing.T) {
|
|
|
|
t.Run("Test trigger checkout: success case", func(t *testing.T) {
|
|
|
|
// given
|
|
receivedURI := "example.com/Branches"
|
|
uriExpected := receivedURI + "?$expand=to_Execution_log,to_Transport_log"
|
|
tokenExpected := "myToken"
|
|
|
|
client := &abaputils.ClientMock{
|
|
Body: `{"d" : { "__metadata" : { "uri" : "` + receivedURI + `" } } }`,
|
|
Token: tokenExpected,
|
|
StatusCode: 200,
|
|
}
|
|
config := abapEnvironmentCheckoutBranchOptions{
|
|
CfAPIEndpoint: "https://api.endpoint.com",
|
|
CfOrg: "testOrg",
|
|
CfSpace: "testSpace",
|
|
CfServiceInstance: "testInstance",
|
|
CfServiceKeyName: "testServiceKey",
|
|
Username: "testUser",
|
|
Password: "testPassword",
|
|
RepositoryName: "testRepo1",
|
|
BranchName: "feature-unit-test",
|
|
}
|
|
con := abaputils.ConnectionDetailsHTTP{
|
|
User: "MY_USER",
|
|
Password: "MY_PW",
|
|
URL: "https://api.endpoint.com/Branches",
|
|
}
|
|
// when
|
|
entityConnection, err := triggerCheckout(config.RepositoryName, config.BranchName, con, client)
|
|
|
|
// then
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, uriExpected, entityConnection.URL)
|
|
assert.Equal(t, tokenExpected, entityConnection.XCsrfToken)
|
|
})
|
|
|
|
t.Run("Test trigger checkout: ABAP Error case", func(t *testing.T) {
|
|
|
|
// given
|
|
errorMessage := "ABAP Error Message"
|
|
errorCode := "ERROR/001"
|
|
HTTPErrorMessage := "HTTP Error Message"
|
|
combinedErrorMessage := "HTTP Error Message: ERROR/001 - ABAP Error Message"
|
|
|
|
client := &abaputils.ClientMock{
|
|
Body: `{"error" : { "code" : "` + errorCode + `", "message" : { "lang" : "en", "value" : "` + errorMessage + `" } } }`,
|
|
Token: "myToken",
|
|
StatusCode: 400,
|
|
Error: errors.New(HTTPErrorMessage),
|
|
}
|
|
config := abapEnvironmentCheckoutBranchOptions{
|
|
CfAPIEndpoint: "https://api.endpoint.com",
|
|
CfOrg: "testOrg",
|
|
CfSpace: "testSpace",
|
|
CfServiceInstance: "testInstance",
|
|
CfServiceKeyName: "testServiceKey",
|
|
Username: "testUser",
|
|
Password: "testPassword",
|
|
RepositoryName: "testRepo1",
|
|
BranchName: "feature-unit-test",
|
|
}
|
|
con := abaputils.ConnectionDetailsHTTP{
|
|
User: "MY_USER",
|
|
Password: "MY_PW",
|
|
URL: "https://api.endpoint.com/Branches",
|
|
}
|
|
|
|
// when
|
|
_, err := triggerCheckout(config.RepositoryName, config.BranchName, con, client)
|
|
|
|
// then
|
|
assert.Equal(t, combinedErrorMessage, err.Error(), "Different error message expected")
|
|
})
|
|
}
|