github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/core/transaction/witness_test.go (about) 1 package transaction 2 3 import ( 4 "testing" 5 6 "github.com/nspcc-dev/neo-go/internal/testserdes" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestWitnessSerDes(t *testing.T) { 11 var good1 = &Witness{ 12 InvocationScript: make([]byte, 64), 13 VerificationScript: make([]byte, 32), 14 } 15 var good2 = &Witness{ 16 InvocationScript: make([]byte, MaxInvocationScript), 17 VerificationScript: make([]byte, MaxVerificationScript), 18 } 19 var bad1 = &Witness{ 20 InvocationScript: make([]byte, MaxInvocationScript+1), 21 VerificationScript: make([]byte, 32), 22 } 23 var bad2 = &Witness{ 24 InvocationScript: make([]byte, 128), 25 VerificationScript: make([]byte, MaxVerificationScript+1), 26 } 27 var exp = new(Witness) 28 testserdes.MarshalUnmarshalJSON(t, good1, exp) 29 testserdes.MarshalUnmarshalJSON(t, good2, exp) 30 testserdes.EncodeDecodeBinary(t, good1, exp) 31 testserdes.EncodeDecodeBinary(t, good2, exp) 32 bin1, err := testserdes.EncodeBinary(bad1) 33 require.NoError(t, err) 34 bin2, err := testserdes.EncodeBinary(bad2) 35 require.NoError(t, err) 36 require.Error(t, testserdes.DecodeBinary(bin1, exp)) 37 require.Error(t, testserdes.DecodeBinary(bin2, exp)) 38 } 39 40 func TestWitnessCopy(t *testing.T) { 41 original := &Witness{ 42 InvocationScript: []byte{1, 2, 3}, 43 VerificationScript: []byte{3, 2, 1}, 44 } 45 46 cp := original.Copy() 47 require.Equal(t, *original, cp) 48 49 original.InvocationScript[0] = 0x05 50 require.NotEqual(t, *original, cp) 51 }