github.com/ava-labs/avalanchego@v1.11.11/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/ava-labs/avalanchego/codec" 12 "github.com/ava-labs/avalanchego/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 }