neo-go/pkg/services/rpcsrv/params/params_test.go
Roman Khimov e496084bee params: add FromAny function
Creating RPC server parameters from any data can be useful. Refs. #2909.
2023-02-15 16:46:59 +03:00

31 lines
800 B
Go

package params
import (
"testing"
"github.com/nspcc-dev/neo-go/pkg/smartcontract"
"github.com/stretchr/testify/require"
)
func TestParamsFromAny(t *testing.T) {
str := "jajaja"
ps, err := FromAny([]interface{}{str, smartcontract.Parameter{Type: smartcontract.StringType, Value: str}})
require.NoError(t, err)
require.Equal(t, 2, len(ps))
resStr, err := ps[0].GetString()
require.NoError(t, err)
require.Equal(t, resStr, str)
resFP, err := ps[1].GetFuncParam()
require.NoError(t, err)
require.Equal(t, resFP.Type, smartcontract.StringType)
resStr, err = resFP.Value.GetString()
require.NoError(t, err)
require.Equal(t, resStr, str)
// Invalid item.
_, err = FromAny([]interface{}{smartcontract.Parameter{Type: smartcontract.IntegerType, Value: str}})
require.Error(t, err)
}