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  }