mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-23 15:10:34 +00:00
79 lines
2.5 KiB
C++
79 lines
2.5 KiB
C++
#include <xrpld/rpc/Status.h>
|
|
#include <xrpld/rpc/detail/RPCHelpers.h>
|
|
|
|
#include <xrpl/beast/unit_test/suite.h>
|
|
#include <xrpl/json/json_value.h>
|
|
#include <xrpl/protocol/ErrorCodes.h>
|
|
#include <xrpl/protocol/LedgerFormats.h>
|
|
#include <xrpl/protocol/jss.h>
|
|
|
|
namespace xrpl::test {
|
|
|
|
class RPCHelpers_test : public beast::unit_test::Suite
|
|
{
|
|
public:
|
|
void
|
|
testChooseLedgerEntryType()
|
|
{
|
|
testcase("ChooseLedgerEntryType");
|
|
|
|
// Test no type.
|
|
json::Value tx = json::ValueType::Object;
|
|
auto result = RPC::chooseLedgerEntryType(tx);
|
|
BEAST_EXPECT(result.first == RPC::Status::kOK);
|
|
BEAST_EXPECT(result.second == 0);
|
|
|
|
// Test empty type.
|
|
tx[jss::type] = "";
|
|
result = RPC::chooseLedgerEntryType(tx);
|
|
BEAST_EXPECT(result.first == RPC::Status{RpcInvalidParams});
|
|
BEAST_EXPECT(result.second == 0);
|
|
|
|
// Test type using canonical name in mixedcase.
|
|
tx[jss::type] = "MPTokenIssuance";
|
|
result = RPC::chooseLedgerEntryType(tx);
|
|
BEAST_EXPECT(result.first == RPC::Status::kOK);
|
|
BEAST_EXPECT(result.second == ltMPTOKEN_ISSUANCE);
|
|
|
|
// Test type using canonical name in lowercase.
|
|
tx[jss::type] = "mptokenissuance";
|
|
result = RPC::chooseLedgerEntryType(tx);
|
|
BEAST_EXPECT(result.first == RPC::Status::kOK);
|
|
BEAST_EXPECT(result.second == ltMPTOKEN_ISSUANCE);
|
|
|
|
// Test type using RPC name with exact match.
|
|
tx[jss::type] = "mpt_issuance";
|
|
result = RPC::chooseLedgerEntryType(tx);
|
|
BEAST_EXPECT(result.first == RPC::Status::kOK);
|
|
BEAST_EXPECT(result.second == ltMPTOKEN_ISSUANCE);
|
|
|
|
// Test type using RPC name with inexact match.
|
|
tx[jss::type] = "MPT_Issuance";
|
|
result = RPC::chooseLedgerEntryType(tx);
|
|
BEAST_EXPECT(result.first == RPC::Status{RpcInvalidParams});
|
|
BEAST_EXPECT(result.second == 0);
|
|
|
|
// Test invalid type.
|
|
tx[jss::type] = 1234;
|
|
result = RPC::chooseLedgerEntryType(tx);
|
|
BEAST_EXPECT(result.first == RPC::Status{RpcInvalidParams});
|
|
BEAST_EXPECT(result.second == 0);
|
|
|
|
// Test unknown type.
|
|
tx[jss::type] = "unknown";
|
|
result = RPC::chooseLedgerEntryType(tx);
|
|
BEAST_EXPECT(result.first == RPC::Status{RpcInvalidParams});
|
|
BEAST_EXPECT(result.second == 0);
|
|
}
|
|
|
|
void
|
|
run() override
|
|
{
|
|
testChooseLedgerEntryType();
|
|
}
|
|
};
|
|
|
|
BEAST_DEFINE_TESTSUITE(RPCHelpers, rpc, xrpl);
|
|
|
|
} // namespace xrpl::test
|