Return error if RPC returns empty header

- Enables graceful failure if RPC returns empty data with no error
This commit is contained in:
Rob Mulholand
2018-09-25 14:11:35 -05:00
parent 92525ca575
commit a0ba6ca6bd
3 changed files with 25 additions and 3 deletions
+6 -3
View File
@@ -4,7 +4,6 @@ import (
"context"
"math/big"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/p2p"
. "github.com/onsi/gomega"
@@ -19,6 +18,7 @@ type MockRpcClient struct {
passedContext context.Context
passedMethod string
passedResult interface{}
returnPOAHeader core.POAHeader
supportedModules map[string]string
}
@@ -45,8 +45,7 @@ func (client *MockRpcClient) CallContext(ctx context.Context, result interface{}
*p = types.Header{Number: big.NewInt(123)}
}
if p, ok := result.(*core.POAHeader); ok {
n := hexutil.Big(*big.NewInt(123))
*p = core.POAHeader{Number: &n}
*p = client.returnPOAHeader
}
if client.callContextErr != nil {
return client.callContextErr
@@ -91,6 +90,10 @@ func (client *MockRpcClient) SetCallContextErr(err error) {
client.callContextErr = err
}
func (client *MockRpcClient) SetReturnPOAHeader(header core.POAHeader) {
client.returnPOAHeader = header
}
func (client *MockRpcClient) AssertCallContextCalledWith(ctx context.Context, result interface{}, method string) {
Expect(client.passedContext).To(Equal(ctx))
Expect(client.passedResult).To(BeAssignableToTypeOf(result))