github.com/RevenueMonster/sqlike@v1.0.6/sql/codec/encoder_test.go (about) 1 package codec 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestEncodeMap(t *testing.T) { 11 var ( 12 enc = DefaultEncoders{} 13 it interface{} 14 err error 15 ) 16 17 // Nil map 18 { 19 var nilmap map[string]string 20 it, err = enc.EncodeMap(nil, reflect.ValueOf(nilmap)) 21 require.NoError(t, err) 22 require.Equal(t, `null`, it) 23 } 24 25 // Initialized map 26 { 27 initmap := make(map[string]int) 28 it, err = enc.EncodeMap(nil, reflect.ValueOf(initmap)) 29 require.NoError(t, err) 30 require.Equal(t, []byte(`{}`), it) 31 } 32 33 // Initialized map 34 { 35 initmap := make(map[string]int) 36 it, err = enc.EncodeMap(nil, reflect.ValueOf(initmap)) 37 require.NoError(t, err) 38 require.Equal(t, []byte(`{}`), it) 39 } 40 41 // Map with interface value 42 { 43 intmap := make(map[int]interface{}) 44 it, err = enc.EncodeMap(nil, reflect.ValueOf(intmap)) 45 require.NoError(t, err) 46 require.Equal(t, []byte(`{}`), it) 47 } 48 49 }