4#include <gtest/gtest.h>
6#include <protocol_autogen/TestHelpers.h>
8#include <xrpl/protocol/STLedgerEntry.h>
9#include <xrpl/protocol_autogen/ledger_entries/SignerList.h>
10#include <xrpl/protocol_autogen/ledger_entries/Ticket.h>
19TEST(SignerListTests, BuilderSettersRoundTrip)
37 previousTxnLgrSeqValue
47 auto const entry = builder.
build(index);
49 EXPECT_TRUE(entry.validate());
52 auto const& expected = ownerNodeValue;
53 auto const actual = entry.getOwnerNode();
58 auto const& expected = signerQuorumValue;
59 auto const actual = entry.getSignerQuorum();
64 auto const& expected = signerEntriesValue;
65 auto const actual = entry.getSignerEntries();
70 auto const& expected = signerListIDValue;
71 auto const actual = entry.getSignerListID();
76 auto const& expected = previousTxnIDValue;
77 auto const actual = entry.getPreviousTxnID();
82 auto const& expected = previousTxnLgrSeqValue;
83 auto const actual = entry.getPreviousTxnLgrSeq();
88 auto const& expected = ownerValue;
89 auto const actualOpt = entry.getOwner();
90 ASSERT_TRUE(actualOpt.has_value());
92 EXPECT_TRUE(entry.hasOwner());
95 EXPECT_TRUE(entry.hasLedgerIndex());
96 auto const ledgerIndex = entry.getLedgerIndex();
97 ASSERT_TRUE(ledgerIndex.has_value());
98 EXPECT_EQ(*ledgerIndex, index);
99 EXPECT_EQ(entry.getKey(), index);
104TEST(SignerListTests, BuilderFromSleRoundTrip)
118 sle->at(sfOwner) = ownerValue;
119 sle->at(sfOwnerNode) = ownerNodeValue;
120 sle->at(sfSignerQuorum) = signerQuorumValue;
121 sle->setFieldArray(sfSignerEntries, signerEntriesValue);
122 sle->at(sfSignerListID) = signerListIDValue;
123 sle->at(sfPreviousTxnID) = previousTxnIDValue;
124 sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
127 EXPECT_TRUE(builderFromSle.
validate());
129 auto const entryFromBuilder = builderFromSle.
build(index);
132 EXPECT_TRUE(entryFromBuilder.validate());
133 EXPECT_TRUE(entryFromSle.
validate());
136 auto const& expected = ownerNodeValue;
139 auto const fromBuilder = entryFromBuilder.getOwnerNode();
146 auto const& expected = signerQuorumValue;
149 auto const fromBuilder = entryFromBuilder.getSignerQuorum();
156 auto const& expected = signerEntriesValue;
159 auto const fromBuilder = entryFromBuilder.getSignerEntries();
166 auto const& expected = signerListIDValue;
169 auto const fromBuilder = entryFromBuilder.getSignerListID();
176 auto const& expected = previousTxnIDValue;
179 auto const fromBuilder = entryFromBuilder.getPreviousTxnID();
186 auto const& expected = previousTxnLgrSeqValue;
189 auto const fromBuilder = entryFromBuilder.getPreviousTxnLgrSeq();
196 auto const& expected = ownerValue;
198 auto const fromSleOpt = entryFromSle.
getOwner();
199 auto const fromBuilderOpt = entryFromBuilder.getOwner();
201 ASSERT_TRUE(fromSleOpt.has_value());
202 ASSERT_TRUE(fromBuilderOpt.has_value());
208 EXPECT_EQ(entryFromSle.
getKey(), index);
209 EXPECT_EQ(entryFromBuilder.getKey(), index);
213TEST(SignerListTests, WrapperThrowsOnWrongEntryType)
226 auto wrongEntry = wrongBuilder.
build(index);
232TEST(SignerListTests, BuilderThrowsOnWrongEntryType)
243 auto wrongEntry = wrongBuilder.
build(index);
249TEST(SignerListTests, OptionalFieldsReturnNullopt)
266 previousTxnLgrSeqValue
269 auto const entry = builder.
build(index);
272 EXPECT_FALSE(entry.hasOwner());
273 EXPECT_FALSE(entry.getOwner().has_value());
bool validate() const
Validate the ledger entry.
uint256 const & getKey() const
Get the key (index) of this ledger entry.
Derived & setLedgerIndex(uint256 const &value)
Set the ledger index.
Derived & setFlags(uint32_t value)
Set the flags.
bool validate() const
Validate the ledger entry.
Builder for SignerList ledger entries.
SignerListBuilder & setOwner(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Ledger entry-specific field setters.
SignerList build(uint256 const &index)
Build and return the completed SignerList wrapper.
Ledger Entry: SignerList.
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
protocol_autogen::Optional< SF_ACCOUNT::type::value_type > getOwner() const
Get sfOwner (SoeOptional).
SF_UINT32::type::value_type getSignerListID() const
Get sfSignerListID (SoeRequired).
STArray const & getSignerEntries() const
Get sfSignerEntries (SoeRequired).
SF_UINT32::type::value_type getSignerQuorum() const
Get sfSignerQuorum (SoeRequired).
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
static constexpr LedgerEntryType entryType
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
Builder for Ticket ledger entries.
Ticket build(uint256 const &index)
Build and return the completed Ticket wrapper.
TEST(AccountRootTests, BuilderSettersRoundTrip)
UInt32Value canonical_UINT32()
AccountValue canonical_ACCOUNT()
UInt256Value canonical_UINT256()
STArray canonical_ARRAY()
UInt64Value canonical_UINT64()
void expectEqualField(T const &expected, T const &actual, char const *fieldName)