4#include <gtest/gtest.h>
6#include <protocol_autogen/TestHelpers.h>
8#include <xrpl/protocol/SecretKey.h>
9#include <xrpl/protocol/Seed.h>
10#include <xrpl/protocol/STTx.h>
11#include <xrpl/protocol_autogen/transactions/EscrowFinish.h>
12#include <xrpl/protocol_autogen/transactions/AccountSet.h>
20TEST(TransactionsEscrowFinishTests, BuilderSettersRoundTrip)
23 auto const [publicKey, secretKey] =
51 auto tx = builder.
build(publicKey, secretKey);
54 EXPECT_TRUE(tx.validate(reason)) << reason;
57 EXPECT_FALSE(tx.getSigningPubKey().empty());
58 EXPECT_TRUE(tx.hasTxnSignature());
61 EXPECT_EQ(tx.getAccount(), accountValue);
62 EXPECT_EQ(tx.getSequence(), sequenceValue);
63 EXPECT_EQ(tx.getFee(), feeValue);
67 auto const& expected = ownerValue;
68 auto const actual = tx.getOwner();
73 auto const& expected = offerSequenceValue;
74 auto const actual = tx.getOfferSequence();
80 auto const& expected = fulfillmentValue;
81 auto const actualOpt = tx.getFulfillment();
82 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfFulfillment should be present";
84 EXPECT_TRUE(tx.hasFulfillment());
88 auto const& expected = conditionValue;
89 auto const actualOpt = tx.getCondition();
90 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfCondition should be present";
92 EXPECT_TRUE(tx.hasCondition());
96 auto const& expected = credentialIDsValue;
97 auto const actualOpt = tx.getCredentialIDs();
98 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfCredentialIDs should be present";
100 EXPECT_TRUE(tx.hasCredentialIDs());
107TEST(TransactionsEscrowFinishTests, BuilderFromStTxRoundTrip)
110 auto const [publicKey, secretKey] =
138 auto initialTx = initialBuilder.
build(publicKey, secretKey);
143 auto rebuiltTx = builderFromTx.
build(publicKey, secretKey);
146 EXPECT_TRUE(rebuiltTx.validate(reason)) << reason;
149 EXPECT_EQ(rebuiltTx.getAccount(), accountValue);
150 EXPECT_EQ(rebuiltTx.getSequence(), sequenceValue);
151 EXPECT_EQ(rebuiltTx.getFee(), feeValue);
155 auto const& expected = ownerValue;
156 auto const actual = rebuiltTx.getOwner();
161 auto const& expected = offerSequenceValue;
162 auto const actual = rebuiltTx.getOfferSequence();
168 auto const& expected = fulfillmentValue;
169 auto const actualOpt = rebuiltTx.getFulfillment();
170 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfFulfillment should be present";
175 auto const& expected = conditionValue;
176 auto const actualOpt = rebuiltTx.getCondition();
177 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfCondition should be present";
182 auto const& expected = credentialIDsValue;
183 auto const actualOpt = rebuiltTx.getCredentialIDs();
184 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfCredentialIDs should be present";
191TEST(TransactionsEscrowFinishTests, WrapperThrowsOnWrongTxType)
194 auto const [pk, sk] =
199 auto wrongTx = wrongBuilder.
build(pk, sk);
205TEST(TransactionsEscrowFinishTests, BuilderThrowsOnWrongTxType)
208 auto const [pk, sk] =
213 auto wrongTx = wrongBuilder.
build(pk, sk);
219TEST(TransactionsEscrowFinishTests, OptionalFieldsReturnNullopt)
222 auto const [publicKey, secretKey] =
244 auto tx = builder.
build(publicKey, secretKey);
247 EXPECT_FALSE(tx.hasFulfillment());
248 EXPECT_FALSE(tx.getFulfillment().has_value());
249 EXPECT_FALSE(tx.hasCondition());
250 EXPECT_FALSE(tx.getCondition().has_value());
251 EXPECT_FALSE(tx.hasCredentialIDs());
252 EXPECT_FALSE(tx.getCredentialIDs().has_value());
Builder for AccountSet transactions.
AccountSet build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the AccountSet wrapper.
Builder for EscrowFinish transactions.
EscrowFinish build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the EscrowFinish wrapper.
EscrowFinishBuilder & setFulfillment(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfFulfillment (SoeOptional).
EscrowFinishBuilder & setCondition(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfCondition (SoeOptional).
EscrowFinishBuilder & setCredentialIDs(std::decay_t< typename SF_VECTOR256::type::value_type > const &value)
Set sfCredentialIDs (SoeOptional).
Transaction: EscrowFinish.
TEST(TransactionsAccountDeleteTests, BuilderSettersRoundTrip)
UInt32Value canonical_UINT32()
AccountValue canonical_ACCOUNT()
Vector256Value canonical_VECTOR256()
Seed generateSeed(std::string const &passPhrase)
Generate a seed deterministically.
std::pair< PublicKey, SecretKey > generateKeyPair(KeyType type, Seed const &seed)
Generate a key pair deterministically.
AmountValue canonical_AMOUNT()
AccountID calcAccountID(PublicKey const &pk)
void expectEqualField(T const &expected, T const &actual, char const *fieldName)