BlockNumIndexArgs

This commit is contained in:
Taylor Gerring 2015-03-26 13:57:41 +01:00
parent cd6b3fd28a
commit cb103c089a
2 changed files with 62 additions and 4 deletions

View File

@ -326,11 +326,9 @@ func (args *BlockNumIndexArgs) UnmarshalJSON(b []byte) (err error) {
return NewInsufficientParamsError(len(obj), 1) return NewInsufficientParamsError(len(obj), 1)
} }
arg0, ok := obj[0].(string) if err := blockHeight(obj[0], &args.BlockNumber); err != nil {
if !ok { return err
return NewInvalidTypeError("blockNumber", "not a string")
} }
args.BlockNumber = common.Big(arg0).Int64()
if len(obj) > 1 { if len(obj) > 1 {
arg1, ok := obj[1].(string) arg1, ok := obj[1].(string)

View File

@ -1076,6 +1076,66 @@ func TestBlockNumIndexArgs(t *testing.T) {
} }
} }
func TestBlockNumIndexArgsEmpty(t *testing.T) {
input := `[]`
args := new(BlockNumIndexArgs)
err := json.Unmarshal([]byte(input), &args)
switch err.(type) {
case nil:
t.Error("Expected error but didn't get one")
case *InsufficientParamsError:
break
default:
t.Errorf("Expected *rpc.InsufficientParamsError but got %T with message `%s`", err, err.Error())
}
}
func TestBlockNumIndexArgsInvalid(t *testing.T) {
input := `"foo"`
args := new(BlockNumIndexArgs)
err := json.Unmarshal([]byte(input), &args)
switch err.(type) {
case nil:
t.Error("Expected error but didn't get one")
case *DecodeParamError:
break
default:
t.Errorf("Expected *rpc.DecodeParamError but got %T with message `%s`", err, err.Error())
}
}
func TestBlockNumIndexArgsBlocknumInvalid(t *testing.T) {
input := `[{}, "0x1"]`
args := new(BlockNumIndexArgs)
err := json.Unmarshal([]byte(input), &args)
switch err.(type) {
case nil:
t.Error("Expected error but didn't get one")
case *InvalidTypeError:
break
default:
t.Errorf("Expected *rpc.InvalidTypeError but got %T with message `%s`", err, err.Error())
}
}
func TestBlockNumIndexArgsIndexInvalid(t *testing.T) {
input := `["0x29a", 1]`
args := new(BlockNumIndexArgs)
err := json.Unmarshal([]byte(input), &args)
switch err.(type) {
case nil:
t.Error("Expected error but didn't get one")
case *InvalidTypeError:
break
default:
t.Errorf("Expected *rpc.InvalidTypeError but got %T with message `%s`", err, err.Error())
}
}
func TestHashIndexArgs(t *testing.T) { func TestHashIndexArgs(t *testing.T) {
input := `["0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", "0x1"]` input := `["0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", "0x1"]`
expected := new(HashIndexArgs) expected := new(HashIndexArgs)