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  }