github.com/RevenueMonster/sqlike@v1.0.6/types/boolean_test.go (about) 1 package types 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestBoolean(t *testing.T) { 10 var ( 11 flag Boolean 12 err error 13 ) 14 15 t.Run("Scan with []byte", func(it *testing.T) { 16 err = flag.Scan([]byte(`Yes`)) 17 require.NoError(t, err) 18 require.Equal(t, Boolean(true), flag) 19 20 err = flag.Scan([]byte(`yEs`)) 21 require.NoError(t, err) 22 require.Equal(t, Boolean(true), flag) 23 24 err = flag.Scan([]byte(`YES`)) 25 require.NoError(t, err) 26 require.Equal(t, Boolean(true), flag) 27 28 err = flag.Scan([]byte(`y`)) 29 require.NoError(t, err) 30 require.Equal(t, Boolean(true), flag) 31 32 err = flag.Scan([]byte(`true`)) 33 require.NoError(t, err) 34 require.Equal(t, Boolean(true), flag) 35 36 err = flag.Scan([]byte(`no`)) 37 require.NoError(t, err) 38 require.Equal(t, Boolean(false), flag) 39 40 err = flag.Scan([]byte(`n`)) 41 require.NoError(t, err) 42 require.Equal(t, Boolean(false), flag) 43 44 err = flag.Scan([]byte(`false`)) 45 require.NoError(t, err) 46 require.Equal(t, Boolean(false), flag) 47 }) 48 49 t.Run("Scan with string", func(it *testing.T) { 50 err = flag.Scan("yes") 51 require.NoError(t, err) 52 require.Equal(t, Boolean(true), flag) 53 54 err = flag.Scan("y") 55 require.NoError(t, err) 56 require.Equal(t, Boolean(true), flag) 57 58 err = flag.Scan("true") 59 require.NoError(t, err) 60 require.Equal(t, Boolean(true), flag) 61 62 err = flag.Scan("no") 63 require.NoError(t, err) 64 require.Equal(t, Boolean(false), flag) 65 66 err = flag.Scan("n") 67 require.NoError(t, err) 68 require.Equal(t, Boolean(false), flag) 69 70 err = flag.Scan("false") 71 require.NoError(t, err) 72 require.Equal(t, Boolean(false), flag) 73 }) 74 75 t.Run("Scan with int64", func(it *testing.T) { 76 err = flag.Scan(int64(1)) 77 require.NoError(t, err) 78 require.Equal(t, Boolean(true), flag) 79 80 err = flag.Scan(int64(0)) 81 require.NoError(t, err) 82 require.Equal(t, Boolean(false), flag) 83 }) 84 }