mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2025-05-05 13:06:20 +00:00
smartcontract: implement io.Serializable for Parameter
This commit is contained in:
parent
0f17b9be1d
commit
6ac69d075e
2 changed files with 111 additions and 0 deletions
|
@ -6,8 +6,10 @@ import (
|
|||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/nspcc-dev/neo-go/pkg/io"
|
||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var marshalJSONTestCases = []struct {
|
||||
|
@ -441,3 +443,28 @@ func TestNewParameterFromString(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestEncodeDecodeBinary(t *testing.T) {
|
||||
for _, tc := range marshalJSONTestCases {
|
||||
w := io.NewBufBinWriter()
|
||||
tc.input.EncodeBinary(w.BinWriter)
|
||||
require.NoError(t, w.Err)
|
||||
|
||||
r := io.NewBinReaderFromBuf(w.Bytes())
|
||||
var p Parameter
|
||||
p.DecodeBinary(r)
|
||||
require.NoError(t, r.Err)
|
||||
require.Equal(t, tc.input, p)
|
||||
}
|
||||
|
||||
t.Run("unknown", func(t *testing.T) {
|
||||
p := Parameter{Type: UnknownType}
|
||||
w := io.NewBufBinWriter()
|
||||
p.EncodeBinary(w.BinWriter)
|
||||
require.Error(t, w.Err)
|
||||
|
||||
r := io.NewBinReaderFromBuf([]byte{0xAA})
|
||||
p.DecodeBinary(r)
|
||||
require.Error(t, r.Err)
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue