package types
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/gogo/protobuf/proto"
|
|
"github.com/stretchr/testify/assert"
|
|
cmn "github.com/tendermint/tmlibs/common"
|
|
)
|
|
|
|
func TestMarshalJSON(t *testing.T) {
|
|
b, err := json.Marshal(&ResponseDeliverTx{})
|
|
assert.Nil(t, err)
|
|
// Do not include empty fields.
|
|
assert.False(t, strings.Contains(string(b), "code"))
|
|
|
|
r1 := ResponseCheckTx{
|
|
Code: 1,
|
|
Data: []byte("hello"),
|
|
GasWanted: 43,
|
|
Tags: []cmn.KVPair{
|
|
{[]byte("pho"), []byte("bo")},
|
|
},
|
|
}
|
|
b, err = json.Marshal(&r1)
|
|
assert.Nil(t, err)
|
|
|
|
var r2 ResponseCheckTx
|
|
err = json.Unmarshal(b, &r2)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, r1, r2)
|
|
}
|
|
|
|
func TestWriteReadMessageSimple(t *testing.T) {
|
|
cases := []proto.Message{
|
|
&RequestEcho{
|
|
Message: "Hello",
|
|
},
|
|
}
|
|
|
|
for _, c := range cases {
|
|
buf := new(bytes.Buffer)
|
|
err := WriteMessage(c, buf)
|
|
assert.Nil(t, err)
|
|
|
|
msg := new(RequestEcho)
|
|
err = ReadMessage(buf, msg)
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, c, msg)
|
|
}
|
|
}
|
|
|
|
func TestWriteReadMessage(t *testing.T) {
|
|
cases := []proto.Message{
|
|
&Header{
|
|
NumTxs: 4,
|
|
},
|
|
// TODO: add the rest
|
|
}
|
|
|
|
for _, c := range cases {
|
|
buf := new(bytes.Buffer)
|
|
err := WriteMessage(c, buf)
|
|
assert.Nil(t, err)
|
|
|
|
msg := new(Header)
|
|
err = ReadMessage(buf, msg)
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, c, msg)
|
|
}
|
|
}
|
|
|
|
func TestWriteReadMessage2(t *testing.T) {
|
|
phrase := "hello-world"
|
|
cases := []proto.Message{
|
|
&ResponseCheckTx{
|
|
Data: []byte(phrase),
|
|
Log: phrase,
|
|
GasWanted: 10,
|
|
Tags: []cmn.KVPair{
|
|
cmn.KVPair{[]byte("abc"), []byte("def")},
|
|
},
|
|
// Fee: cmn.KI64Pair{
|
|
},
|
|
// TODO: add the rest
|
|
}
|
|
|
|
for _, c := range cases {
|
|
buf := new(bytes.Buffer)
|
|
err := WriteMessage(c, buf)
|
|
assert.Nil(t, err)
|
|
|
|
msg := new(ResponseCheckTx)
|
|
err = ReadMessage(buf, msg)
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, c, msg)
|
|
}
|
|
}
|