4#include <gtest/gtest.h>
6#include <protocol_autogen/TestHelpers.h>
8#include <xrpl/protocol/STLedgerEntry.h>
9#include <xrpl/protocol_autogen/ledger_entries/TransactionProposal.h>
10#include <xrpl/protocol_autogen/ledger_entries/Ticket.h>
19TEST(TransactionProposalTests, BuilderSettersRoundTrip)
32 previousTxnLgrSeqValue,
34 proposedTransactionValue,
45 auto const entry = builder.
build(index);
47 EXPECT_TRUE(entry.validate());
50 auto const& expected = previousTxnIDValue;
51 auto const actual = entry.getPreviousTxnID();
56 auto const& expected = previousTxnLgrSeqValue;
57 auto const actual = entry.getPreviousTxnLgrSeq();
62 auto const& expected = ownerValue;
63 auto const actual = entry.getOwner();
68 auto const& expected = proposedTransactionValue;
69 auto const actual = entry.getProposedTransaction();
74 auto const& expected = expirationValue;
75 auto const actual = entry.getExpiration();
80 auto const& expected = ownerNodeValue;
81 auto const actual = entry.getOwnerNode();
85 EXPECT_TRUE(entry.hasLedgerIndex());
86 auto const ledgerIndex = entry.getLedgerIndex();
87 ASSERT_TRUE(ledgerIndex.has_value());
88 EXPECT_EQ(*ledgerIndex, index);
89 EXPECT_EQ(entry.getKey(), index);
94TEST(TransactionProposalTests, BuilderFromSleRoundTrip)
107 sle->at(sfPreviousTxnID) = previousTxnIDValue;
108 sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
109 sle->at(sfOwner) = ownerValue;
110 sle->setFieldObject(sfProposedTransaction, proposedTransactionValue);
111 sle->at(sfExpiration) = expirationValue;
112 sle->at(sfOwnerNode) = ownerNodeValue;
115 EXPECT_TRUE(builderFromSle.
validate());
117 auto const entryFromBuilder = builderFromSle.
build(index);
120 EXPECT_TRUE(entryFromBuilder.validate());
121 EXPECT_TRUE(entryFromSle.
validate());
124 auto const& expected = previousTxnIDValue;
127 auto const fromBuilder = entryFromBuilder.getPreviousTxnID();
134 auto const& expected = previousTxnLgrSeqValue;
137 auto const fromBuilder = entryFromBuilder.getPreviousTxnLgrSeq();
144 auto const& expected = ownerValue;
146 auto const fromSle = entryFromSle.
getOwner();
147 auto const fromBuilder = entryFromBuilder.getOwner();
154 auto const& expected = proposedTransactionValue;
157 auto const fromBuilder = entryFromBuilder.getProposedTransaction();
164 auto const& expected = expirationValue;
167 auto const fromBuilder = entryFromBuilder.getExpiration();
174 auto const& expected = ownerNodeValue;
177 auto const fromBuilder = entryFromBuilder.getOwnerNode();
183 EXPECT_EQ(entryFromSle.
getKey(), index);
184 EXPECT_EQ(entryFromBuilder.getKey(), index);
188TEST(TransactionProposalTests, WrapperThrowsOnWrongEntryType)
201 auto wrongEntry = wrongBuilder.
build(index);
207TEST(TransactionProposalTests, BuilderThrowsOnWrongEntryType)
218 auto wrongEntry = wrongBuilder.
build(index);
UInt256 const & getKey() const
Get the key (index) of this ledger entry.
bool validate() const
Validate the 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 Ticket ledger entries.
Ticket build(UInt256 const &index)
Build and return the completed Ticket wrapper.
Builder for TransactionProposal ledger entries.
TransactionProposal build(UInt256 const &index)
Build and return the completed TransactionProposal wrapper.
Ledger Entry: TransactionProposal.
STObject getProposedTransaction() const
Get sfProposedTransaction (SoeRequired).
SF_ACCOUNT::type::value_type getOwner() const
Get sfOwner (SoeRequired).
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
SF_UINT32::type::value_type getExpiration() const
Get sfExpiration (SoeRequired).
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
static constexpr LedgerEntryType entryType
TEST(AccountRootTests, BuilderSettersRoundTrip)
UInt32Value canonical_UINT32()
AccountValue canonical_ACCOUNT()
STObject canonical_OBJECT()
UInt256Value canonical_UINT256()
UInt64Value canonical_UINT64()
void expectEqualField(T const &expected, T const &actual, char const *fieldName)