gecko/vms/components/missing/block_test.go

46 lines
1.2 KiB
Go

// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package missing
import (
"testing"
"github.com/ava-labs/gecko/ids"
"github.com/ava-labs/gecko/snow/choices"
)
func TestMissingBlock(t *testing.T) {
id := ids.NewID([32]byte{255})
mb := Block{BlkID: id}
if blkID := mb.ID(); !blkID.Equals(id) {
t.Fatalf("missingBlock.ID returned %s, expected %s", blkID, id)
} else if status := mb.Status(); status != choices.Unknown {
t.Fatalf("missingBlock.Status returned %s, expected %s", status, choices.Unknown)
} else if parent := mb.Parent(); parent != nil {
t.Fatalf("missingBlock.Parent returned %v, expected %v", parent, nil)
} else if err := mb.Verify(); err == nil {
t.Fatalf("missingBlock.Verify returned nil, expected an error")
} else if bytes := mb.Bytes(); bytes != nil {
t.Fatalf("missingBlock.Bytes returned %v, expected %v", bytes, nil)
}
func() {
defer func() {
if r := recover(); r == nil {
t.Fatalf("Should have panicked on accept")
}
}()
mb.Accept()
}()
func() {
defer func() {
if r := recover(); r == nil {
t.Fatalf("Should have panicked on reject")
}
}()
mb.Reject()
}()
}