github.com/verrazzano/verrazzano@v1.7.1/pkg/k8sutil/platform_operator_utils_test.go (about) 1 // Copyright (c) 2021, 2023, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 package k8sutil_test 4 5 import ( 6 "fmt" 7 "os" 8 "os/exec" 9 "testing" 10 11 "github.com/stretchr/testify/assert" 12 "github.com/verrazzano/verrazzano/pkg/k8sutil" 13 ) 14 15 // genericTestRunner is used to run generic OS commands with expected results 16 type genericTestRunner struct { 17 stdOut []byte 18 stdErr []byte 19 err error 20 } 21 22 // Run genericTestRunner executor 23 func (r genericTestRunner) Run(cmd *exec.Cmd) (stdout []byte, stderr []byte, err error) { 24 return r.stdOut, r.stdErr, r.err 25 } 26 27 // TestGetInstalledBOMData tests executing into the Platform Operator pod and returns the installed BOM file data as JSON 28 // GIVEN a kubeconfig 29 // 30 // WHEN GetInstalledBOMData is called 31 // THEN GetInstalledBOMData return nil error 32 func TestGetInstalledBOMData(t *testing.T) { 33 asserts := assert.New(t) 34 // Preserve previous env var value 35 prevEnvVarKubeConfig := os.Getenv(k8sutil.EnvVarKubeConfig) 36 // Unset KUBECONFIG environment variable 37 wd, err := os.Getwd() 38 asserts.NoError(err) 39 err = os.Setenv(k8sutil.EnvVarKubeConfig, fmt.Sprintf("%s/%s", wd, dummyKubeConfig)) 40 stdout := []byte("verrazzano-platform-operator") 41 stdErr := []byte{} 42 43 k8sutil.SetCmdRunner(genericTestRunner{ 44 stdOut: stdout, 45 stdErr: stdErr, 46 err: nil, 47 }) 48 defer k8sutil.SetDefaultRunner() 49 _, err = k8sutil.GetInstalledBOMData(dummyKubeConfig) 50 assert.Nil(t, err) 51 // Reset env variables 52 err = os.Setenv(k8sutil.EnvVarKubeConfig, prevEnvVarKubeConfig) 53 asserts.NoError(err) 54 } 55 56 // TestGetInstalledBOMData tests executing into the Platform Operator pod and returns the installed BOM file data as JSON 57 // GIVEN a kubeconfig 58 // 59 // WHEN GetInstalledBOMData is called 60 // THEN GetInstalledBOMData returns error 61 func TestGetInstalledBOMDataFailure(t *testing.T) { 62 asserts := assert.New(t) 63 // Preserve previous env var value 64 prevEnvVarKubeConfig := os.Getenv(k8sutil.EnvVarKubeConfig) 65 // Unset KUBECONFIG environment variable 66 wd, err := os.Getwd() 67 asserts.NoError(err) 68 err = os.Setenv(k8sutil.EnvVarKubeConfig, fmt.Sprintf("%s/%s", wd, dummyKubeConfig)) 69 stdout := []byte("verrazzano-platform-operator") 70 stdErr := []byte{} 71 72 k8sutil.SetCmdRunner(genericTestRunner{ 73 stdOut: stdout, 74 stdErr: stdErr, 75 err: fmt.Errorf("Error running command"), 76 }) 77 defer k8sutil.SetDefaultRunner() 78 _, err = k8sutil.GetInstalledBOMData(dummyKubeConfig) 79 assert.NotNil(t, err) 80 // Reset env variables 81 err = os.Setenv(k8sutil.EnvVarKubeConfig, prevEnvVarKubeConfig) 82 asserts.NoError(err) 83 }