rippled
Loading...
Searching...
No Matches
ValidatorInfo_test.cpp
1// Copyright (c) 2020 Dev Null Productions
2
3#include <test/jtx.h>
4
5#include <xrpld/core/ConfigSections.h>
6
7#include <xrpl/beast/unit_test.h>
8#include <xrpl/protocol/jss.h>
9
10#include <string>
11#include <vector>
12
13namespace xrpl {
14namespace test {
15
17{
18public:
19 void
21 {
22 testcase("Errors");
23
24 using namespace jtx;
25 {
26 Env env(*this);
27 auto const info = env.rpc("validator_info");
28 BEAST_EXPECT(info[jss::result][jss::error_message] == "not a validator");
29 }
30 }
31
32 void
34 {
35 using namespace test::jtx;
36 Env env{*this, envconfig(no_admin)};
37 env.set_retries(0);
38 auto const info = env.rpc("validator_info")[jss::result];
39 BEAST_EXPECT(info.isNull());
40 }
41
42 void
44 {
45 testcase("Lookup");
46
47 using namespace jtx;
48 std::vector<std::string> const tokenBlob = {
49 " eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT\n",
50 " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2IiwibWFuaWZl \n",
51 "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE\n",
52 "\t hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG\t \t\n",
53 "bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2\n",
54 "hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1\n",
55 "NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj\n",
56 "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ==\n",
57 };
58
59 std::string const master_key = "nHBt9fsb4849WmZiCds4r5TXyBeQjqnH5kzPtqgMAQMgi39YZRPa";
60 std::string const ephemeral_key = "n9KsDYGKhABVc4wK5u3MnVhgPinyJimyKGpr9VJYuBaY8EnJXR2x";
61 std::string const manifest =
62 "JAAAAAFxIe1FtwmimvGtH2iCcMJqC9gVFKilGfw1/"
63 "vCxHXXLplc2GnMhAkE1agqXxBwDwDbID6OMSYuM0FDAlpAgNk8SKFn7MO2fdkcwRQI"
64 "hAOngu9sAKqXYouJ+l2V0W+sAOkVB+ZRS6PShlJAfUsXfAiBsVJGesaadOJc/"
65 "aAZokS1vymGmVrlHPKWX3Yywu6in8HASQKPugBD67kMaRFGvmpATHlGKJdvDFlWPYy"
66 "5AqDedFv5TJa2w0i21eq3MYywLVJZnFOr7C0kw2AiTzSCjIzditQ8=";
67
68 Env env{*this, envconfig([&tokenBlob](std::unique_ptr<Config> cfg) {
69 cfg->section(SECTION_VALIDATOR_TOKEN).append(tokenBlob);
70 return cfg;
71 })};
72 {
73 auto const info = env.rpc("validator_info");
74 BEAST_EXPECT(info[jss::result][jss::status] == "success");
75 BEAST_EXPECT(info[jss::result][jss::seq] == 1);
76 BEAST_EXPECT(info[jss::result][jss::master_key] == master_key);
77 BEAST_EXPECT(info[jss::result][jss::manifest] == manifest);
78 BEAST_EXPECT(info[jss::result][jss::ephemeral_key] == ephemeral_key);
79 }
80 }
81
82 void
83 run() override
84 {
85 testErrors();
87 testLookup();
88 }
89};
90
91BEAST_DEFINE_TESTSUITE(ValidatorInfo, rpc, xrpl);
92} // namespace test
93} // namespace xrpl
A testsuite class.
Definition suite.h:51
testcase_t testcase
Memberspace for declaring test cases.
Definition suite.h:150
void run() override
Runs the suite.
A transaction testing environment.
Definition Env.h:122
void set_retries(unsigned r=5)
Definition Env.h:470
Json::Value rpc(unsigned apiVersion, std::unordered_map< std::string, std::string > const &headers, std::string const &cmd, Args &&... args)
Execute an RPC command.
Definition Env.h:847
Set the expected result code for a JTx The test will fail if the code doesn't match.
Definition rpc.h:15
std::unique_ptr< Config > envconfig()
creates and initializes a default configuration for jtx::Env
Definition envconfig.h:34
std::unique_ptr< Config > no_admin(std::unique_ptr< Config >)
adjust config so no admin ports are enabled
Definition envconfig.cpp:57
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
@ manifest
Manifest.