github.com/go-board/x-go@v0.1.2-0.20220610024734-db1323f6cb15/xcodec/codec_test.go (about) 1 package xcodec_test 2 3 // 4 //import ( 5 // "encoding/gob" 6 // "testing" 7 // 8 // "github.com/stretchr/testify/require" 9 // 10 // 11 // "github.com/go-board/x-go/xcodec" 12 // "github.com/go-board/x-go/xcodec/xgob" 13 // "github.com/go-board/x-go/xcodec/xjson" 14 //) 15 // 16 //type testStruct struct { 17 // A int 18 // B string 19 //} 20 // 21 //func init() { 22 // gob.Register(&testStruct{}) 23 //} 24 // 25 //func TestCodec(t *testing.T) { 26 // t.Run("gob", func(t *testing.T) { 27 // codec := xcodec.Get(xgob.Name) 28 // testCodec(t, codec) 29 // }) 30 // t.Run("json", func(t *testing.T) { 31 // codec := xcodec.Get(xjson.Name) 32 // testCodec(t, codec) 33 // }) 34 // t.Run("proto", func(t *testing.T) { 35 // codec := xcodec.Get(xproto.Name) 36 // bytes, err := codec.Marshal(&internal.Test{ 37 // A: "hello", 38 // B: true, 39 // C: 3, 40 // }) 41 // require.Nil(t, err, "err must be nil") 42 // x := new(internal.Test) 43 // err = codec.Unmarshal(bytes, x) 44 // require.Nil(t, err, "err must be nil") 45 // require.Equal(t, "hello", x.A, "x.A must be string(hello)") 46 // require.Equal(t, true, x.B, "x.B must be bool(false)") 47 // require.Equal(t, int64(3), x.C, "x.C must be integer(3)") 48 // }) 49 // t.Run("toml", func(t *testing.T) { 50 // codec := xcodec.Get(xtoml.Name) 51 // testCodec(t, codec) 52 // }) 53 // t.Run("yaml", func(t *testing.T) { 54 // codec := xcodec.Get(xyaml.Name) 55 // testCodec(t, codec) 56 // }) 57 //} 58 // 59 //func testCodec(t *testing.T, codec xcodec.Codec) { 60 // bytes, err := codec.Marshal(&testStruct{A: 1, B: "hello"}) 61 // require.Nil(t, err, "err must be nil") 62 // x := new(testStruct) 63 // err = codec.Unmarshal(bytes, x) 64 // require.Nil(t, err, "err must be nil") 65 // require.Equal(t, 1, x.A, "x.A must be integer(1)") 66 // require.Equal(t, "hello", x.B, "x.B must be string(hello)") 67 //}