21 #include <ripple/beast/unit_test.h>
22 #include <ripple/protocol/AccountID.h>
23 #include <ripple/protocol/jss.h>
24 #include <ripple/protocol/STAmount.h>
33 testcase (
"Bad input to owner_info");
35 using namespace test::jtx;
38 auto const alice = Account {
"alice"};
39 env.fund (XRP(10000), alice);
44 env.rpc (
"json",
"owner_info",
"{}") [jss::result];
45 BEAST_EXPECT (result[jss::error] ==
"invalidParams");
46 BEAST_EXPECT (result[jss::error_message] ==
47 "Missing field 'account'.");
52 params[jss::account] =
"";
53 auto const result = env.rpc (
"json",
"owner_info",
56 result.isMember(jss::accepted) &&
57 result.isMember(jss::current)))
59 BEAST_EXPECT (result[jss::accepted][jss::error] ==
"badSeed");
60 BEAST_EXPECT (result[jss::accepted][jss::error_message] ==
62 BEAST_EXPECT (result[jss::current][jss::error] ==
"badSeed");
63 BEAST_EXPECT (result[jss::current][jss::error_message] ==
72 params[jss::account] = Account{
"bob"}.human();
73 auto const result = env.rpc (
"json",
"owner_info",
77 BEAST_EXPECT (result[jss::status] ==
"success");
84 testcase (
"Basic request for owner_info");
86 using namespace test::jtx;
89 auto const alice = Account {
"alice"};
90 auto const gw = Account {
"gateway"};
91 env.fund (XRP(10000), alice, gw);
92 auto const USD = gw[
"USD"];
93 auto const CNY = gw[
"CNY"];
94 env(trust(alice, USD(1000)));
95 env(trust(alice, CNY(1000)));
96 env(offer(alice, USD(1), XRP(1000)));
99 env(pay(gw, alice, USD(50)));
100 env(pay(gw, alice, CNY(50)));
101 env(offer(alice, CNY(2), XRP(1000)));
104 params[jss::account] = alice.human();
105 auto const result = env.rpc (
"json",
"owner_info",
108 result.isMember(jss::accepted) &&
109 result.isMember(jss::current)))
115 if (! BEAST_EXPECT (result[jss::accepted].isMember(jss::ripple_lines)))
117 auto lines = result[jss::accepted][jss::ripple_lines];
118 if (! BEAST_EXPECT (lines.isArray() && lines.size() == 2))
123 (
STAmount{Issue{to_currency(
"CNY"), noAccount()}, 0}
134 (
STAmount{Issue{to_currency(
"USD"), noAccount()}, 0}
143 if (! BEAST_EXPECT (result[jss::accepted].isMember(jss::offers)))
145 auto offers = result[jss::accepted][jss::offers];
146 if (! BEAST_EXPECT (offers.isArray() && offers.size() == 1))
150 offers[0u][jss::Account] == alice.human());
160 if (! BEAST_EXPECT (result[jss::current].isMember(jss::ripple_lines)))
162 lines = result[jss::current][jss::ripple_lines];
163 if (! BEAST_EXPECT (lines.isArray() && lines.size() == 2))
168 (STAmount{Issue{to_currency(
"CNY"), noAccount()}, -50}
179 (STAmount{Issue{to_currency(
"USD"), noAccount()}, -50}
188 if (! BEAST_EXPECT (result[jss::current].isMember(jss::offers)))
190 offers = result[jss::current][jss::offers];
192 if (! BEAST_EXPECT (
offers.isArray() &&
offers.size() == 2))
196 offers[1u] == result[jss::accepted][jss::offers][0u]);
198 offers[0u][jss::Account] == alice.human());
215 BEAST_DEFINE_TESTSUITE(OwnerInfo,app,
ripple);