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