lnwire: update tests for init message
This commit is contained in:
2 files changed
+65
No files matched your search
@@ -0,0 +1,61 @@
|
|||||||
|
package lnwire
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TestInitEncodeDecode checks that we can encode and decode an Init message
|
||||||
|
// to and from a byte stream.
|
||||||
|
func TestInitEncodeDecode(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
// These are the raw bytes that we expect to be generated from the
|
||||||
|
// sample Init message.
|
||||||
|
rawBytes := []byte{
|
||||||
|
// GlobalFeatures
|
||||||
|
0x00, 0x01, 0xc0,
|
||||||
|
|
||||||
|
// Features
|
||||||
|
0x00, 0x01, 0xc0,
|
||||||
|
|
||||||
|
// ExtraData - unknown odd-type TLV record.
|
||||||
|
0x6f, // type (111)
|
||||||
|
0x02, // length
|
||||||
|
0x79, 0x79, // value
|
||||||
|
|
||||||
|
// ExtraData - custom TLV record.
|
||||||
|
// TLV record for type 67676
|
||||||
|
0xfe, 0x00, 0x01, 0x08, 0x6c, // type (67676)
|
||||||
|
0x05, // length
|
||||||
|
0x01, 0x02, 0x03, 0x04, 0x05, // value
|
||||||
|
|
||||||
|
// ExtraData - custom TLV record.
|
||||||
|
// TLV record for type 67777
|
||||||
|
0xfe, 0x00, 0x01, 0x08, 0xc1, // type (67777)
|
||||||
|
0x03, // length
|
||||||
|
0x01, 0x02, 0x03, // value
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a new empty message and decode the raw bytes into it.
|
||||||
|
msg := &Init{}
|
||||||
|
r := bytes.NewReader(rawBytes)
|
||||||
|
err := msg.Decode(r, 0)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
require.NotNil(t, msg.GlobalFeatures)
|
||||||
|
require.NotNil(t, msg.Features)
|
||||||
|
require.NotNil(t, msg.CustomRecords)
|
||||||
|
require.NotNil(t, msg.ExtraData)
|
||||||
|
|
||||||
|
// Next, encode the message back into a new byte buffer.
|
||||||
|
var b bytes.Buffer
|
||||||
|
err = msg.Encode(&b, 0)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// The re-encoded bytes should be exactly the same as the original raw
|
||||||
|
// bytes.
|
||||||
|
require.Equal(t, rawBytes, b.Bytes())
|
||||||
|
}
|
||||||
@@ -1188,6 +1188,10 @@ func (msg *Init) RandTestMessage(t *rapid.T) Message {
|
|||||||
local.Set(bit)
|
local.Set(bit)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ignoreRecords := fn.NewSet[uint64]()
|
||||||
|
|
||||||
|
msg.ExtraData = RandExtraOpaqueData(t, ignoreRecords)
|
||||||
|
|
||||||
return NewInitMessage(global, local)
|
return NewInitMessage(global, local)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user