6 "github.com/stretchr/testify/assert"
7 "github.com/stretchr/testify/require"
8 data "github.com/tendermint/go-wire/data"
15 type Cool struct{ data.Bytes }
16 type Lame struct{ data.Bytes }
18 var keyMapper data.Mapper
20 // register both private key types with go-wire/data (and thus go-wire)
22 keyMapper = data.NewMapper(KeyS{}).
23 RegisterImplementation(Cool{}, "cool", 1).
24 RegisterImplementation(Lame{}, "lame", 88)
27 // KeyS adds json serialization to Key
32 func (p KeyS) MarshalJSON() ([]byte, error) {
33 return keyMapper.ToJSON(p.Key)
36 func (p *KeyS) UnmarshalJSON(data []byte) (err error) {
37 parsed, err := keyMapper.FromJSON(data)
44 func TestSimpleText(t *testing.T) {
45 assert, require := assert.New(t), require.New(t)
47 data.Encoder = data.HexEncoder
52 {key: Cool{data.Bytes{0x42, 0x69}}, expected: "cool:4269"},
53 {key: Lame{data.Bytes{0x70, 0xA3, 0x1e}}, expected: "lame:70A31E"},
56 for _, tc := range cases {
59 _, err := data.ToJSON(wrap)
60 require.Nil(err, "%+v", err)
62 text, err := data.ToText(wrap)
63 require.Nil(err, "%+v", err)
64 assert.Equal(tc.expected, text)
68 func TestBytesTest(t *testing.T) {
69 assert, require := assert.New(t), require.New(t)
71 data.Encoder = data.HexEncoder
76 {data.Bytes{0x34, 0x54}, "3454"},
78 {data.Bytes{0xde, 0xad, 0xbe, 0x66}, "DEADBE66"},
81 for _, tc := range cases {
82 text, err := data.ToText(tc.bytes)
83 require.Nil(err, "%+v", err)
84 assert.Equal(tc.expected, text)