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  }