45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
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")
|
|
}
|
|
}
|