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/PaymentChannelFund.h>
12#include <xrpl/protocol_autogen/transactions/AccountSet.h>
20TEST(TransactionsPaymentChannelFundTests, BuilderSettersRoundTrip)
23 auto const [publicKey, secretKey] =
47 auto tx = builder.
build(publicKey, secretKey);
50 EXPECT_TRUE(tx.validate(reason)) << reason;
53 EXPECT_FALSE(tx.getSigningPubKey().empty());
54 EXPECT_TRUE(tx.hasTxnSignature());
57 EXPECT_EQ(tx.getAccount(), accountValue);
58 EXPECT_EQ(tx.getSequence(), sequenceValue);
59 EXPECT_EQ(tx.getFee(), feeValue);
63 auto const& expected = channelValue;
64 auto const actual = tx.getChannel();
69 auto const& expected = amountValue;
70 auto const actual = tx.getAmount();
76 auto const& expected = expirationValue;
77 auto const actualOpt = tx.getExpiration();
78 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfExpiration should be present";
80 EXPECT_TRUE(tx.hasExpiration());
87TEST(TransactionsPaymentChannelFundTests, BuilderFromStTxRoundTrip)
90 auto const [publicKey, secretKey] =
114 auto initialTx = initialBuilder.
build(publicKey, secretKey);
119 auto rebuiltTx = builderFromTx.
build(publicKey, secretKey);
122 EXPECT_TRUE(rebuiltTx.validate(reason)) << reason;
125 EXPECT_EQ(rebuiltTx.getAccount(), accountValue);
126 EXPECT_EQ(rebuiltTx.getSequence(), sequenceValue);
127 EXPECT_EQ(rebuiltTx.getFee(), feeValue);
131 auto const& expected = channelValue;
132 auto const actual = rebuiltTx.getChannel();
137 auto const& expected = amountValue;
138 auto const actual = rebuiltTx.getAmount();
144 auto const& expected = expirationValue;
145 auto const actualOpt = rebuiltTx.getExpiration();
146 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfExpiration should be present";
153TEST(TransactionsPaymentChannelFundTests, WrapperThrowsOnWrongTxType)
156 auto const [pk, sk] =
161 auto wrongTx = wrongBuilder.
build(pk, sk);
167TEST(TransactionsPaymentChannelFundTests, BuilderThrowsOnWrongTxType)
170 auto const [pk, sk] =
175 auto wrongTx = wrongBuilder.
build(pk, sk);
181TEST(TransactionsPaymentChannelFundTests, OptionalFieldsReturnNullopt)
184 auto const [publicKey, secretKey] =
206 auto tx = builder.
build(publicKey, secretKey);
209 EXPECT_FALSE(tx.hasExpiration());
210 EXPECT_FALSE(tx.getExpiration().has_value());
Builder for AccountSet transactions.
AccountSet build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the AccountSet wrapper.
Builder for PaymentChannelFund transactions.
PaymentChannelFund build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the PaymentChannelFund wrapper.
PaymentChannelFundBuilder & setExpiration(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfExpiration (SoeOptional).
Transaction: PaymentChannelFund.
TEST(TransactionsAccountDeleteTests, BuilderSettersRoundTrip)
UInt32Value canonical_UINT32()
UInt256Value canonical_UINT256()
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)