github.com/andeya/ameda@v1.5.3/interface_test.go (about) 1 package ameda 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestToBool(t *testing.T) { 10 cases := []struct { 11 actualParam interface{} 12 emptyAsFalse bool 13 expected bool 14 }{ 15 {"", false, false}, 16 {"", true, false}, 17 {0, true, false}, 18 {nil, true, false}, 19 {(*testing.T)(nil), true, false}, 20 {(*testing.T)(nil), false, false}, 21 {t, false, false}, 22 {t, true, true}, 23 {struct{ int }{}, false, false}, 24 {struct{ int }{}, true, false}, 25 } 26 for _, c := range cases { 27 actual, err := InterfaceToBool(c.actualParam, c.emptyAsFalse) 28 if c.emptyAsFalse { 29 assert.NoError(t, err, c) 30 } else { 31 assert.NotNil(t, err, c) 32 } 33 assert.Equal(t, c.expected, actual, c) 34 } 35 }