github.com/bshelton229/agent@v3.5.4+incompatible/env/environment_test.go (about) 1 package env 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestEnvironmentExists(t *testing.T) { 10 t.Parallel() 11 12 env := FromSlice([]string{}) 13 14 env.Set("FOO", "bar") 15 env.Set("EMPTY", "") 16 17 assert.Equal(t, env.Exists("FOO"), true) 18 assert.Equal(t, env.Exists("EMPTY"), true) 19 assert.Equal(t, env.Exists("does not exist"), false) 20 } 21 22 func TestEnvironmentSet(t *testing.T) { 23 t.Parallel() 24 25 env := FromSlice([]string{}) 26 27 env.Set(" THIS_IS_THE_BEST \n\n", "\"IT SURE IS\"\n\n") 28 29 v, ok := env.Get(" THIS_IS_THE_BEST \n\n") 30 assert.Equal(t, v, "\"IT SURE IS\"\n\n") 31 assert.True(t, ok) 32 } 33 34 func TestEnvironmentGetBool(t *testing.T) { 35 t.Parallel() 36 37 env := FromSlice([]string{ 38 "LLAMAS_ENABLED=1", 39 "ALPACAS_ENABLED=false", 40 "PLATYPUS_ENABLED=", 41 "BUNYIP_ENABLED=off", 42 }) 43 44 assert.True(t, env.GetBool(`LLAMAS_ENABLED`, false)) 45 assert.False(t, env.GetBool(`ALPACAS_ENABLED`, true)) 46 assert.False(t, env.GetBool(`PLATYPUS_ENABLED`, false)) 47 assert.True(t, env.GetBool(`PLATYPUS_ENABLED`, true)) 48 assert.False(t, env.GetBool(`BUNYIP_ENABLED`, true)) 49 } 50 51 func TestEnvironmentRemove(t *testing.T) { 52 env := FromSlice([]string{"FOO=bar"}) 53 54 v, ok := env.Get("FOO") 55 assert.Equal(t, v, "bar") 56 assert.True(t, ok) 57 58 assert.Equal(t, env.Remove("FOO"), "bar") 59 60 v, ok = env.Get("FOO") 61 assert.Equal(t, v, "") 62 assert.False(t, ok) 63 } 64 65 func TestEnvironmentMerge(t *testing.T) { 66 t.Parallel() 67 68 env1 := FromSlice([]string{"FOO=bar"}) 69 env2 := FromSlice([]string{"BAR=foo"}) 70 71 env3 := env1.Merge(env2) 72 73 assert.Equal(t, env3.ToSlice(), []string{"BAR=foo", "FOO=bar"}) 74 } 75 76 func TestEnvironmentCopy(t *testing.T) { 77 t.Parallel() 78 79 env1 := FromSlice([]string{"FOO=bar"}) 80 env2 := env1.Copy() 81 82 assert.Equal(t, []string{"FOO=bar"}, env2.ToSlice()) 83 84 env1.Set("FOO", "not-bar-anymore") 85 86 assert.Equal(t, []string{"FOO=bar"}, env2.ToSlice()) 87 } 88 89 func TestEnvironmentToSlice(t *testing.T) { 90 t.Parallel() 91 92 env := FromSlice([]string{"THIS_IS_GREAT=totes", "ZOMG=greatness"}) 93 94 assert.Equal(t, []string{"THIS_IS_GREAT=totes", "ZOMG=greatness"}, env.ToSlice()) 95 }