From 46d762176eafb748b2094bd518ecf66d86388779 Mon Sep 17 00:00:00 2001 From: baude Date: Wed, 1 Nov 2017 16:44:08 -0500 Subject: create_cli_test.go: Unittests Create unittests for the create_cli helper functions. As such, remove cli context usage from the functions to further divide between cli input and parsing. Also, simplifies unit testing. Signed-off-by: baude --- cmd/kpod/create_cli_test.go | 98 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 cmd/kpod/create_cli_test.go (limited to 'cmd/kpod/create_cli_test.go') diff --git a/cmd/kpod/create_cli_test.go b/cmd/kpod/create_cli_test.go new file mode 100644 index 000000000..928a5ce05 --- /dev/null +++ b/cmd/kpod/create_cli_test.go @@ -0,0 +1,98 @@ +package main + +import ( + "github.com/stretchr/testify/assert" + "io/ioutil" + "os" + "testing" +) + +var ( + Var1 = []string{"ONE=1", "TWO=2"} +) + +func createTmpFile(content []byte) (string, error) { + tmpfile, err := ioutil.TempFile(os.TempDir(), "unittest") + if err != nil { + return "", err + } + + if _, err := tmpfile.Write(content); err != nil { + return "", err + + } + if err := tmpfile.Close(); err != nil { + return "", err + } + return tmpfile.Name(), nil +} + +func TestConvertStringSliceToMap(t *testing.T) { + strSlice := []string{"BLAU=BLUE", "GELB=YELLOW"} + result, _ := convertStringSliceToMap(strSlice, "=") + assert.Equal(t, result["BLAU"], "BLUE") +} + +func TestConvertStringSliceToMapBadData(t *testing.T) { + strSlice := []string{"BLAU=BLUE", "GELB^YELLOW"} + _, err := convertStringSliceToMap(strSlice, "=") + assert.Error(t, err) +} + +func TestGetAllLabels(t *testing.T) { + fileLabels := []string{} + labels, _ := getAllLabels(fileLabels, Var1) + assert.Equal(t, len(labels), 2) +} + +func TestGetAllLabelsBadKeyValue(t *testing.T) { + inLabels := []string{"ONE1", "TWO=2"} + fileLabels := []string{} + _, err := getAllLabels(fileLabels, inLabels) + assert.Error(t, err, assert.AnError) +} + +func TestGetAllLabelsBadLabelFile(t *testing.T) { + fileLabels := []string{"/foobar5001/be"} + _, err := getAllLabels(fileLabels, Var1) + assert.Error(t, err, assert.AnError) +} + +func TestGetAllLabelsFile(t *testing.T) { + content := []byte("THREE=3") + tFile, err := createTmpFile(content) + defer os.Remove(tFile) + assert.NoError(t, err) + fileLabels := []string{tFile} + result, _ := getAllLabels(fileLabels, Var1) + assert.Equal(t, len(result), 3) +} + +func TestGetAllEnvironmentVariables(t *testing.T) { + fileEnvs := []string{} + result, _ := getAllEnvironmentVariables(fileEnvs, Var1) + assert.Equal(t, len(result), 2) +} + +func TestGetAllEnvironmentVariablesBadKeyValue(t *testing.T) { + inEnvs := []string{"ONE1", "TWO=2"} + fileEnvs := []string{} + _, err := getAllEnvironmentVariables(fileEnvs, inEnvs) + assert.Error(t, err, assert.AnError) +} + +func TestGetAllEnvironmentVariablesBadEnvFile(t *testing.T) { + fileEnvs := []string{"/foobar5001/be"} + _, err := getAllEnvironmentVariables(fileEnvs, Var1) + assert.Error(t, err, assert.AnError) +} + +func TestGetAllEnvironmentVariablesFile(t *testing.T) { + content := []byte("THREE=3") + tFile, err := createTmpFile(content) + defer os.Remove(tFile) + assert.NoError(t, err) + fileEnvs := []string{tFile} + result, _ := getAllEnvironmentVariables(fileEnvs, Var1) + assert.Equal(t, len(result), 3) +} -- cgit v1.2.3-54-g00ecf From 99ca35f18598f77bcf260f91044116365d8e3c26 Mon Sep 17 00:00:00 2001 From: baude Date: Thu, 2 Nov 2017 08:09:17 -0500 Subject: util_test.go: Unittests for util.go Add unit tests for func StringInSlice. Signed-off-by: baude --- cmd/kpod/create_cli_test.go | 3 ++- libpod/util_test.go | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 libpod/util_test.go (limited to 'cmd/kpod/create_cli_test.go') diff --git a/cmd/kpod/create_cli_test.go b/cmd/kpod/create_cli_test.go index 928a5ce05..af5c5afae 100644 --- a/cmd/kpod/create_cli_test.go +++ b/cmd/kpod/create_cli_test.go @@ -1,10 +1,11 @@ package main import ( - "github.com/stretchr/testify/assert" "io/ioutil" "os" "testing" + + "github.com/stretchr/testify/assert" ) var ( diff --git a/libpod/util_test.go b/libpod/util_test.go new file mode 100644 index 000000000..b3d336d1f --- /dev/null +++ b/libpod/util_test.go @@ -0,0 +1,19 @@ +package libpod + + +import ( + "testing" + "github.com/stretchr/testify/assert" +) +var ( + sliceData = []string{"one", "two", "three", "four"} +) + +func TestStringInSlice(t *testing.T) { + // string is in the slice + assert.True(t, StringInSlice("one", sliceData)) + // string is not in the slice + assert.False(t, StringInSlice("five", sliceData)) + // string is not in empty slice + assert.False(t, StringInSlice("one", []string{})) +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf