github.com/MetalBlockchain/metalgo@v1.11.9/vms/platformvm/warp/message_test.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package warp 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 11 "github.com/MetalBlockchain/metalgo/codec" 12 "github.com/MetalBlockchain/metalgo/ids" 13 "github.com/MetalBlockchain/metalgo/utils/constants" 14 "github.com/MetalBlockchain/metalgo/utils/crypto/bls" 15 ) 16 17 func TestMessage(t *testing.T) { 18 require := require.New(t) 19 20 unsignedMsg, err := NewUnsignedMessage( 21 constants.UnitTestID, 22 ids.GenerateTestID(), 23 []byte("payload"), 24 ) 25 require.NoError(err) 26 27 msg, err := NewMessage( 28 unsignedMsg, 29 &BitSetSignature{ 30 Signers: []byte{1, 2, 3}, 31 Signature: [bls.SignatureLen]byte{4, 5, 6}, 32 }, 33 ) 34 require.NoError(err) 35 36 msgBytes := msg.Bytes() 37 msg2, err := ParseMessage(msgBytes) 38 require.NoError(err) 39 require.Equal(msg, msg2) 40 } 41 42 func TestParseMessageJunk(t *testing.T) { 43 require := require.New(t) 44 45 bytes := []byte{0, 1, 2, 3, 4, 5, 6, 7} 46 _, err := ParseMessage(bytes) 47 require.ErrorIs(err, codec.ErrUnknownVersion) 48 }