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  }