#pragma once #include "data/BackendInterface.hpp" #include "data/DBHelpers.hpp" #include "data/LedgerCache.hpp" #include "data/Types.hpp" #include "util/config/ConfigDefinition.hpp" #include #include #include #include #include #include #include #include #include #include #include #include struct MockBackend : public BackendInterface { MockBackend(util::config::ClioConfigDefinition) : BackendInterface(cache_) { } MOCK_METHOD( std::optional, fetchLedgerBySequence, (std::uint32_t const, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::optional, fetchLedgerByHash, (ripple::uint256 const&, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::optional, fetchLatestLedgerSequence, (boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::optional, fetchTransaction, (ripple::uint256 const&, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::vector, fetchTransactions, (std::vector const&, boost::asio::yield_context), (const, override) ); MOCK_METHOD( data::TransactionsAndCursor, fetchAccountTransactions, (ripple::AccountID const&, std::uint32_t const, bool, std::optional const&, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::vector, fetchAllTransactionsInLedger, (std::uint32_t const, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::vector, fetchAllTransactionHashesInLedger, (std::uint32_t const, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::optional, fetchNFT, (ripple::uint256 const&, std::uint32_t const, boost::asio::yield_context), (const, override) ); MOCK_METHOD( data::TransactionsAndCursor, fetchNFTTransactions, (ripple::uint256 const&, std::uint32_t const, bool const, std::optional const&, boost::asio::yield_context), (const, override) ); MOCK_METHOD( data::NFTsAndCursor, fetchNFTsByIssuer, (ripple::AccountID const& issuer, std::optional const& taxon, std::uint32_t const ledgerSequence, std::uint32_t const limit, std::optional const& cursorIn, boost::asio::yield_context yield), (const, override) ); MOCK_METHOD( std::vector, doFetchLedgerObjects, (std::vector const&, std::uint32_t const, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::vector, fetchAccountRoots, (std::uint32_t, std::uint32_t, std::uint32_t, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::optional, doFetchLedgerObject, (ripple::uint256 const&, std::uint32_t const, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::optional, doFetchLedgerObjectSeq, (ripple::uint256 const&, std::uint32_t const, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::vector, fetchLedgerDiff, (std::uint32_t const, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::optional, doFetchSuccessorKey, (ripple::uint256, std::uint32_t const, boost::asio::yield_context), (const, override) ); MOCK_METHOD( std::optional, fetchMigratorStatus, (std::string const&, boost::asio::yield_context), (const, override) ); using FetchClioNodeReturnType = std::expected>, std::string>; MOCK_METHOD( FetchClioNodeReturnType, fetchClioNodesData, (boost::asio::yield_context yield), (const, override) ); MOCK_METHOD( std::optional, hardFetchLedgerRange, (boost::asio::yield_context), (const, override) ); MOCK_METHOD(void, writeLedger, (ripple::LedgerHeader const&, std::string&&), (override)); MOCK_METHOD( void, writeLedgerObject, (std::string&&, std::uint32_t const, std::string&&), (override) ); MOCK_METHOD( void, writeTransaction, (std::string&&, std::uint32_t const, std::uint32_t const, std::string&&, std::string&&), (override) ); MOCK_METHOD(void, writeNFTs, (std::vector const&), (override)); MOCK_METHOD(void, writeAccountTransactions, (std::vector), (override)); MOCK_METHOD(void, writeAccountTransaction, (AccountTransactionsData), (override)); MOCK_METHOD(void, writeNFTTransactions, (std::vector const&), (override)); MOCK_METHOD( void, writeSuccessor, (std::string && key, std::uint32_t const, std::string&&), (override) ); MOCK_METHOD( void, writeNodeMessage, (boost::uuids::uuid const& uuid, std::string message), (override) ); MOCK_METHOD(void, startWrites, (), (const, override)); MOCK_METHOD(bool, isTooBusy, (), (const, override)); MOCK_METHOD(boost::json::object, stats, (), (const, override)); MOCK_METHOD( void, doWriteLedgerObject, (std::string&&, std::uint32_t const, std::string&&), (override) ); MOCK_METHOD(void, waitForWritesToFinish, (), (override)); MOCK_METHOD(bool, doFinishWrites, (), (override)); MOCK_METHOD(void, writeMPTHolders, (std::vector const&), (override)); MOCK_METHOD( data::MPTHoldersAndCursor, fetchMPTHolders, (ripple::uint192 const& mptID, std::uint32_t const, (std::optional const&), std::uint32_t const, boost::asio::yield_context), (const, override) ); MOCK_METHOD(void, writeMigratorStatus, (std::string const&, std::string const&), (override)); protected: data::LedgerCache cache_; // TODO: this should probably be injected and MockLedgerCache instead };