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  }