port over lightSync updates from maker repo
This commit is contained in:
+31
-2
@@ -16,6 +16,35 @@
|
||||
|
||||
package fakes
|
||||
|
||||
import "errors"
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"strconv"
|
||||
|
||||
var FakeError = errors.New("failed")
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
|
||||
"github.com/vulcanize/vulcanizedb/pkg/core"
|
||||
)
|
||||
|
||||
var (
|
||||
FakeError = errors.New("failed")
|
||||
FakeHash = common.BytesToHash([]byte{1, 2, 3, 4, 5})
|
||||
fakeTimestamp = int64(111111111)
|
||||
)
|
||||
|
||||
var rawFakeHeader, _ = json.Marshal(types.Header{})
|
||||
var FakeHeader = core.Header{
|
||||
Hash: FakeHash.String(),
|
||||
Raw: rawFakeHeader,
|
||||
Timestamp: strconv.FormatInt(fakeTimestamp, 10),
|
||||
}
|
||||
|
||||
func GetFakeHeader(blockNumber int64) core.Header {
|
||||
return core.Header{
|
||||
Hash: FakeHash.String(),
|
||||
BlockNumber: blockNumber,
|
||||
Raw: rawFakeHeader,
|
||||
Timestamp: strconv.FormatInt(fakeTimestamp, 10),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,29 +18,38 @@ package fakes
|
||||
|
||||
import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
"github.com/ethereum/go-ethereum/p2p"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"github.com/vulcanize/vulcanizedb/pkg/core"
|
||||
)
|
||||
|
||||
type MockRpcClient struct {
|
||||
ipcPath string
|
||||
nodeType core.NodeType
|
||||
callContextErr error
|
||||
ipcPath string
|
||||
nodeType core.NodeType
|
||||
passedContext context.Context
|
||||
passedMethod string
|
||||
passedResult interface{}
|
||||
returnPOAHeader core.POAHeader
|
||||
supportedModules map[string]string
|
||||
}
|
||||
|
||||
func NewMockRpcClient() *MockRpcClient {
|
||||
return &MockRpcClient{}
|
||||
}
|
||||
|
||||
func (client *MockRpcClient) SetNodeType(nodeType core.NodeType) {
|
||||
client.nodeType = nodeType
|
||||
}
|
||||
|
||||
func (client *MockRpcClient) SetIpcPath(ipcPath string) {
|
||||
client.ipcPath = ipcPath
|
||||
}
|
||||
|
||||
func (*MockRpcClient) CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error {
|
||||
func (client *MockRpcClient) CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error {
|
||||
client.passedContext = ctx
|
||||
client.passedResult = result
|
||||
client.passedMethod = method
|
||||
switch method {
|
||||
case "admin_nodeInfo":
|
||||
if p, ok := result.(*p2p.NodeInfo); ok {
|
||||
@@ -49,9 +58,14 @@ func (*MockRpcClient) CallContext(ctx context.Context, result interface{}, metho
|
||||
}
|
||||
case "eth_getBlockByNumber":
|
||||
if p, ok := result.(*types.Header); ok {
|
||||
*p = types.Header{}
|
||||
*p = types.Header{Number: big.NewInt(123)}
|
||||
}
|
||||
if p, ok := result.(*core.POAHeader); ok {
|
||||
*p = client.returnPOAHeader
|
||||
}
|
||||
if client.callContextErr != nil {
|
||||
return client.callContextErr
|
||||
}
|
||||
|
||||
case "parity_versionInfo":
|
||||
if p, ok := result.(*core.ParityNodeInfo); ok {
|
||||
*p = core.ParityNodeInfo{
|
||||
@@ -81,9 +95,23 @@ func (client *MockRpcClient) IpcPath() string {
|
||||
}
|
||||
|
||||
func (client *MockRpcClient) SupportedModules() (map[string]string, error) {
|
||||
result := make(map[string]string)
|
||||
if client.nodeType == core.GETH {
|
||||
result["admin"] = "ok"
|
||||
}
|
||||
return result, nil
|
||||
return client.supportedModules, nil
|
||||
}
|
||||
|
||||
func (client *MockRpcClient) SetSupporedModules(supportedModules map[string]string) {
|
||||
client.supportedModules = supportedModules
|
||||
}
|
||||
|
||||
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))
|
||||
Expect(client.passedMethod).To(Equal(method))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user