WhisperIdentityArgs

This commit is contained in:
Taylor Gerring 2015-03-26 20:20:43 +01:00
parent 1f1e98f96b
commit b414a1303f
2 changed files with 40 additions and 4 deletions

View File

@ -687,9 +687,8 @@ type WhisperIdentityArgs struct {
} }
func (args *WhisperIdentityArgs) UnmarshalJSON(b []byte) (err error) { func (args *WhisperIdentityArgs) UnmarshalJSON(b []byte) (err error) {
var obj []string var obj []interface{}
r := bytes.NewReader(b) if err := json.Unmarshal(b, &obj); err != nil {
if err := json.NewDecoder(r).Decode(&obj); err != nil {
return NewDecodeParamError(err.Error()) return NewDecodeParamError(err.Error())
} }
@ -697,7 +696,14 @@ func (args *WhisperIdentityArgs) UnmarshalJSON(b []byte) (err error) {
return NewInsufficientParamsError(len(obj), 1) return NewInsufficientParamsError(len(obj), 1)
} }
args.Identity = obj[0] argstr, ok := obj[0].(string)
if !ok {
return NewInvalidTypeError("arg0", "not a string")
}
// if !common.IsHex(argstr) {
// return NewValidationError("arg0", "not a hexstring")
// }
args.Identity = argstr
return nil return nil
} }

View File

@ -1196,6 +1196,36 @@ func TestWhisperIdentityArgs(t *testing.T) {
} }
} }
func TestWhisperIdentityArgsInvalid(t *testing.T) {
input := `{}`
args := new(WhisperIdentityArgs)
str := ExpectDecodeParamError(json.Unmarshal([]byte(input), &args))
if len(str) > 0 {
t.Errorf(str)
}
}
func TestWhisperIdentityArgsEmpty(t *testing.T) {
input := `[]`
args := new(WhisperIdentityArgs)
str := ExpectInsufficientParamsError(json.Unmarshal([]byte(input), &args))
if len(str) > 0 {
t.Errorf(str)
}
}
func TestWhisperIdentityArgsInt(t *testing.T) {
input := `[4]`
args := new(WhisperIdentityArgs)
str := ExpectInvalidTypeError(json.Unmarshal([]byte(input), &args))
if len(str) > 0 {
t.Errorf(str)
}
}
func TestBlockNumIndexArgs(t *testing.T) { func TestBlockNumIndexArgs(t *testing.T) {
input := `["0x29a", "0x0"]` input := `["0x29a", "0x0"]`
expected := new(BlockNumIndexArgs) expected := new(BlockNumIndexArgs)