gecko/vms/components/ava/asset_test.go

61 lines
1.2 KiB
Go

// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package ava
import (
"testing"
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/utils/codec"
)
func TestAssetVerifyNil(t *testing.T) {
id := (*Asset)(nil)
if err := id.Verify(); err == nil {
t.Fatalf("Should have errored due to nil AssetID")
}
}
func TestAssetVerifyEmpty(t *testing.T) {
id := Asset{}
if err := id.Verify(); err == nil {
t.Fatalf("Should have errored due to empty AssetID")
}
}
func TestAssetID(t *testing.T) {
c := codec.NewDefault()
id := Asset{
ID: ids.NewID([32]byte{
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
}),
}
if err := id.Verify(); err != nil {
t.Fatal(err)
}
bytes, err := c.Marshal(&id)
if err != nil {
t.Fatal(err)
}
newID := Asset{}
if err := c.Unmarshal(bytes, &newID); err != nil {
t.Fatal(err)
}
if err := newID.Verify(); err != nil {
t.Fatal(err)
}
if !id.AssetID().Equals(newID.AssetID()) {
t.Fatalf("Parsing returned the wrong Asset ID")
}
}