mirror of https://github.com/containers/podman.git
100 lines
2.4 KiB
Go
100 lines
2.4 KiB
Go
package main
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
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)
|
|
}
|