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/AMMBid.h>
12#include <xrpl/protocol_autogen/transactions/AccountSet.h>
20TEST(TransactionsAMMBidTests, 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 = assetValue;
68 auto const actual = tx.getAsset();
73 auto const& expected = asset2Value;
74 auto const actual = tx.getAsset2();
80 auto const& expected = bidMinValue;
81 auto const actualOpt = tx.getBidMin();
82 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfBidMin should be present";
84 EXPECT_TRUE(tx.hasBidMin());
88 auto const& expected = bidMaxValue;
89 auto const actualOpt = tx.getBidMax();
90 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfBidMax should be present";
92 EXPECT_TRUE(tx.hasBidMax());
96 auto const& expected = authAccountsValue;
97 auto const actualOpt = tx.getAuthAccounts();
98 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfAuthAccounts should be present";
100 EXPECT_TRUE(tx.hasAuthAccounts());
107TEST(TransactionsAMMBidTests, 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 = assetValue;
156 auto const actual = rebuiltTx.getAsset();
161 auto const& expected = asset2Value;
162 auto const actual = rebuiltTx.getAsset2();
168 auto const& expected = bidMinValue;
169 auto const actualOpt = rebuiltTx.getBidMin();
170 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfBidMin should be present";
175 auto const& expected = bidMaxValue;
176 auto const actualOpt = rebuiltTx.getBidMax();
177 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfBidMax should be present";
182 auto const& expected = authAccountsValue;
183 auto const actualOpt = rebuiltTx.getAuthAccounts();
184 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfAuthAccounts should be present";
191TEST(TransactionsAMMBidTests, WrapperThrowsOnWrongTxType)
194 auto const [pk, sk] =
199 auto wrongTx = wrongBuilder.
build(pk, sk);
205TEST(TransactionsAMMBidTests, BuilderThrowsOnWrongTxType)
208 auto const [pk, sk] =
213 auto wrongTx = wrongBuilder.
build(pk, sk);
219TEST(TransactionsAMMBidTests, OptionalFieldsReturnNullopt)
222 auto const [publicKey, secretKey] =
244 auto tx = builder.
build(publicKey, secretKey);
247 EXPECT_FALSE(tx.hasBidMin());
248 EXPECT_FALSE(tx.getBidMin().has_value());
249 EXPECT_FALSE(tx.hasBidMax());
250 EXPECT_FALSE(tx.getBidMax().has_value());
251 EXPECT_FALSE(tx.hasAuthAccounts());
252 EXPECT_FALSE(tx.getAuthAccounts().has_value());
Builder for AMMBid transactions.
AMMBidBuilder & setBidMax(std::decay_t< typename SF_AMOUNT::type::value_type > const &value)
Set sfBidMax (SoeOptional).
AMMBidBuilder & setAuthAccounts(STArray const &value)
Set sfAuthAccounts (SoeOptional).
AMMBidBuilder & setBidMin(std::decay_t< typename SF_AMOUNT::type::value_type > const &value)
Set sfBidMin (SoeOptional).
AMMBid build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the AMMBid wrapper.
Builder for AccountSet transactions.
AccountSet build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the AccountSet wrapper.
TEST(TransactionsAccountDeleteTests, BuilderSettersRoundTrip)
Seed generateSeed(std::string const &passPhrase)
Generate a seed deterministically.
IssueValue canonical_ISSUE()
std::pair< PublicKey, SecretKey > generateKeyPair(KeyType type, Seed const &seed)
Generate a key pair deterministically.
STArray canonical_ARRAY()
AmountValue canonical_AMOUNT()
AccountID calcAccountID(PublicKey const &pk)
void expectEqualField(T const &expected, T const &actual, char const *fieldName)