msgmempool_test.go raw
1 package wire
2
3 import (
4 "bytes"
5 "testing"
6 )
7
8 func TestMemPool(t *testing.T) {
9 pver := ProtocolVersion
10 enc := BaseEncoding
11 // Ensure the command is expected value.
12 wantCmd := "mempool"
13 msg := NewMsgMemPool()
14 if cmd := msg.Command(); cmd != wantCmd {
15 t.Errorf("NewMsgMemPool: wrong command - got %v want %v",
16 cmd, wantCmd,
17 )
18 }
19 // Ensure max payload is expected value.
20 wantPayload := uint32(0)
21 maxPayload := msg.MaxPayloadLength(pver)
22 if maxPayload != wantPayload {
23 t.Errorf("MaxPayloadLength: wrong max payload length for "+
24 "protocol version %d - got %v, want %v", pver,
25 maxPayload, wantPayload,
26 )
27 }
28 // Test encode with latest protocol version.
29 var buf bytes.Buffer
30 e := msg.BtcEncode(&buf, pver, enc)
31 if e != nil {
32 t.Errorf("encode of MsgMemPool failed %v err <%v>", msg, e)
33 }
34 // Older protocol versions should fail encode since message didn't exist yet.
35 oldPver := BIP0035Version - 1
36 e = msg.BtcEncode(&buf, oldPver, enc)
37 if e == nil {
38 s := "encode of MsgMemPool passed for old protocol version %v err <%v>"
39 t.Errorf(s, msg, e)
40 }
41 // Test decode with latest protocol version.
42 readmsg := NewMsgMemPool()
43 e = readmsg.BtcDecode(&buf, pver, enc)
44 if e != nil {
45 t.Errorf("decode of MsgMemPool failed [%v] err <%v>", buf, e)
46 }
47 // Older protocol versions should fail decode since message didn't exist yet.
48 e = readmsg.BtcDecode(&buf, oldPver, enc)
49 if e == nil {
50 s := "decode of MsgMemPool passed for old protocol version %v err <%v>"
51 t.Errorf(s, msg, e)
52 }
53 }
54