github.com/elastos/Elastos.ELA.SideChain.ETH@v0.2.2/dpos/message_test.go (about) 1 // Copyright (c) 2017-2019 The Elastos Foundation 2 // Use of this source code is governed by an MIT 3 // license that can be found in the LICENSE file. 4 // 5 6 package dpos 7 8 import ( 9 "bytes" 10 "testing" 11 12 "github.com/elastos/Elastos.ELA/common" 13 "github.com/elastos/Elastos.ELA/p2p/msg" 14 15 "github.com/stretchr/testify/assert" 16 ) 17 18 func TestMessage_SerializeDeserialize(t *testing.T) { 19 ivHash, _ := common.Uint256FromHexString("8a6cb4b5ff1a4f8368c6513a536c663381e3fdeff738e9b437bd8fce3fb30b62") 20 ivMsg := msg.NewInv() 21 iv := &msg.InvVect{ 22 Type: msg.InvTypeAddress, 23 Hash: *ivHash, 24 } 25 err := ivMsg.AddInvVect(iv) 26 assert.NoError(t, err) 27 ivMsgBuf := new(bytes.Buffer) 28 err = ivMsg.Serialize(ivMsgBuf) 29 assert.NoError(t, err) 30 31 elaMsg := &ElaMsg{ 32 Type: Inv, 33 Msg: ivMsgBuf.Bytes(), 34 } 35 elaMsgBuf := new(bytes.Buffer) 36 err = elaMsg.Serialize(elaMsgBuf) 37 assert.NoError(t, err) 38 39 var newElaMsg ElaMsg 40 err = newElaMsg.Deserialize(elaMsgBuf) 41 assert.NoError(t, err) 42 assert.Equal(t, Inv, newElaMsg.Type) 43 assert.Equal(t, ivMsgBuf.Bytes(), newElaMsg.Msg) 44 }