39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
|
package transaction
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/nspcc-dev/neo-go/pkg/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))
|
||
|
}
|