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/MPTokenAuthorize.h>
12#include <xrpl/protocol_autogen/transactions/AccountSet.h>
20TEST(TransactionsMPTokenAuthorizeTests, BuilderSettersRoundTrip)
23 auto const [publicKey, secretKey] =
37 mPTokenIssuanceIDValue,
45 auto tx = builder.
build(publicKey, secretKey);
48 EXPECT_TRUE(tx.validate(reason)) << reason;
51 EXPECT_FALSE(tx.getSigningPubKey().empty());
52 EXPECT_TRUE(tx.hasTxnSignature());
55 EXPECT_EQ(tx.getAccount(), accountValue);
56 EXPECT_EQ(tx.getSequence(), sequenceValue);
57 EXPECT_EQ(tx.getFee(), feeValue);
61 auto const& expected = mPTokenIssuanceIDValue;
62 auto const actual = tx.getMPTokenIssuanceID();
68 auto const& expected = holderValue;
69 auto const actualOpt = tx.getHolder();
70 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfHolder should be present";
72 EXPECT_TRUE(tx.hasHolder());
79TEST(TransactionsMPTokenAuthorizeTests, BuilderFromStTxRoundTrip)
82 auto const [publicKey, secretKey] =
97 mPTokenIssuanceIDValue,
104 auto initialTx = initialBuilder.
build(publicKey, secretKey);
109 auto rebuiltTx = builderFromTx.
build(publicKey, secretKey);
112 EXPECT_TRUE(rebuiltTx.validate(reason)) << reason;
115 EXPECT_EQ(rebuiltTx.getAccount(), accountValue);
116 EXPECT_EQ(rebuiltTx.getSequence(), sequenceValue);
117 EXPECT_EQ(rebuiltTx.getFee(), feeValue);
121 auto const& expected = mPTokenIssuanceIDValue;
122 auto const actual = rebuiltTx.getMPTokenIssuanceID();
128 auto const& expected = holderValue;
129 auto const actualOpt = rebuiltTx.getHolder();
130 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfHolder should be present";
137TEST(TransactionsMPTokenAuthorizeTests, WrapperThrowsOnWrongTxType)
140 auto const [pk, sk] =
145 auto wrongTx = wrongBuilder.
build(pk, sk);
151TEST(TransactionsMPTokenAuthorizeTests, BuilderThrowsOnWrongTxType)
154 auto const [pk, sk] =
159 auto wrongTx = wrongBuilder.
build(pk, sk);
165TEST(TransactionsMPTokenAuthorizeTests, OptionalFieldsReturnNullopt)
168 auto const [publicKey, secretKey] =
181 mPTokenIssuanceIDValue,
188 auto tx = builder.
build(publicKey, secretKey);
191 EXPECT_FALSE(tx.hasHolder());
192 EXPECT_FALSE(tx.getHolder().has_value());
Builder for AccountSet transactions.
AccountSet build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the AccountSet wrapper.
Builder for MPTokenAuthorize transactions.
MPTokenAuthorize build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the MPTokenAuthorize wrapper.
MPTokenAuthorizeBuilder & setHolder(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Set sfHolder (SoeOptional).
Transaction: MPTokenAuthorize.
TEST(TransactionsAccountDeleteTests, BuilderSettersRoundTrip)
AccountValue canonical_ACCOUNT()
UInt192Value canonical_UINT192()
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)