github.com/jaylevin/jenkins-library@v1.230.4/cmd/cloudFoundryCreateServiceKey_test.go (about) 1 package cmd 2 3 import ( 4 "testing" 5 6 "github.com/SAP/jenkins-library/pkg/cloudfoundry" 7 "github.com/SAP/jenkins-library/pkg/mock" 8 "github.com/SAP/jenkins-library/pkg/telemetry" 9 "github.com/pkg/errors" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestCloudFoundryCreateServiceKey(t *testing.T) { 14 var telemetryData telemetry.CustomData 15 t.Run("CF Create Service Key: Success case", func(t *testing.T) { 16 config := cloudFoundryCreateServiceKeyOptions{ 17 CfAPIEndpoint: "https://api.endpoint.com", 18 CfOrg: "testOrg", 19 CfSpace: "testSpace", 20 Username: "testUser", 21 Password: "testPassword", 22 CfServiceInstance: "testInstance", 23 CfServiceKeyName: "testKey", 24 } 25 execRunner := mock.ExecMockRunner{} 26 cfUtilsMock := cloudfoundry.CfUtilsMock{} 27 defer cfUtilsMock.Cleanup() 28 29 error := runCloudFoundryCreateServiceKey(&config, &telemetryData, &execRunner, &cfUtilsMock) 30 if error == nil { 31 assert.Equal(t, "cf", execRunner.Calls[0].Exec) 32 assert.Equal(t, []string{"create-service-key", "testInstance", "testKey"}, execRunner.Calls[0].Params) 33 } 34 }) 35 t.Run("CF Create Service Key with service Key config: Success case", func(t *testing.T) { 36 config := cloudFoundryCreateServiceKeyOptions{ 37 CfAPIEndpoint: "https://api.endpoint.com", 38 CfOrg: "testOrg", 39 CfSpace: "testSpace", 40 Username: "testUser", 41 Password: "testPassword", 42 CfServiceInstance: "testInstance", 43 CfServiceKeyName: "testKey", 44 CfServiceKeyConfig: "testconfig.yml", 45 } 46 execRunner := mock.ExecMockRunner{} 47 cfUtilsMock := cloudfoundry.CfUtilsMock{} 48 defer cfUtilsMock.Cleanup() 49 50 error := runCloudFoundryCreateServiceKey(&config, &telemetryData, &execRunner, &cfUtilsMock) 51 if error == nil { 52 assert.Equal(t, "cf", execRunner.Calls[0].Exec) 53 assert.Equal(t, []string{"create-service-key", "testInstance", "testKey", "-c", "testconfig.yml"}, execRunner.Calls[0].Params) 54 } 55 }) 56 t.Run("CF Create Service Key with service Key config: Success case", func(t *testing.T) { 57 config := cloudFoundryCreateServiceKeyOptions{ 58 CfAPIEndpoint: "https://api.endpoint.com", 59 CfOrg: "testOrg", 60 CfSpace: "testSpace", 61 Username: "testUser", 62 Password: "testPassword", 63 CfServiceInstance: "testInstance", 64 CfServiceKeyName: "testKey", 65 CfServiceKeyConfig: "{\"scenario_id\":\"SAP_COM_0510\",\"type\":\"basic\"}", 66 } 67 execRunner := mock.ExecMockRunner{} 68 cfUtilsMock := cloudfoundry.CfUtilsMock{} 69 defer cfUtilsMock.Cleanup() 70 71 error := runCloudFoundryCreateServiceKey(&config, &telemetryData, &execRunner, &cfUtilsMock) 72 if error == nil { 73 assert.Equal(t, "cf", execRunner.Calls[0].Exec) 74 assert.Equal(t, []string{"create-service-key", "testInstance", "testKey", "-c", "{\"scenario_id\":\"SAP_COM_0510\",\"type\":\"basic\"}"}, execRunner.Calls[0].Params) 75 } 76 }) 77 } 78 79 func TestCloudFoundryCreateServiceKeyErrorMessages(t *testing.T) { 80 errorMessage := "errorMessage" 81 var telemetryData telemetry.CustomData 82 t.Run("CF Login Error", func(t *testing.T) { 83 config := cloudFoundryCreateServiceKeyOptions{ 84 CfAPIEndpoint: "https://api.endpoint.com", 85 CfOrg: "testOrg", 86 CfSpace: "testSpace", 87 Username: "testUser", 88 Password: "testPassword", 89 CfServiceInstance: "testInstance", 90 CfServiceKeyName: "testKey", 91 CfServiceKeyConfig: "{\"scenario_id\":\"SAP_COM_0510\",\"type\":\"basic\"}", 92 } 93 execRunner := mock.ExecMockRunner{} 94 cfUtilsMock := cloudfoundry.CfUtilsMock{ 95 LoginError: errors.New(errorMessage), 96 } 97 defer cfUtilsMock.Cleanup() 98 99 error := runCloudFoundryCreateServiceKey(&config, &telemetryData, &execRunner, &cfUtilsMock) 100 assert.Equal(t, error.Error(), "Error while logging in occurred: "+errorMessage, "Wrong error message") 101 }) 102 103 t.Run("CF Logout Error", func(t *testing.T) { 104 config := cloudFoundryCreateServiceKeyOptions{ 105 CfAPIEndpoint: "https://api.endpoint.com", 106 CfOrg: "testOrg", 107 CfSpace: "testSpace", 108 Username: "testUser", 109 Password: "testPassword", 110 CfServiceInstance: "testInstance", 111 CfServiceKeyName: "testKey", 112 CfServiceKeyConfig: "{\"scenario_id\":\"SAP_COM_0510\",\"type\":\"basic\"}", 113 } 114 execRunner := mock.ExecMockRunner{} 115 cfUtilsMock := cloudfoundry.CfUtilsMock{ 116 LogoutError: errors.New(errorMessage), 117 } 118 defer cfUtilsMock.Cleanup() 119 120 err := runCloudFoundryCreateServiceKey(&config, &telemetryData, &execRunner, &cfUtilsMock) 121 assert.Equal(t, err.Error(), "Error while logging out occurred: "+errorMessage, "Wrong error message") 122 }) 123 124 t.Run("CF Create Service Key Error", func(t *testing.T) { 125 errorMessage := "errorMessage" 126 config := cloudFoundryCreateServiceKeyOptions{ 127 CfAPIEndpoint: "https://api.endpoint.com", 128 CfOrg: "testOrg", 129 CfSpace: "testSpace", 130 Username: "testUser", 131 Password: "testPassword", 132 CfServiceInstance: "testInstance", 133 CfServiceKeyName: "testKey", 134 CfServiceKeyConfig: "{\"scenario_id\":\"SAP_COM_0510\",\"type\":\"basic\"}", 135 } 136 m := make(map[string]error) 137 m["cf create-service-key testInstance testKey -c {\"scenario_id\":\"SAP_COM_0510\",\"type\":\"basic\"}"] = errors.New(errorMessage) 138 execRunner := mock.ExecMockRunner{ 139 ShouldFailOnCommand: m, 140 } 141 cfUtilsMock := cloudfoundry.CfUtilsMock{ 142 LogoutError: errors.New(errorMessage), 143 } 144 defer cfUtilsMock.Cleanup() 145 146 error := runCloudFoundryCreateServiceKey(&config, &telemetryData, &execRunner, &cfUtilsMock) 147 assert.Equal(t, error.Error(), "Failed to Create Service Key: "+errorMessage, "Wrong error message") 148 }) 149 }