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") } }