package mocks import ( types "github.com/tendermint/tendermint/abci/types" ) // BaseMock provides a wrapper around the generated Application mock and a BaseApplication. // BaseMock first tries to use the mock's implementation of the method. // If no functionality was provided for the mock by the user, BaseMock dispatches // to the BaseApplication and uses its functionality. // BaseMock allows users to provide mocked functionality for only the methods that matter // for their test while avoiding a panic if the code calls Application methods that are // not relevant to the test. type BaseMock struct { base *types.BaseApplication *Application } func NewBaseMock() BaseMock { return BaseMock{ base: types.NewBaseApplication(), Application: new(Application), } } // Info/Query Connection // Return application info func (m BaseMock) Info(input types.RequestInfo) (ret types.ResponseInfo) { defer func() { if r := recover(); r != nil { ret = m.base.Info(input) } }() ret = m.Application.Info(input) return ret } func (m BaseMock) Query(input types.RequestQuery) (ret types.ResponseQuery) { defer func() { if r := recover(); r != nil { ret = m.base.Query(input) } }() ret = m.Application.Query(input) return ret } // Mempool Connection // Validate a tx for the mempool func (m BaseMock) CheckTx(input types.RequestCheckTx) (ret types.ResponseCheckTx) { defer func() { if r := recover(); r != nil { ret = m.base.CheckTx(input) } }() ret = m.Application.CheckTx(input) return ret } // Consensus Connection // Initialize blockchain w validators/other info from TendermintCore func (m BaseMock) InitChain(input types.RequestInitChain) (ret types.ResponseInitChain) { defer func() { if r := recover(); r != nil { ret = m.base.InitChain(input) } }() ret = m.Application.InitChain(input) return ret } func (m BaseMock) PrepareProposal(input types.RequestPrepareProposal) (ret types.ResponsePrepareProposal) { defer func() { if r := recover(); r != nil { ret = m.base.PrepareProposal(input) } }() ret = m.Application.PrepareProposal(input) return ret } func (m BaseMock) ProcessProposal(input types.RequestProcessProposal) (ret types.ResponseProcessProposal) { defer func() { if r := recover(); r != nil { ret = m.base.ProcessProposal(input) } }() ret = m.Application.ProcessProposal(input) return ret } // Commit the state and return the application Merkle root hash func (m BaseMock) Commit() (ret types.ResponseCommit) { defer func() { if r := recover(); r != nil { ret = m.base.Commit() } }() ret = m.Application.Commit() return ret } // Create application specific vote extension func (m BaseMock) ExtendVote(input types.RequestExtendVote) (ret types.ResponseExtendVote) { defer func() { if r := recover(); r != nil { ret = m.base.ExtendVote(input) } }() ret = m.Application.ExtendVote(input) return ret } // Verify application's vote extension data func (m BaseMock) VerifyVoteExtension(input types.RequestVerifyVoteExtension) (ret types.ResponseVerifyVoteExtension) { defer func() { if r := recover(); r != nil { ret = m.base.VerifyVoteExtension(input) } }() ret = m.Application.VerifyVoteExtension(input) return ret } // State Sync Connection // List available snapshots func (m BaseMock) ListSnapshots(input types.RequestListSnapshots) (ret types.ResponseListSnapshots) { defer func() { if r := recover(); r != nil { ret = m.base.ListSnapshots(input) } }() ret = m.Application.ListSnapshots(input) return ret } func (m BaseMock) OfferSnapshot(input types.RequestOfferSnapshot) (ret types.ResponseOfferSnapshot) { defer func() { if r := recover(); r != nil { ret = m.base.OfferSnapshot(input) } }() ret = m.Application.OfferSnapshot(input) return ret } func (m BaseMock) LoadSnapshotChunk(input types.RequestLoadSnapshotChunk) (ret types.ResponseLoadSnapshotChunk) { defer func() { if r := recover(); r != nil { ret = m.base.LoadSnapshotChunk(input) } }() ret = m.Application.LoadSnapshotChunk(input) return ret } func (m BaseMock) ApplySnapshotChunk(input types.RequestApplySnapshotChunk) (ret types.ResponseApplySnapshotChunk) { defer func() { if r := recover(); r != nil { ret = m.base.ApplySnapshotChunk(input) } }() ret = m.Application.ApplySnapshotChunk(input) return ret } func (m BaseMock) FinalizeBlock(input types.RequestFinalizeBlock) (ret types.ResponseFinalizeBlock) { defer func() { if r := recover(); r != nil { ret = m.base.FinalizeBlock(input) } }() ret = m.Application.FinalizeBlock(input) return ret }