github.com/RevenueMonster/sqlike@v1.0.6/sql/dialect/mysql/value_test.go (about) 1 package mysql 2 3 import ( 4 "database/sql" 5 "encoding/json" 6 "testing" 7 "time" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 type stringer struct { 13 } 14 15 func (s stringer) String() string { 16 return "i'm stringer" 17 } 18 19 func TestFormat(t *testing.T) { 20 var ( 21 ms = New() 22 str string 23 ) 24 25 str = ms.Format(int64(-638731231286)) 26 require.Equal(t, "-638731231286", str) 27 28 str = ms.Format(uint64(638731231286)) 29 require.Equal(t, "638731231286", str) 30 31 str = ms.Format(int8(99)) 32 require.Equal(t, "99", str) 33 34 str = ms.Format("hello world") 35 require.Equal(t, `"hello world"`, str) 36 37 str = ms.Format(`😆 😉 😊 😋 emojis`) 38 require.Equal(t, `"😆 😉 😊 😋 emojis"`, str) 39 40 str = ms.Format(true) 41 require.Equal(t, "1", str) 42 43 str = ms.Format(false) 44 require.Equal(t, "0", str) 45 46 str = ms.Format(float64(1232.888333)) 47 require.Equal(t, "1.232888333e+03", str) 48 49 str = ms.Format(nil) 50 require.Equal(t, "NULL", str) 51 52 str = ms.Format(stringer{}) 53 require.Equal(t, `"i'm stringer"`, str) 54 55 ts, _ := time.Parse("2006-01-02 15:04:05", "2020-01-03 12:00:40") 56 str = ms.Format(ts) 57 require.Equal(t, `"2020-01-03 12:00:40"`, str) 58 59 str = ms.Format([]byte("hello world")) 60 require.Equal(t, `"hello world"`, str) 61 62 str = ms.Format(sql.RawBytes(`raw`)) 63 require.Equal(t, `raw`, str) 64 65 str = ms.Format(json.RawMessage(`{"key":"value", "key2":"value"}`)) 66 require.Equal(t, `"{\"key\":\"value\", \"key2\":\"value\"}"`, str) 67 }