// Copyright (c) 2020 Dev Null Productions #include #include #include #include #include namespace xrpl { namespace test { class ManifestRPC_test : public beast::unit_test::suite { public: void testErrors() { testcase("Errors"); using namespace jtx; Env env(*this); { // manifest with no public key auto const info = env.rpc("json", "manifest", "{ }"); BEAST_EXPECT(info[jss::result][jss::error_message] == "Missing field 'public_key'."); } { // manifest with malformed public key auto const info = env.rpc( "json", "manifest", "{ \"public_key\": " "\"abcdef12345\"}"); BEAST_EXPECT(info[jss::result][jss::error_message] == "Invalid parameters."); } } void testLookup() { testcase("Lookup"); using namespace jtx; std::string const key = "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7"; Env env{*this, envconfig([&key](std::unique_ptr cfg) { cfg->section(SECTION_VALIDATORS).append(key); return cfg; })}; { auto const info = env.rpc( "json", "manifest", "{ \"public_key\": " "\"" + key + "\"}"); BEAST_EXPECT(info[jss::result][jss::requested] == key); BEAST_EXPECT(info[jss::result][jss::status] == "success"); } } void run() override { testErrors(); testLookup(); } }; BEAST_DEFINE_TESTSUITE(ManifestRPC, rpc, xrpl); } // namespace test } // namespace xrpl