forked from cerc-io/plugeth
CompileArgs
This commit is contained in:
parent
ddcc8e1673
commit
81f36df910
12
rpc/args.go
12
rpc/args.go
@ -617,14 +617,18 @@ type CompileArgs struct {
|
||||
|
||||
func (args *CompileArgs) UnmarshalJSON(b []byte) (err error) {
|
||||
var obj []interface{}
|
||||
r := bytes.NewReader(b)
|
||||
if err := json.NewDecoder(r).Decode(&obj); err != nil {
|
||||
if err := json.Unmarshal(b, &obj); err != nil {
|
||||
return NewDecodeParamError(err.Error())
|
||||
}
|
||||
|
||||
if len(obj) > 0 {
|
||||
args.Source = obj[0].(string)
|
||||
if len(obj) < 1 {
|
||||
return NewInsufficientParamsError(len(obj), 1)
|
||||
}
|
||||
argstr, ok := obj[0].(string)
|
||||
if !ok {
|
||||
return NewInvalidTypeError("arg0", "is not a string")
|
||||
}
|
||||
args.Source = argstr
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -1126,6 +1126,36 @@ func TestCompileArgs(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCompileArgsInvalid(t *testing.T) {
|
||||
input := `{}`
|
||||
|
||||
args := new(CompileArgs)
|
||||
str := ExpectDecodeParamError(json.Unmarshal([]byte(input), args))
|
||||
if len(str) > 0 {
|
||||
t.Error(str)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCompileArgsEmpty(t *testing.T) {
|
||||
input := `[]`
|
||||
|
||||
args := new(CompileArgs)
|
||||
str := ExpectInsufficientParamsError(json.Unmarshal([]byte(input), args))
|
||||
if len(str) > 0 {
|
||||
t.Error(str)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCompileArgsBool(t *testing.T) {
|
||||
input := `[false]`
|
||||
|
||||
args := new(CompileArgs)
|
||||
str := ExpectInvalidTypeError(json.Unmarshal([]byte(input), args))
|
||||
if len(str) > 0 {
|
||||
t.Error(str)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterStringArgs(t *testing.T) {
|
||||
input := `["pending"]`
|
||||
expected := new(FilterStringArgs)
|
||||
|
Loading…
Reference in New Issue
Block a user