Merge pull request #15 from ursetto/boolean-fix

Treat "true" as a valid boolean
This commit is contained in:
Roshan Ranabhat 2022-05-02 10:34:20 +05:45 committed by GitHub
commit ac138e2d61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 20 deletions

View File

@ -18,4 +18,4 @@ const (
var False = []string{"off", "no", "0", "false"} var False = []string{"off", "no", "0", "false"}
// True is slice of array for true logical representation in string // True is slice of array for true logical representation in string
var True = []string{"on", "yes", "1", "True"} var True = []string{"on", "yes", "1", "true"}

View File

@ -29,33 +29,42 @@ func TestInput_EmptyNoMatchBetween(t *testing.T) {
} }
} }
func TestInput_Boolean(t *testing.T) { func TestInput_BooleanTrue(t *testing.T) {
str := New("on") strs := []string{"on", "On", "yes", "YES", "1", "true"}
val := str.Boolean() for _, s := range strs {
if !val { t.Run(s, func(t *testing.T) {
if val := New(s).Boolean(); !val {
t.Errorf("Expected: to be true but got: %v", val) t.Errorf("Expected: to be true but got: %v", val)
} }
})
}
} }
func TestInput_BooleanOff(t *testing.T) { func TestInput_BooleanFalse(t *testing.T) {
str := New("off") strs := []string{"off", "Off", "no", "NO", "0", "false"}
val := str.Boolean() for _, s := range strs {
if val { t.Run(s, func(t *testing.T) {
if val := New(s).Boolean(); val {
t.Errorf("Expected: to be false but got: %v", val) t.Errorf("Expected: to be false but got: %v", val)
} }
})
}
} }
func TestInput_BooleanError(t *testing.T) { func TestInput_BooleanError(t *testing.T) {
strs := []string{"invalid", "-1", ""}
for _, s := range strs {
t.Run(s, func(t *testing.T) {
defer func() { defer func() {
if err := recover(); err == nil { if err := recover(); err == nil {
t.Errorf("Error expected") t.Errorf("Error expected")
} }
}() }()
str := New("invalid") val := New(s).Boolean()
val := str.Boolean() t.Errorf("Expected: to panic but got: %v", val)
if val { })
t.Errorf("Expected: to be false but got: %v", val)
} }
} }
func TestInput_CamelCase(t *testing.T) { func TestInput_CamelCase(t *testing.T) {