github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/cloudfoundry/Vars_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package cloudfoundry 5 6 import ( 7 "github.com/SAP/jenkins-library/pkg/mock" 8 "github.com/SAP/jenkins-library/pkg/piperutils" 9 "github.com/stretchr/testify/assert" 10 "testing" 11 ) 12 13 func TestVarsFiles(t *testing.T) { 14 15 defer func() { 16 _fileUtils = piperutils.Files{} 17 }() 18 19 filesMock := mock.FilesMock{} 20 filesMock.AddDir("/home/me") 21 filesMock.Chdir("/home/me") 22 filesMock.AddFile("varsA.yml", []byte("file content does not matter")) 23 filesMock.AddFile("varsB.yml", []byte("file content does not matter")) 24 _fileUtils = &filesMock 25 26 t.Run("All vars files found", func(t *testing.T) { 27 opts, err := GetVarsFileOptions([]string{"varsA.yml", "varsB.yml"}) 28 if assert.NoError(t, err) { 29 assert.Equal(t, []string{"--vars-file", "varsA.yml", "--vars-file", "varsB.yml"}, opts) 30 } 31 }) 32 33 t.Run("Some vars files missing", func(t *testing.T) { 34 opts, err := GetVarsFileOptions([]string{"varsA.yml", "varsC.yml", "varsD.yml"}) 35 if assert.EqualError(t, err, "Some vars files could not be found: [varsC.yml varsD.yml]") { 36 assert.IsType(t, &VarsFilesNotFoundError{}, err) 37 assert.Equal(t, []string{"--vars-file", "varsA.yml"}, opts) 38 } 39 }) 40 } 41 42 func TestVars(t *testing.T) { 43 44 t.Run("Empty vars", func(t *testing.T) { 45 opts, err := GetVarsOptions([]string{}) 46 if assert.NoError(t, err) { 47 assert.Equal(t, []string{}, opts) 48 } 49 }) 50 51 t.Run("Some vars", func(t *testing.T) { 52 opts, err := GetVarsOptions([]string{"a=b", "x=y"}) 53 if assert.NoError(t, err) { 54 assert.Equal(t, []string{"--var", "a=b", "--var", "x=y"}, opts) 55 } 56 }) 57 }