github.com/evdatsion/aphelion-dpos-bft@v0.32.1/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 cmn "github.com/evdatsion/aphelion-dpos-bft/libs/common" 13 ) 14 15 func TestMarshalJSON(t *testing.T) { 16 b, err := json.Marshal(&ResponseDeliverTx{}) 17 assert.Nil(t, err) 18 // Do not include empty fields. 19 assert.False(t, strings.Contains(string(b), "code")) 20 21 r1 := ResponseCheckTx{ 22 Code: 1, 23 Data: []byte("hello"), 24 GasWanted: 43, 25 Events: []Event{ 26 { 27 Type: "testEvent", 28 Attributes: []cmn.KVPair{ 29 {Key: []byte("pho"), Value: []byte("bo")}, 30 }, 31 }, 32 }, 33 } 34 b, err = json.Marshal(&r1) 35 assert.Nil(t, err) 36 37 var r2 ResponseCheckTx 38 err = json.Unmarshal(b, &r2) 39 assert.Nil(t, err) 40 assert.Equal(t, r1, r2) 41 } 42 43 func TestWriteReadMessageSimple(t *testing.T) { 44 cases := []proto.Message{ 45 &RequestEcho{ 46 Message: "Hello", 47 }, 48 } 49 50 for _, c := range cases { 51 buf := new(bytes.Buffer) 52 err := WriteMessage(c, buf) 53 assert.Nil(t, err) 54 55 msg := new(RequestEcho) 56 err = ReadMessage(buf, msg) 57 assert.Nil(t, err) 58 59 assert.Equal(t, c, msg) 60 } 61 } 62 63 func TestWriteReadMessage(t *testing.T) { 64 cases := []proto.Message{ 65 &Header{ 66 NumTxs: 4, 67 }, 68 // TODO: add the rest 69 } 70 71 for _, c := range cases { 72 buf := new(bytes.Buffer) 73 err := WriteMessage(c, buf) 74 assert.Nil(t, err) 75 76 msg := new(Header) 77 err = ReadMessage(buf, msg) 78 assert.Nil(t, err) 79 80 assert.Equal(t, c, msg) 81 } 82 } 83 84 func TestWriteReadMessage2(t *testing.T) { 85 phrase := "hello-world" 86 cases := []proto.Message{ 87 &ResponseCheckTx{ 88 Data: []byte(phrase), 89 Log: phrase, 90 GasWanted: 10, 91 Events: []Event{ 92 { 93 Type: "testEvent", 94 Attributes: []cmn.KVPair{ 95 {Key: []byte("abc"), Value: []byte("def")}, 96 }, 97 }, 98 }, 99 }, 100 // TODO: add the rest 101 } 102 103 for _, c := range cases { 104 buf := new(bytes.Buffer) 105 err := WriteMessage(c, buf) 106 assert.Nil(t, err) 107 108 msg := new(ResponseCheckTx) 109 err = ReadMessage(buf, msg) 110 assert.Nil(t, err) 111 112 assert.Equal(t, c, msg) 113 } 114 }