11 func TestInt(t *testing.T) {
12 result := Int("nonexistent", 15)
16 t.Fatalf("expected result=15, got result=%d", *result)
19 err := os.Setenv("int-key", "25")
21 t.Fatal("unexpected error", err)
24 result = Int("int-key", 15)
28 t.Fatalf("expected result=25, got result=%d", *result)
32 func TestIntVar(t *testing.T) {
34 IntVar(&result, "nonexistent", 15)
38 t.Fatalf("expected result=15, got result=%d", result)
41 err := os.Setenv("int-key", "25")
43 t.Fatal("unexpected error", err)
46 IntVar(&result, "int-key", 15)
50 t.Fatalf("expected result=25, got result=%d", result)
54 func TestBool(t *testing.T) {
55 result := Bool("nonexistent", true)
59 t.Fatalf("expected result=true, got result=%t", *result)
62 err := os.Setenv("bool-key", "true")
64 t.Fatal("unexpected error", err)
67 result = Bool("bool-key", false)
71 t.Fatalf("expected result=true, got result=%t", *result)
75 func TestBoolVar(t *testing.T) {
77 BoolVar(&result, "nonexistent", true)
81 t.Fatalf("expected result=true, got result=%t", result)
84 err := os.Setenv("bool-key", "true")
86 t.Fatal("unexpected error", err)
89 BoolVar(&result, "bool-key", false)
93 t.Fatalf("expected result=true, got result=%t", true)
97 func TestDuration(t *testing.T) {
98 result := Duration("nonexistent", 15*time.Second)
101 if *result != 15*time.Second {
102 t.Fatalf("expected result=15s, got result=%v", *result)
105 err := os.Setenv("duration-key", "25s")
107 t.Fatal("unexpected error", err)
110 result = Duration("duration-key", 15*time.Second)
113 if *result != 25*time.Second {
114 t.Fatalf("expected result=25s, got result=%v", *result)
118 func TestDurationVar(t *testing.T) {
119 var result time.Duration
120 DurationVar(&result, "nonexistent", 15*time.Second)
123 if result != 15*time.Second {
124 t.Fatalf("expected result=15s, got result=%v", result)
127 err := os.Setenv("duration-key", "25s")
129 t.Fatal("unexpected error", err)
132 DurationVar(&result, "duration-key", 15*time.Second)
135 if result != 25*time.Second {
136 t.Fatalf("expected result=25s, got result=%v", result)
140 func TestURL(t *testing.T) {
141 example := "http://example.com"
142 newExample := "http://something-new.com"
143 result := URL("nonexistent", example)
146 if result.String() != example {
147 t.Fatalf("expected result=%s, got result=%v", example, result)
150 err := os.Setenv("url-key", newExample)
152 t.Fatal("unexpected error", err)
155 result = URL("url-key", example)
158 if result.String() != newExample {
159 t.Fatalf("expected result=%v, got result=%v", newExample, result)
163 func TestURLVar(t *testing.T) {
164 example := "http://example.com"
165 newExample := "http://something-new.com"
167 URLVar(&result, "nonexistent", example)
170 if result.String() != example {
171 t.Fatalf("expected result=%s, got result=%v", example, result)
174 err := os.Setenv("url-key", newExample)
176 t.Fatal("unexpected error", err)
179 URLVar(&result, "url-key", example)
182 if result.String() != newExample {
183 t.Fatalf("expected result=%v, got result=%v", newExample, result)
187 func TestString(t *testing.T) {
188 result := String("nonexistent", "default")
191 if *result != "default" {
192 t.Fatalf("expected result=default, got result=%s", *result)
195 err := os.Setenv("string-key", "something-new")
197 t.Fatal("unexpected error", err)
200 result = String("string-key", "default")
203 if *result != "something-new" {
204 t.Fatalf("expected result=something-new, got result=%s", *result)
208 func TestStringVar(t *testing.T) {
210 StringVar(&result, "nonexistent", "default")
213 if result != "default" {
214 t.Fatalf("expected result=default, got result=%s", result)
217 err := os.Setenv("string-key", "something-new")
219 t.Fatal("unexpected error", err)
222 StringVar(&result, "string-key", "default")
225 if result != "something-new" {
226 t.Fatalf("expected result=something-new, got result=%s", result)
230 func TestStringSlice(t *testing.T) {
231 result := StringSlice("empty", "hi")
234 exp := []string{"hi"}
235 if !reflect.DeepEqual(exp, *result) {
236 t.Fatalf("expected %v, got %v", exp, *result)
239 err := os.Setenv("string-slice-key", "hello,world")
241 t.Fatal("unexpected error", err)
244 result = StringSlice("string-slice-key", "hi")
247 exp = []string{"hello", "world"}
248 if !reflect.DeepEqual(exp, *result) {
249 t.Fatalf("expected %v, got %v", exp, *result)
253 func TestStringSliceVar(t *testing.T) {
255 StringSliceVar(&result, "empty", "hi")
258 exp := []string{"hi"}
259 if !reflect.DeepEqual(exp, result) {
260 t.Fatalf("expected %v, got %v", exp, result)
263 err := os.Setenv("string-slice-key", "hello,world")
265 t.Fatal("unexpected error", err)
268 StringSliceVar(&result, "string-slice-key", "hi", "there")
271 exp = []string{"hello", "world"}
272 if !reflect.DeepEqual(exp, result) {
273 t.Fatalf("expected %v, got %v", exp, result)