github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/cmd/cloudFoundryDeleteSpace_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package cmd 5 6 import ( 7 "fmt" 8 "testing" 9 10 "github.com/SAP/jenkins-library/pkg/cloudfoundry" 11 "github.com/SAP/jenkins-library/pkg/mock" 12 "github.com/SAP/jenkins-library/pkg/telemetry" 13 "github.com/stretchr/testify/assert" 14 ) 15 16 func TestCloudFoundryDeleteSpace(t *testing.T) { 17 m := &mock.ExecMockRunner{} 18 s := mock.ShellMockRunner{} 19 cf := cloudfoundry.CFUtils{Exec: m} 20 var telemetryData telemetry.CustomData 21 22 config := cloudFoundryDeleteSpaceOptions{ 23 CfAPIEndpoint: "https://api.endpoint.com", 24 CfOrg: "testOrg", 25 CfSpace: "testSpace", 26 Username: "testUser", 27 Password: "testPassword", 28 } 29 30 t.Run("CF login: Success", func(t *testing.T) { 31 32 err := runCloudFoundryDeleteSpace(&config, &telemetryData, cf, &s) 33 if assert.NoError(t, err) { 34 assert.Contains(t, s.Calls[0], "yes '' | cf login -a https://api.endpoint.com -u testUser -p testPassword") 35 } 36 }) 37 38 t.Run("CF login: failure case", func(t *testing.T) { 39 40 errorMessage := "cf login failed" 41 42 defer func() { 43 s.Calls = nil 44 s.ShouldFailOnCommand = nil 45 }() 46 47 s.ShouldFailOnCommand = map[string]error{"yes '' | cf login -a https://api.endpoint.com -u testUser -p testPassword ": fmt.Errorf(errorMessage)} 48 49 e := runCloudFoundryDeleteSpace(&config, &telemetryData, cf, &s) 50 assert.EqualError(t, e, "Error while logging in occured: "+errorMessage) 51 }) 52 53 t.Run("CF Delete Space : success case", func(t *testing.T) { 54 55 err := runCloudFoundryDeleteSpace(&config, &telemetryData, cf, &s) 56 if assert.NoError(t, err) { 57 assert.Equal(t, "cf", m.Calls[0].Exec) 58 assert.Equal(t, []string{"delete-space", "testSpace", "-o", "testOrg", "-f"}, m.Calls[0].Params) 59 } 60 }) 61 62 t.Run("CF Delete space: failure case", func(t *testing.T) { 63 64 errorMessage := "cf space creation error" 65 66 m.ShouldFailOnCommand = map[string]error{"cf delete-space testSpace -o testOrg -f": fmt.Errorf(errorMessage)} 67 68 gotError := runCloudFoundryDeleteSpace(&config, &telemetryData, cf, &s) 69 assert.EqualError(t, gotError, "Deletion of cf space has failed: "+errorMessage, "Wrong error message") 70 }) 71 }