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/NFTokenCreateOffer.h>
12#include <xrpl/protocol_autogen/transactions/AccountSet.h>
20TEST(TransactionsNFTokenCreateOfferTests, 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 = nFTokenIDValue;
68 auto const actual = tx.getNFTokenID();
73 auto const& expected = amountValue;
74 auto const actual = tx.getAmount();
80 auto const& expected = destinationValue;
81 auto const actualOpt = tx.getDestination();
82 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfDestination should be present";
84 EXPECT_TRUE(tx.hasDestination());
88 auto const& expected = ownerValue;
89 auto const actualOpt = tx.getOwner();
90 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfOwner should be present";
92 EXPECT_TRUE(tx.hasOwner());
96 auto const& expected = expirationValue;
97 auto const actualOpt = tx.getExpiration();
98 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfExpiration should be present";
100 EXPECT_TRUE(tx.hasExpiration());
107TEST(TransactionsNFTokenCreateOfferTests, BuilderFromStTxRoundTrip)
110 auto const [publicKey, secretKey] =
135 initialBuilder.
setOwner(ownerValue);
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 = nFTokenIDValue;
156 auto const actual = rebuiltTx.getNFTokenID();
161 auto const& expected = amountValue;
162 auto const actual = rebuiltTx.getAmount();
168 auto const& expected = destinationValue;
169 auto const actualOpt = rebuiltTx.getDestination();
170 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfDestination should be present";
175 auto const& expected = ownerValue;
176 auto const actualOpt = rebuiltTx.getOwner();
177 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfOwner should be present";
182 auto const& expected = expirationValue;
183 auto const actualOpt = rebuiltTx.getExpiration();
184 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfExpiration should be present";
191TEST(TransactionsNFTokenCreateOfferTests, WrapperThrowsOnWrongTxType)
194 auto const [pk, sk] =
199 auto wrongTx = wrongBuilder.
build(pk, sk);
205TEST(TransactionsNFTokenCreateOfferTests, BuilderThrowsOnWrongTxType)
208 auto const [pk, sk] =
213 auto wrongTx = wrongBuilder.
build(pk, sk);
219TEST(TransactionsNFTokenCreateOfferTests, OptionalFieldsReturnNullopt)
222 auto const [publicKey, secretKey] =
244 auto tx = builder.
build(publicKey, secretKey);
247 EXPECT_FALSE(tx.hasDestination());
248 EXPECT_FALSE(tx.getDestination().has_value());
249 EXPECT_FALSE(tx.hasOwner());
250 EXPECT_FALSE(tx.getOwner().has_value());
251 EXPECT_FALSE(tx.hasExpiration());
252 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 NFTokenCreateOffer transactions.
NFTokenCreateOfferBuilder & setOwner(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Set sfOwner (SoeOptional).
NFTokenCreateOfferBuilder & setDestination(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Set sfDestination (SoeOptional).
NFTokenCreateOfferBuilder & setExpiration(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfExpiration (SoeOptional).
NFTokenCreateOffer build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the NFTokenCreateOffer wrapper.
Transaction: NFTokenCreateOffer.
TEST(TransactionsAccountDeleteTests, BuilderSettersRoundTrip)
UInt32Value canonical_UINT32()
AccountValue canonical_ACCOUNT()
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)