...
1
16
17 package env
18
19 import (
20 "strconv"
21 "testing"
22
23 "github.com/stretchr/testify/assert"
24 )
25
26 func TestGetEnvAsStringOrFallback(t *testing.T) {
27 const expected = "foo"
28
29 assert := assert.New(t)
30
31 key := "FLOCKER_SET_VAR"
32 t.Setenv(key, expected)
33 assert.Equal(expected, GetEnvAsStringOrFallback(key, "~"+expected))
34
35 key = "FLOCKER_UNSET_VAR"
36 assert.Equal(expected, GetEnvAsStringOrFallback(key, expected))
37 }
38
39 func TestGetEnvAsIntOrFallback(t *testing.T) {
40 const expected = 1
41
42 assert := assert.New(t)
43
44 key := "FLOCKER_SET_VAR"
45 t.Setenv(key, strconv.Itoa(expected))
46 returnVal, _ := GetEnvAsIntOrFallback(key, 1)
47 assert.Equal(expected, returnVal)
48
49 key = "FLOCKER_UNSET_VAR"
50 returnVal, _ = GetEnvAsIntOrFallback(key, expected)
51 assert.Equal(expected, returnVal)
52
53 key = "FLOCKER_SET_VAR"
54 t.Setenv(key, "not-an-int")
55 returnVal, err := GetEnvAsIntOrFallback(key, 1)
56 assert.Equal(expected, returnVal)
57 if err == nil {
58 t.Error("expected error")
59 }
60 }
61
62 func TestGetEnvAsFloat64OrFallback(t *testing.T) {
63 const expected = 1.0
64
65 assert := assert.New(t)
66
67 key := "FLOCKER_SET_VAR"
68 t.Setenv(key, "1.0")
69 returnVal, _ := GetEnvAsFloat64OrFallback(key, 2.0)
70 assert.Equal(expected, returnVal)
71
72 key = "FLOCKER_UNSET_VAR"
73 returnVal, _ = GetEnvAsFloat64OrFallback(key, 1.0)
74 assert.Equal(expected, returnVal)
75
76 key = "FLOCKER_SET_VAR"
77 t.Setenv(key, "not-a-float")
78 returnVal, err := GetEnvAsFloat64OrFallback(key, 1.0)
79 assert.Equal(expected, returnVal)
80 assert.EqualError(err, "strconv.ParseFloat: parsing \"not-a-float\": invalid syntax")
81 }
82
View as plain text