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 ripple {
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(
29 info[jss::result][jss::error_message] == "not a validator");
30 }
31 }
32
33 void
35 {
36 using namespace test::jtx;
37 Env env{*this, envconfig(no_admin)};
38 env.set_retries(0);
39 auto const info = env.rpc("validator_info")[jss::result];
40 BEAST_EXPECT(info.isNull());
41 }
42
43 void
45 {
46 testcase("Lookup");
47
48 using namespace jtx;
49 std::vector<std::string> const tokenBlob = {
50 " "
51 "eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT"
52 "\n",
53 " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2IiwibWFua"
54 "WZl "
55 " \n",
56 "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZD"
57 "eE"
58 "\n",
59 "\t "
60 "hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG"
61 "\t "
62 "\t\n",
63 "bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2"
64 "\n",
65 "hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1"
66 "\n",
67 "NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj"
68 "\n",
69 "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ=="
70 "\n"};
71
72 std::string const master_key =
73 "nHBt9fsb4849WmZiCds4r5TXyBeQjqnH5kzPtqgMAQMgi39YZRPa";
74 std::string const ephemeral_key =
75 "n9KsDYGKhABVc4wK5u3MnVhgPinyJimyKGpr9VJYuBaY8EnJXR2x";
76 std::string const manifest =
77 "JAAAAAFxIe1FtwmimvGtH2iCcMJqC9gVFKilGfw1/"
78 "vCxHXXLplc2GnMhAkE1agqXxBwDwDbID6OMSYuM0FDAlpAgNk8SKFn7MO2fdkcwRQI"
79 "hAOngu9sAKqXYouJ+l2V0W+sAOkVB+ZRS6PShlJAfUsXfAiBsVJGesaadOJc/"
80 "aAZokS1vymGmVrlHPKWX3Yywu6in8HASQKPugBD67kMaRFGvmpATHlGKJdvDFlWPYy"
81 "5AqDedFv5TJa2w0i21eq3MYywLVJZnFOr7C0kw2AiTzSCjIzditQ8=";
82
83 Env env{*this, envconfig([&tokenBlob](std::unique_ptr<Config> cfg) {
84 cfg->section(SECTION_VALIDATOR_TOKEN).append(tokenBlob);
85 return cfg;
86 })};
87 {
88 auto const info = env.rpc("validator_info");
89 BEAST_EXPECT(info[jss::result][jss::status] == "success");
90 BEAST_EXPECT(info[jss::result][jss::seq] == 1);
91 BEAST_EXPECT(info[jss::result][jss::master_key] == master_key);
92 BEAST_EXPECT(info[jss::result][jss::manifest] == manifest);
93 BEAST_EXPECT(
94 info[jss::result][jss::ephemeral_key] == ephemeral_key);
95 }
96 }
97
98 void
99 run() override
100 {
101 testErrors();
103 testLookup();
104 }
105};
106
107BEAST_DEFINE_TESTSUITE(ValidatorInfo, rpc, ripple);
108} // namespace test
109} // namespace ripple
A testsuite class.
Definition suite.h:52
testcase_t testcase
Memberspace for declaring test cases.
Definition suite.h:152
void run() override
Runs the suite.
A transaction testing environment.
Definition Env.h:102
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:772
void set_retries(unsigned r=5)
Definition Env.h:411
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 > no_admin(std::unique_ptr< Config >)
adjust config so no admin ports are enabled
Definition envconfig.cpp:57
std::unique_ptr< Config > envconfig()
creates and initializes a default configuration for jtx::Env
Definition envconfig.h:35
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@ manifest
Manifest.