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 " "
50 "eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT"
51 "\n",
52 " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2IiwibWFua"
53 "WZl "
54 " \n",
55 "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZD"
56 "eE"
57 "\n",
58 "\t "
59 "hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG"
60 "\t "
61 "\t\n",
62 "bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2"
63 "\n",
64 "hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1"
65 "\n",
66 "NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj"
67 "\n",
68 "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ=="
69 "\n"};
70
71 std::string const master_key = "nHBt9fsb4849WmZiCds4r5TXyBeQjqnH5kzPtqgMAQMgi39YZRPa";
72 std::string const ephemeral_key = "n9KsDYGKhABVc4wK5u3MnVhgPinyJimyKGpr9VJYuBaY8EnJXR2x";
73 std::string const manifest =
74 "JAAAAAFxIe1FtwmimvGtH2iCcMJqC9gVFKilGfw1/"
75 "vCxHXXLplc2GnMhAkE1agqXxBwDwDbID6OMSYuM0FDAlpAgNk8SKFn7MO2fdkcwRQI"
76 "hAOngu9sAKqXYouJ+l2V0W+sAOkVB+ZRS6PShlJAfUsXfAiBsVJGesaadOJc/"
77 "aAZokS1vymGmVrlHPKWX3Yywu6in8HASQKPugBD67kMaRFGvmpATHlGKJdvDFlWPYy"
78 "5AqDedFv5TJa2w0i21eq3MYywLVJZnFOr7C0kw2AiTzSCjIzditQ8=";
79
80 Env env{*this, envconfig([&tokenBlob](std::unique_ptr<Config> cfg) {
81 cfg->section(SECTION_VALIDATOR_TOKEN).append(tokenBlob);
82 return cfg;
83 })};
84 {
85 auto const info = env.rpc("validator_info");
86 BEAST_EXPECT(info[jss::result][jss::status] == "success");
87 BEAST_EXPECT(info[jss::result][jss::seq] == 1);
88 BEAST_EXPECT(info[jss::result][jss::master_key] == master_key);
89 BEAST_EXPECT(info[jss::result][jss::manifest] == manifest);
90 BEAST_EXPECT(info[jss::result][jss::ephemeral_key] == ephemeral_key);
91 }
92 }
93
94 void
95 run() override
96 {
97 testErrors();
99 testLookup();
100 }
101};
102
103BEAST_DEFINE_TESTSUITE(ValidatorInfo, rpc, xrpl);
104} // namespace test
105} // namespace xrpl
A testsuite class.
Definition suite.h:52
testcase_t testcase
Memberspace for declaring test cases.
Definition suite.h:148
void run() override
Runs the suite.
A transaction testing environment.
Definition Env.h:98
void set_retries(unsigned r=5)
Definition Env.h:395
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:749
Set the expected result code for a JTx The test will fail if the code doesn't match.
Definition rpc.h:16
std::unique_ptr< Config > envconfig()
creates and initializes a default configuration for jtx::Env
Definition envconfig.h:35
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:6
@ manifest
Manifest.