|
@ -0,0 +1,39 @@ |
|
|
|
|
|
package rpcclient |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
|
"testing" |
|
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert" |
|
|
|
|
|
"github.com/stretchr/testify/require" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
type Tx []byte |
|
|
|
|
|
|
|
|
|
|
|
type Foo struct { |
|
|
|
|
|
Bar int |
|
|
|
|
|
Baz string |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func TestArgToJSON(t *testing.T) { |
|
|
|
|
|
assert := assert.New(t) |
|
|
|
|
|
require := require.New(t) |
|
|
|
|
|
|
|
|
|
|
|
cases := []struct { |
|
|
|
|
|
input interface{} |
|
|
|
|
|
expected string |
|
|
|
|
|
}{ |
|
|
|
|
|
{[]byte("1234"), "0x31323334"}, |
|
|
|
|
|
{Tx("654"), "0x363534"}, |
|
|
|
|
|
{Foo{7, "hello"}, `{"Bar":7,"Baz":"hello"}`}, |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for i, tc := range cases { |
|
|
|
|
|
args := map[string]interface{}{"data": tc.input} |
|
|
|
|
|
err := argsToJson(args) |
|
|
|
|
|
require.Nil(err, "%d: %+v", i, err) |
|
|
|
|
|
require.Equal(1, len(args), "%d", i) |
|
|
|
|
|
data, ok := args["data"].(string) |
|
|
|
|
|
require.True(ok, "%d: %#v", i, args["data"]) |
|
|
|
|
|
assert.Equal(tc.expected, data, "%d", i) |
|
|
|
|
|
} |
|
|
|
|
|
} |