20TEST(TransactionsAMMWithdrawTests, BuilderSettersRoundTrip)
23 auto const [publicKey, secretKey] =
48 builder.setAmount(amountValue);
49 builder.setAmount2(amount2Value);
50 builder.setEPrice(ePriceValue);
51 builder.setLPTokenIn(lPTokenInValue);
53 auto tx = builder.build(publicKey, secretKey);
56 EXPECT_TRUE(tx.validate(reason)) << reason;
59 EXPECT_FALSE(tx.getSigningPubKey().empty());
60 EXPECT_TRUE(tx.hasTxnSignature());
63 EXPECT_EQ(tx.getAccount(), accountValue);
64 EXPECT_EQ(tx.getSequence(), sequenceValue);
65 EXPECT_EQ(tx.getFee(), feeValue);
69 auto const& expected = assetValue;
70 auto const actual = tx.getAsset();
75 auto const& expected = asset2Value;
76 auto const actual = tx.getAsset2();
82 auto const& expected = amountValue;
83 auto const actualOpt = tx.getAmount();
84 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfAmount should be present";
86 EXPECT_TRUE(tx.hasAmount());
90 auto const& expected = amount2Value;
91 auto const actualOpt = tx.getAmount2();
92 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfAmount2 should be present";
94 EXPECT_TRUE(tx.hasAmount2());
98 auto const& expected = ePriceValue;
99 auto const actualOpt = tx.getEPrice();
100 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfEPrice should be present";
102 EXPECT_TRUE(tx.hasEPrice());
106 auto const& expected = lPTokenInValue;
107 auto const actualOpt = tx.getLPTokenIn();
108 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfLPTokenIn should be present";
110 EXPECT_TRUE(tx.hasLPTokenIn());
117TEST(TransactionsAMMWithdrawTests, BuilderFromStTxRoundTrip)
120 auto const [publicKey, secretKey] =
145 initialBuilder.setAmount(amountValue);
146 initialBuilder.setAmount2(amount2Value);
147 initialBuilder.setEPrice(ePriceValue);
148 initialBuilder.setLPTokenIn(lPTokenInValue);
150 auto initialTx = initialBuilder.build(publicKey, secretKey);
155 auto rebuiltTx = builderFromTx.
build(publicKey, secretKey);
158 EXPECT_TRUE(rebuiltTx.validate(reason)) << reason;
161 EXPECT_EQ(rebuiltTx.getAccount(), accountValue);
162 EXPECT_EQ(rebuiltTx.getSequence(), sequenceValue);
163 EXPECT_EQ(rebuiltTx.getFee(), feeValue);
167 auto const& expected = assetValue;
168 auto const actual = rebuiltTx.getAsset();
173 auto const& expected = asset2Value;
174 auto const actual = rebuiltTx.getAsset2();
180 auto const& expected = amountValue;
181 auto const actualOpt = rebuiltTx.getAmount();
182 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfAmount should be present";
187 auto const& expected = amount2Value;
188 auto const actualOpt = rebuiltTx.getAmount2();
189 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfAmount2 should be present";
194 auto const& expected = ePriceValue;
195 auto const actualOpt = rebuiltTx.getEPrice();
196 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfEPrice should be present";
201 auto const& expected = lPTokenInValue;
202 auto const actualOpt = rebuiltTx.getLPTokenIn();
203 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfLPTokenIn should be present";
238TEST(TransactionsAMMWithdrawTests, OptionalFieldsReturnNullopt)
241 auto const [publicKey, secretKey] =
263 auto tx = builder.build(publicKey, secretKey);
266 EXPECT_FALSE(tx.hasAmount());
267 EXPECT_FALSE(tx.getAmount().has_value());
268 EXPECT_FALSE(tx.hasAmount2());
269 EXPECT_FALSE(tx.getAmount2().has_value());
270 EXPECT_FALSE(tx.hasEPrice());
271 EXPECT_FALSE(tx.getEPrice().has_value());
272 EXPECT_FALSE(tx.hasLPTokenIn());
273 EXPECT_FALSE(tx.getLPTokenIn().has_value());