github.com/RevenueMonster/sqlike@v1.0.6/jsonb/encoder_test.go (about) 1 package jsonb 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 v reflect.Value 13 enc = DefaultEncoder{registry: buildDefaultRegistry()} 14 w *Writer 15 err error 16 ) 17 18 // uninitialized map 19 { 20 w = new(Writer) 21 var uninitmap map[string]interface{} 22 v = reflect.ValueOf(uninitmap) 23 err = enc.EncodeMap(w, v) 24 require.NoError(t, err) 25 require.Equal(t, []byte(`null`), w.Bytes()) 26 } 27 28 // initiliazed map 29 { 30 w = new(Writer) 31 initmap := make(map[string]interface{}) 32 v = reflect.ValueOf(initmap) 33 err = enc.EncodeMap(w, v) 34 require.NoError(t, err) 35 require.Equal(t, []byte(`{}`), w.Bytes()) 36 } 37 38 { 39 w = new(Writer) 40 m := make(map[string]interface{}) 41 m["a"] = "v1" 42 m["b"] = -2246 43 m["c"] = float64(10.888) 44 m["d"] = true 45 m["e"] = int64(103123213) 46 m["f"] = uint8(10) 47 m["z"] = nil 48 49 v = reflect.ValueOf(m) 50 err = enc.EncodeMap(w, v) 51 require.NoError(t, err) 52 require.Equal(t, []byte(`{"a":"v1","b":-2246,"c":1.0888E+01,"d":true,"e":103123213,"f":10,"z":null}`), w.Bytes()) 53 } 54 }