mock

package
v0.10.0-rc2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2017 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

package mock returns a Client implementation that accepts various (mock) implementations of the various methods.

This implementation is useful for using in tests, when you don't need a real server, but want a high-level of control about the server response you want to mock (eg. error handling), or if you just want to record the calls to verify in your tests.

For real clients, you probably want the "http" package. If you want to directly call a tendermint node in process, you can use the "local" package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ABCIApp

type ABCIApp struct {
	App abci.Application
}

ABCIApp will send all abci related request to the named app, so you can test app behavior from a client without needing an entire tendermint node

func (ABCIApp) ABCIInfo

func (a ABCIApp) ABCIInfo() (*ctypes.ResultABCIInfo, error)

func (ABCIApp) ABCIQuery

func (a ABCIApp) ABCIQuery(path string, data data.Bytes, prove bool) (*ctypes.ResultABCIQuery, error)

func (ABCIApp) BroadcastTxAsync

func (a ABCIApp) BroadcastTxAsync(tx types.Tx) (*ctypes.ResultBroadcastTx, error)

func (ABCIApp) BroadcastTxCommit

func (a ABCIApp) BroadcastTxCommit(tx types.Tx) (*ctypes.ResultBroadcastTxCommit, error)

func (ABCIApp) BroadcastTxSync

func (a ABCIApp) BroadcastTxSync(tx types.Tx) (*ctypes.ResultBroadcastTx, error)

type ABCIMock

type ABCIMock struct {
	Info            Call
	Query           Call
	BroadcastCommit Call
	Broadcast       Call
}

ABCIMock will send all abci related request to the named app, so you can test app behavior from a client without needing an entire tendermint node

func (ABCIMock) ABCIInfo

func (m ABCIMock) ABCIInfo() (*ctypes.ResultABCIInfo, error)

func (ABCIMock) ABCIQuery

func (m ABCIMock) ABCIQuery(path string, data data.Bytes, prove bool) (*ctypes.ResultABCIQuery, error)

func (ABCIMock) BroadcastTxAsync

func (m ABCIMock) BroadcastTxAsync(tx types.Tx) (*ctypes.ResultBroadcastTx, error)

func (ABCIMock) BroadcastTxCommit

func (m ABCIMock) BroadcastTxCommit(tx types.Tx) (*ctypes.ResultBroadcastTxCommit, error)

func (ABCIMock) BroadcastTxSync

func (m ABCIMock) BroadcastTxSync(tx types.Tx) (*ctypes.ResultBroadcastTx, error)

type ABCIRecorder

type ABCIRecorder struct {
	Client client.ABCIClient
	Calls  []Call
}

ABCIRecorder can wrap another type (ABCIApp, ABCIMock, or Client) and record all ABCI related calls.

func NewABCIRecorder

func NewABCIRecorder(client client.ABCIClient) *ABCIRecorder

func (*ABCIRecorder) ABCIInfo

func (r *ABCIRecorder) ABCIInfo() (*ctypes.ResultABCIInfo, error)

func (*ABCIRecorder) ABCIQuery

func (r *ABCIRecorder) ABCIQuery(path string, data data.Bytes, prove bool) (*ctypes.ResultABCIQuery, error)

func (*ABCIRecorder) BroadcastTxAsync

func (r *ABCIRecorder) BroadcastTxAsync(tx types.Tx) (*ctypes.ResultBroadcastTx, error)

func (*ABCIRecorder) BroadcastTxCommit

func (r *ABCIRecorder) BroadcastTxCommit(tx types.Tx) (*ctypes.ResultBroadcastTxCommit, error)

func (*ABCIRecorder) BroadcastTxSync

func (r *ABCIRecorder) BroadcastTxSync(tx types.Tx) (*ctypes.ResultBroadcastTx, error)

type Call

type Call struct {
	Name     string
	Args     interface{}
	Response interface{}
	Error    error
}

Call is used by recorders to save a call and response. It can also be used to configure mock responses.

func (Call) GetResponse

func (c Call) GetResponse(args interface{}) (interface{}, error)

GetResponse will generate the apporiate response for us, when using the Call struct to configure a Mock handler.

When configuring a response, if only one of Response or Error is set then that will always be returned. If both are set, then we return Response if the Args match the set args, Error otherwise.

type Client

type Client struct {
	client.ABCIClient
	client.SignClient
	client.HistoryClient
	client.StatusClient
	// create a mock with types.NewEventSwitch()
	types.EventSwitch
}

Client wraps arbitrary implementations of the various interfaces.

We provide a few choices to mock out each one in this package. Nothing hidden here, so no New function, just construct it from some parts, and swap them out them during the tests.

func (Client) ABCIInfo

func (c Client) ABCIInfo() (*ctypes.ResultABCIInfo, error)

func (Client) ABCIQuery

func (c Client) ABCIQuery(path string, data data.Bytes, prove bool) (*ctypes.ResultABCIQuery, error)

func (Client) Block

func (c Client) Block(height int) (*ctypes.ResultBlock, error)

func (Client) BlockchainInfo

func (c Client) BlockchainInfo(minHeight, maxHeight int) (*ctypes.ResultBlockchainInfo, error)

func (Client) BroadcastTxAsync

func (c Client) BroadcastTxAsync(tx types.Tx) (*ctypes.ResultBroadcastTx, error)

func (Client) BroadcastTxCommit

func (c Client) BroadcastTxCommit(tx types.Tx) (*ctypes.ResultBroadcastTxCommit, error)

func (Client) BroadcastTxSync

func (c Client) BroadcastTxSync(tx types.Tx) (*ctypes.ResultBroadcastTx, error)

func (Client) Commit

func (c Client) Commit(height int) (*ctypes.ResultCommit, error)

func (Client) DialSeeds

func (c Client) DialSeeds(seeds []string) (*ctypes.ResultDialSeeds, error)

func (Client) Genesis

func (c Client) Genesis() (*ctypes.ResultGenesis, error)

func (Client) NetInfo

func (c Client) NetInfo() (*ctypes.ResultNetInfo, error)

func (Client) Status

func (c Client) Status() (*ctypes.ResultStatus, error)

func (Client) Validators

func (c Client) Validators() (*ctypes.ResultValidators, error)

type QueryArgs

type QueryArgs struct {
	Path  string
	Data  data.Bytes
	Prove bool
}

type StatusMock

type StatusMock struct {
	Call
}

StatusMock returns the result specified by the Call

func (*StatusMock) Status

func (m *StatusMock) Status() (*ctypes.ResultStatus, error)

type StatusRecorder

type StatusRecorder struct {
	Client client.StatusClient
	Calls  []Call
}

StatusRecorder can wrap another type (StatusMock, full client) and record the status calls

func NewStatusRecorder

func NewStatusRecorder(client client.StatusClient) *StatusRecorder

func (*StatusRecorder) Status

func (r *StatusRecorder) Status() (*ctypes.ResultStatus, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL