github.com/huiliang/nomad@v0.2.1-0.20151124023127-7a8b664699ff/client/driver/environment/vars_test.go (about) 1 package environment 2 3 import ( 4 "reflect" 5 "sort" 6 "testing" 7 ) 8 9 func TestEnvironment_AsList(t *testing.T) { 10 env := NewTaskEnivornment() 11 env.SetTaskIp("127.0.0.1") 12 env.SetPorts(map[string]int{"http": 80}) 13 env.SetMeta(map[string]string{"foo": "baz"}) 14 15 act := env.List() 16 exp := []string{"NOMAD_IP=127.0.0.1", "NOMAD_PORT_http=80", "NOMAD_META_FOO=baz"} 17 sort.Strings(act) 18 sort.Strings(exp) 19 if !reflect.DeepEqual(act, exp) { 20 t.Fatalf("env.List() returned %v; want %v", act, exp) 21 } 22 } 23 24 func TestEnvironment_ParseFromList(t *testing.T) { 25 input := []string{ 26 "foo=bar", 27 "BAZ=baM", 28 "bar=emb=edded", // This can be done in multiple OSes. 29 "=ExitCode=00000000", // A Windows cmd.exe annoyance 30 } 31 env, err := ParseFromList(input) 32 if err != nil { 33 t.Fatalf("ParseFromList(%#v) failed: %v", input, err) 34 } 35 36 exp := map[string]string{ 37 "foo": "bar", 38 "BAZ": "baM", 39 "bar": "emb=edded", 40 "=ExitCode": "00000000", 41 } 42 43 if len(env) != len(exp) { 44 t.Errorf("ParseFromList(%#v) has length %v; want %v", input, len(env), len(exp)) 45 } 46 47 for k, v := range exp { 48 if actV, ok := env[k]; !ok { 49 t.Errorf("ParseFromList(%#v) doesn't contain expected %v", input, k) 50 } else if actV != v { 51 t.Errorf("ParseFromList(%#v) has incorrect value for %v; got %v; want %v", input, k, actV, v) 52 } 53 } 54 } 55 56 func TestEnvironment_ClearEnvvars(t *testing.T) { 57 env := NewTaskEnivornment() 58 env.SetTaskIp("127.0.0.1") 59 env.SetEnvvars(map[string]string{"foo": "baz", "bar": "bang"}) 60 61 act := env.List() 62 exp := []string{"NOMAD_IP=127.0.0.1", "bar=bang", "foo=baz"} 63 sort.Strings(act) 64 sort.Strings(exp) 65 if !reflect.DeepEqual(act, exp) { 66 t.Fatalf("env.List() returned %v; want %v", act, exp) 67 } 68 69 // Clear the environent variables. 70 env.ClearEnvvars() 71 72 act = env.List() 73 exp = []string{"NOMAD_IP=127.0.0.1"} 74 sort.Strings(act) 75 sort.Strings(exp) 76 if !reflect.DeepEqual(act, exp) { 77 t.Fatalf("env.List() returned %v; want %v", act, exp) 78 } 79 }