142 lines
3.4 KiB
Go

package env
import (
"os"
"testing"
)
func TestSplitEnvToListWithColon(t *testing.T) {
defer os.Unsetenv("TEST_LIST")
os.Setenv("TEST_LIST", "foo,bar")
list := SplitEnvToDeps("TEST_LIST")
if list == nil {
t.Errorf("Expected: not nil")
}
if list[0].Name != "foo" {
t.Errorf("Expected: foo got %s", list[0])
}
if list[1].Name != "bar" {
t.Errorf("Expected: bar got %s", list[1])
}
os.Setenv("TEST_LIST", "foo1")
list1 := SplitEnvToDeps("TEST_LIST")
if list1 == nil {
t.Errorf("Expected: not nil")
}
if len(list1) != 1 {
t.Errorf("Expected len to be 1 not %i", len(list1))
}
if list1[0].Name != "foo1" {
t.Errorf("Expected: foo1 got %s", list1[0])
}
os.Setenv("TEST_LIST", "foo:foo")
list2 := SplitEnvToDeps("TEST_LIST")
if list2[0].Name != "foo" {
t.Errorf("Expected: foo got %s", list2[0].Name)
}
if list2[0].Namespace != "foo" {
t.Errorf("Expected: foo got %s", list2[0].Namespace)
}
os.Setenv("TEST_LIST", "bar")
list3 := SplitEnvToDeps("TEST_LIST")
if list3[0].Name != "bar" {
t.Errorf("Expected: bar got %s", list3[0].Name)
}
if list3[0].Namespace != "default" {
t.Errorf("Expected: default got %s", list3[0].Namespace)
}
os.Setenv("TEST_LIST", "foo:foo1:foo2")
list4 := SplitEnvToDeps("TEST_LIST")
if len(list4) != 0 {
t.Errorf("Expected list to be empty")
}
os.Setenv("TEST_LIST", "foo:foo1:foo2,bar")
list5 := SplitEnvToDeps("TEST_LIST")
if list5[0].Namespace != "default" {
t.Errorf("Expected: default got %s", list5[0].Namespace)
}
if list5[0].Name != "bar" {
t.Errorf("Expected: bar got %s", list5[0].Name)
}
os.Setenv("TEST_LIST", "foo:foo1:foo2,bar:foo")
list6 := SplitEnvToDeps("TEST_LIST")
if list6[0].Namespace != "bar" {
t.Errorf("Expected: bar got %s", list6[0].Namespace)
}
if list6[0].Name != "foo" {
t.Errorf("Expected: foo got %s", list6[0].Name)
}
os.Setenv("TEST_LIST", ":foo")
list7 := SplitEnvToDeps("TEST_LIST")
if len(list7) != 0 {
t.Errorf("Invalid format, missing namespace in pod")
}
}
func TestSplitEmptyEnvWithColon(t *testing.T) {
defer os.Unsetenv("TEST_LIST")
os.Setenv("TEST_LIST", "")
list := SplitEnvToDeps("TEST_LIST")
if list != nil {
t.Errorf("Expected nil got %v", list)
}
}
func TestSplitCommand(t *testing.T) {
defer os.Unsetenv("COMMAND")
list2 := SplitCommand()
if len(list2) > 0 {
t.Errorf("Expected len to be 0, got %v", len(list2))
}
os.Setenv("COMMAND", "echo test")
list := SplitCommand()
if list == nil {
t.Errorf("Expected slice, got nil")
return
}
if len(list) != 2 {
t.Errorf("Expected two elements, got %v", len(list))
}
if list[0] != "echo" {
t.Errorf("Expected echo, got %s", list[0])
}
if list[1] != "test" {
t.Errorf("Expected test, got %s", list[1])
}
os.Setenv("COMMAND", "")
list1 := SplitCommand()
if len(list1) > 0 {
t.Errorf("Expected len to be 0, got %v", len(list1))
}
}
func TestGetBaseNamespace(t *testing.T) {
defer os.Unsetenv("NAMESPACE")
os.Setenv("NAMESPACE", "")
getBaseNamespace := GetBaseNamespace()
if getBaseNamespace != "default" {
t.Errorf("Expected namespace to be default, got %v", getBaseNamespace)
}
os.Setenv("NAMESPACE", "foo")
getBaseNamespace = GetBaseNamespace()
if getBaseNamespace != "foo" {
t.Errorf("Expected namespace to be foo, got %v", getBaseNamespace)
}
os.Setenv("NAMESPACE", "default")
getBaseNamespace = GetBaseNamespace()
if getBaseNamespace != "default" {
t.Errorf("Expected namespace to be default, got %v", getBaseNamespace)
}
}