github.com/MetalBlockchain/metalgo@v1.11.9/vms/platformvm/warp/payload/payload_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 payload
     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  )
    14  
    15  var junkBytes = []byte{0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}
    16  
    17  func TestParseJunk(t *testing.T) {
    18  	require := require.New(t)
    19  	_, err := Parse(junkBytes)
    20  	require.ErrorIs(err, codec.ErrUnknownVersion)
    21  }
    22  
    23  func TestParseWrongPayloadType(t *testing.T) {
    24  	require := require.New(t)
    25  	hashPayload, err := NewHash(ids.GenerateTestID())
    26  	require.NoError(err)
    27  
    28  	shortID := ids.GenerateTestShortID()
    29  	addressedPayload, err := NewAddressedCall(
    30  		shortID[:],
    31  		[]byte{1, 2, 3},
    32  	)
    33  	require.NoError(err)
    34  
    35  	_, err = ParseAddressedCall(hashPayload.Bytes())
    36  	require.ErrorIs(err, errWrongType)
    37  
    38  	_, err = ParseHash(addressedPayload.Bytes())
    39  	require.ErrorIs(err, errWrongType)
    40  }
    41  
    42  func TestParse(t *testing.T) {
    43  	require := require.New(t)
    44  	hashPayload, err := NewHash(ids.ID{4, 5, 6})
    45  	require.NoError(err)
    46  
    47  	parsedHashPayload, err := Parse(hashPayload.Bytes())
    48  	require.NoError(err)
    49  	require.Equal(hashPayload, parsedHashPayload)
    50  
    51  	addressedPayload, err := NewAddressedCall(
    52  		[]byte{1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
    53  		[]byte{10, 11, 12},
    54  	)
    55  	require.NoError(err)
    56  
    57  	parsedAddressedPayload, err := Parse(addressedPayload.Bytes())
    58  	require.NoError(err)
    59  	require.Equal(addressedPayload, parsedAddressedPayload)
    60  }