@@ -0,0 +1,44 @@
|
||||
package environment
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestParsers(t *testing.T) {
|
||||
t.Setenv("TEST_INT", "42")
|
||||
t.Setenv("TEST_FLOAT", "2.5")
|
||||
t.Setenv("TEST_BOOL", "true")
|
||||
t.Setenv("TEST_DURATION", "15m")
|
||||
t.Setenv("TEST_CSV", " one, two ,,three ")
|
||||
|
||||
if value, err := Int("TEST_INT", 0); err != nil || value != 42 {
|
||||
t.Fatalf("Int() = %d, %v", value, err)
|
||||
}
|
||||
if value, err := Float("TEST_FLOAT", 0); err != nil || value != 2.5 {
|
||||
t.Fatalf("Float() = %f, %v", value, err)
|
||||
}
|
||||
if value, err := Bool("TEST_BOOL", false); err != nil || !value {
|
||||
t.Fatalf("Bool() = %t, %v", value, err)
|
||||
}
|
||||
if value, err := Duration("TEST_DURATION", 0); err != nil || value != 15*time.Minute {
|
||||
t.Fatalf("Duration() = %s, %v", value, err)
|
||||
}
|
||||
values := CSV("TEST_CSV")
|
||||
if len(values) != 3 || values[1] != "two" {
|
||||
t.Fatalf("CSV() = %#v", values)
|
||||
}
|
||||
}
|
||||
|
||||
func TestInvalidValues(t *testing.T) {
|
||||
t.Setenv("TEST_VALUE", "not-valid")
|
||||
if _, err := Int("TEST_VALUE", 0); err == nil {
|
||||
t.Fatal("Int() did not return an error")
|
||||
}
|
||||
if _, err := Bool("TEST_VALUE", false); err == nil {
|
||||
t.Fatal("Bool() did not return an error")
|
||||
}
|
||||
if _, err := Duration("TEST_VALUE", 0); err == nil {
|
||||
t.Fatal("Duration() did not return an error")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user