neo-go/pkg/core/transaction/witness_test.go

52 lines
1.4 KiB
Go
Raw Normal View History

package transaction
import (
"testing"
"github.com/nspcc-dev/neo-go/internal/testserdes"
"github.com/stretchr/testify/require"
)
func TestWitnessSerDes(t *testing.T) {
var good1 = &Witness{
InvocationScript: make([]byte, 64),
VerificationScript: make([]byte, 32),
}
var good2 = &Witness{
InvocationScript: make([]byte, MaxInvocationScript),
VerificationScript: make([]byte, MaxVerificationScript),
}
var bad1 = &Witness{
InvocationScript: make([]byte, MaxInvocationScript+1),
VerificationScript: make([]byte, 32),
}
var bad2 = &Witness{
InvocationScript: make([]byte, 128),
VerificationScript: make([]byte, MaxVerificationScript+1),
}
var exp = new(Witness)
testserdes.MarshalUnmarshalJSON(t, good1, exp)
testserdes.MarshalUnmarshalJSON(t, good2, exp)
testserdes.EncodeDecodeBinary(t, good1, exp)
testserdes.EncodeDecodeBinary(t, good2, exp)
bin1, err := testserdes.EncodeBinary(bad1)
require.NoError(t, err)
bin2, err := testserdes.EncodeBinary(bad2)
require.NoError(t, err)
require.Error(t, testserdes.DecodeBinary(bin1, exp))
require.Error(t, testserdes.DecodeBinary(bin2, exp))
}
func TestWitnessCopy(t *testing.T) {
original := &Witness{
InvocationScript: []byte{1, 2, 3},
VerificationScript: []byte{3, 2, 1},
}
cp := original.Copy()
require.Equal(t, *original, cp)
original.InvocationScript[0] = 0x05
require.NotEqual(t, *original, cp)
}