github.com/franono/tendermint@v0.32.2-0.20200527150959-749313264ce9/abci/types/messages_test.go (about) 1 package types 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "strings" 7 "testing" 8 9 "github.com/gogo/protobuf/proto" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestMarshalJSON(t *testing.T) { 14 b, err := json.Marshal(&ResponseDeliverTx{}) 15 assert.Nil(t, err) 16 // include empty fields. 17 assert.True(t, strings.Contains(string(b), "code")) 18 r1 := ResponseCheckTx{ 19 Code: 1, 20 Data: []byte("hello"), 21 GasWanted: 43, 22 Events: []Event{ 23 { 24 Type: "testEvent", 25 Attributes: []EventAttribute{ 26 {Key: []byte("pho"), Value: []byte("bo")}, 27 }, 28 }, 29 }, 30 } 31 b, err = json.Marshal(&r1) 32 assert.Nil(t, err) 33 34 var r2 ResponseCheckTx 35 err = json.Unmarshal(b, &r2) 36 assert.Nil(t, err) 37 assert.Equal(t, r1, r2) 38 } 39 40 func TestWriteReadMessageSimple(t *testing.T) { 41 cases := []proto.Message{ 42 &RequestEcho{ 43 Message: "Hello", 44 }, 45 } 46 47 for _, c := range cases { 48 buf := new(bytes.Buffer) 49 err := WriteMessage(c, buf) 50 assert.Nil(t, err) 51 52 msg := new(RequestEcho) 53 err = ReadMessage(buf, msg) 54 assert.Nil(t, err) 55 56 assert.Equal(t, c, msg) 57 } 58 } 59 60 func TestWriteReadMessage(t *testing.T) { 61 cases := []proto.Message{ 62 &Header{ 63 Height: 4, 64 ChainID: "test", 65 }, 66 // TODO: add the rest 67 } 68 69 for _, c := range cases { 70 buf := new(bytes.Buffer) 71 err := WriteMessage(c, buf) 72 assert.Nil(t, err) 73 74 msg := new(Header) 75 err = ReadMessage(buf, msg) 76 assert.Nil(t, err) 77 78 assert.Equal(t, c, msg) 79 } 80 } 81 82 func TestWriteReadMessage2(t *testing.T) { 83 phrase := "hello-world" 84 cases := []proto.Message{ 85 &ResponseCheckTx{ 86 Data: []byte(phrase), 87 Log: phrase, 88 GasWanted: 10, 89 Events: []Event{ 90 { 91 Type: "testEvent", 92 Attributes: []EventAttribute{ 93 {Key: []byte("abc"), Value: []byte("def")}, 94 }, 95 }, 96 }, 97 }, 98 // TODO: add the rest 99 } 100 101 for _, c := range cases { 102 buf := new(bytes.Buffer) 103 err := WriteMessage(c, buf) 104 assert.Nil(t, err) 105 106 msg := new(ResponseCheckTx) 107 err = ReadMessage(buf, msg) 108 assert.Nil(t, err) 109 110 assert.Equal(t, c, msg) 111 } 112 }