xrpld
Loading...
Searching...
No Matches
flags.cpp
1#include <test/jtx/flags.h>
2
3#include <test/jtx/Account.h>
4#include <test/jtx/Env.h>
5
6#include <xrpl/json/json_value.h>
7#include <xrpl/protocol/SField.h>
8#include <xrpl/protocol/jss.h>
9
10#include <cstdint>
11
12namespace xrpl::test::jtx {
13
14json::Value
15fset(Account const& account, std::uint32_t on, std::uint32_t off)
16{
17 json::Value jv;
18 jv[jss::Account] = account.human();
19 jv[jss::TransactionType] = jss::AccountSet;
20 if (on != 0)
21 jv[jss::SetFlag] = on;
22 if (off != 0)
23 jv[jss::ClearFlag] = off;
24 return jv;
25}
26
27void
29{
30 auto const sle = env.le(account_);
31 if (!sle)
32 {
33 env.test.fail();
34 }
35 else if (sle->isFieldPresent(sfFlags))
36 {
37 env.test.expect(sle->isFlag(mask_));
38 }
39 else
40 {
41 env.test.expect(mask_ == 0);
42 }
43}
44
45void
47{
48 auto const sle = env.le(account_);
49 if (!sle)
50 {
51 env.test.fail();
52 }
53 else if (sle->isFieldPresent(sfFlags))
54 {
55 env.test.expect((sle->getFieldU32(sfFlags) & mask_) == 0);
56 }
57 else
58 {
59 env.test.pass();
60 }
61}
62
63} // namespace xrpl::test::jtx
void pass()
Record a successful test condition.
Definition suite.h:500
bool expect(Condition const &shouldBeTrue)
Evaluate a test condition.
Definition suite.h:223
void fail(String const &reason, char const *file, int line)
Record a failure.
Definition suite.h:522
Represents a JSON value.
Definition json_value.h:130
std::uint32_t mask_
Definition flags.h:17
Immutable cryptographic account descriptor.
Definition jtx/Account.h:17
A transaction testing environment.
Definition Env.h:143
SLE::const_pointer le(Account const &account) const
Return an account root.
Definition Env.cpp:284
beast::unit_test::Suite & test
Definition Env.h:145
void operator()(Env &env) const
Definition flags.cpp:28
void operator()(Env &env) const
Definition flags.cpp:46
json::Value fset(Account const &account, std::uint32_t on, std::uint32_t off=0)
Add and/or remove flag.
Definition flags.cpp:15