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