github.com/MetalBlockchain/metalgo@v1.11.9/vms/platformvm/warp/payload/hash_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  	"encoding/base64"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"github.com/MetalBlockchain/metalgo/codec"
    13  	"github.com/MetalBlockchain/metalgo/ids"
    14  )
    15  
    16  func TestHash(t *testing.T) {
    17  	require := require.New(t)
    18  
    19  	hashPayload, err := NewHash(ids.GenerateTestID())
    20  	require.NoError(err)
    21  
    22  	hashPayloadBytes := hashPayload.Bytes()
    23  	parsedHashPayload, err := ParseHash(hashPayloadBytes)
    24  	require.NoError(err)
    25  	require.Equal(hashPayload, parsedHashPayload)
    26  }
    27  
    28  func TestParseHashJunk(t *testing.T) {
    29  	_, err := ParseHash(junkBytes)
    30  	require.ErrorIs(t, err, codec.ErrUnknownVersion)
    31  }
    32  
    33  func TestHashBytes(t *testing.T) {
    34  	require := require.New(t)
    35  	base64Payload := "AAAAAAAABAUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
    36  	hashPayload, err := NewHash(ids.ID{4, 5, 6})
    37  	require.NoError(err)
    38  	require.Equal(base64Payload, base64.StdEncoding.EncodeToString(hashPayload.Bytes()))
    39  }