github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/smartcontract/manifest/abi_test.go (about) 1 package manifest 2 3 import ( 4 "testing" 5 6 "github.com/nspcc-dev/neo-go/pkg/smartcontract" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestABIIsValid(t *testing.T) { 11 a := &ABI{} 12 require.Error(t, a.IsValid()) // No methods. 13 14 a.Methods = append(a.Methods, Method{Name: "qwe"}) 15 require.NoError(t, a.IsValid()) 16 17 a.Methods = append(a.Methods, Method{Name: "qaz"}) 18 require.NoError(t, a.IsValid()) 19 20 a.Methods = append(a.Methods, Method{Name: "qaz", Offset: -42}) 21 require.Error(t, a.IsValid()) 22 23 a.Methods = append(a.Methods[:len(a.Methods)-1], Method{Name: "qwe", Parameters: []Parameter{NewParameter("param", smartcontract.BoolType)}}) 24 require.NoError(t, a.IsValid()) 25 26 a.Methods = append(a.Methods, Method{Name: "qwe"}) 27 require.Error(t, a.IsValid()) 28 a.Methods = a.Methods[:len(a.Methods)-1] 29 30 a.Events = append(a.Events, Event{Name: "wsx"}) 31 require.NoError(t, a.IsValid()) 32 33 a.Events = append(a.Events, Event{}) 34 require.Error(t, a.IsValid()) 35 36 a.Events = append(a.Events[:len(a.Events)-1], Event{Name: "edc"}) 37 require.NoError(t, a.IsValid()) 38 39 a.Events = append(a.Events, Event{Name: "wsx"}) 40 require.Error(t, a.IsValid()) 41 }