19TEST(MPTokenTests, BuilderSettersRoundTrip)
30 auto const confidentialBalanceInboxValue =
canonical_VL();
31 auto const confidentialBalanceSpendingValue =
canonical_VL();
34 auto const auditorEncryptedBalanceValue =
canonical_VL();
39 mPTokenIssuanceIDValue,
42 previousTxnLgrSeqValue
59 auto const entry = builder.
build(index);
61 EXPECT_TRUE(entry.validate());
64 auto const& expected = accountValue;
65 auto const actual = entry.getAccount();
70 auto const& expected = mPTokenIssuanceIDValue;
71 auto const actual = entry.getMPTokenIssuanceID();
76 auto const& expected = ownerNodeValue;
77 auto const actual = entry.getOwnerNode();
82 auto const& expected = previousTxnIDValue;
83 auto const actual = entry.getPreviousTxnID();
88 auto const& expected = previousTxnLgrSeqValue;
89 auto const actual = entry.getPreviousTxnLgrSeq();
94 auto const& expected = mPTAmountValue;
95 auto const actualOpt = entry.getMPTAmount();
96 ASSERT_TRUE(actualOpt.has_value());
98 EXPECT_TRUE(entry.hasMPTAmount());
102 auto const& expected = lockedAmountValue;
103 auto const actualOpt = entry.getLockedAmount();
104 ASSERT_TRUE(actualOpt.has_value());
106 EXPECT_TRUE(entry.hasLockedAmount());
110 auto const& expected = confidentialBalanceInboxValue;
111 auto const actualOpt = entry.getConfidentialBalanceInbox();
112 ASSERT_TRUE(actualOpt.has_value());
114 EXPECT_TRUE(entry.hasConfidentialBalanceInbox());
118 auto const& expected = confidentialBalanceSpendingValue;
119 auto const actualOpt = entry.getConfidentialBalanceSpending();
120 ASSERT_TRUE(actualOpt.has_value());
122 EXPECT_TRUE(entry.hasConfidentialBalanceSpending());
126 auto const& expected = confidentialBalanceVersionValue;
127 auto const actualOpt = entry.getConfidentialBalanceVersion();
128 ASSERT_TRUE(actualOpt.has_value());
130 EXPECT_TRUE(entry.hasConfidentialBalanceVersion());
134 auto const& expected = issuerEncryptedBalanceValue;
135 auto const actualOpt = entry.getIssuerEncryptedBalance();
136 ASSERT_TRUE(actualOpt.has_value());
138 EXPECT_TRUE(entry.hasIssuerEncryptedBalance());
142 auto const& expected = auditorEncryptedBalanceValue;
143 auto const actualOpt = entry.getAuditorEncryptedBalance();
144 ASSERT_TRUE(actualOpt.has_value());
146 EXPECT_TRUE(entry.hasAuditorEncryptedBalance());
150 auto const& expected = holderEncryptionKeyValue;
151 auto const actualOpt = entry.getHolderEncryptionKey();
152 ASSERT_TRUE(actualOpt.has_value());
154 EXPECT_TRUE(entry.hasHolderEncryptionKey());
157 EXPECT_TRUE(entry.hasLedgerIndex());
158 auto const ledgerIndex = entry.getLedgerIndex();
159 ASSERT_TRUE(ledgerIndex.has_value());
160 EXPECT_EQ(*ledgerIndex, index);
161 EXPECT_EQ(entry.getKey(), index);
166TEST(MPTokenTests, BuilderFromSleRoundTrip)
177 auto const confidentialBalanceInboxValue =
canonical_VL();
178 auto const confidentialBalanceSpendingValue =
canonical_VL();
180 auto const issuerEncryptedBalanceValue =
canonical_VL();
181 auto const auditorEncryptedBalanceValue =
canonical_VL();
186 sle->at(sfAccount) = accountValue;
187 sle->at(sfMPTokenIssuanceID) = mPTokenIssuanceIDValue;
188 sle->at(sfMPTAmount) = mPTAmountValue;
189 sle->at(sfLockedAmount) = lockedAmountValue;
190 sle->at(sfOwnerNode) = ownerNodeValue;
191 sle->at(sfPreviousTxnID) = previousTxnIDValue;
192 sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
193 sle->at(sfConfidentialBalanceInbox) = confidentialBalanceInboxValue;
194 sle->at(sfConfidentialBalanceSpending) = confidentialBalanceSpendingValue;
195 sle->at(sfConfidentialBalanceVersion) = confidentialBalanceVersionValue;
196 sle->at(sfIssuerEncryptedBalance) = issuerEncryptedBalanceValue;
197 sle->at(sfAuditorEncryptedBalance) = auditorEncryptedBalanceValue;
198 sle->at(sfHolderEncryptionKey) = holderEncryptionKeyValue;
201 EXPECT_TRUE(builderFromSle.
validate());
203 auto const entryFromBuilder = builderFromSle.
build(index);
206 EXPECT_TRUE(entryFromBuilder.validate());
207 EXPECT_TRUE(entryFromSle.
validate());
210 auto const& expected = accountValue;
212 auto const fromSle = entryFromSle.
getAccount();
213 auto const fromBuilder = entryFromBuilder.getAccount();
220 auto const& expected = mPTokenIssuanceIDValue;
223 auto const fromBuilder = entryFromBuilder.getMPTokenIssuanceID();
230 auto const& expected = ownerNodeValue;
233 auto const fromBuilder = entryFromBuilder.getOwnerNode();
240 auto const& expected = previousTxnIDValue;
243 auto const fromBuilder = entryFromBuilder.getPreviousTxnID();
250 auto const& expected = previousTxnLgrSeqValue;
253 auto const fromBuilder = entryFromBuilder.getPreviousTxnLgrSeq();
260 auto const& expected = mPTAmountValue;
263 auto const fromBuilderOpt = entryFromBuilder.getMPTAmount();
265 ASSERT_TRUE(fromSleOpt.has_value());
266 ASSERT_TRUE(fromBuilderOpt.has_value());
273 auto const& expected = lockedAmountValue;
276 auto const fromBuilderOpt = entryFromBuilder.getLockedAmount();
278 ASSERT_TRUE(fromSleOpt.has_value());
279 ASSERT_TRUE(fromBuilderOpt.has_value());
286 auto const& expected = confidentialBalanceInboxValue;
289 auto const fromBuilderOpt = entryFromBuilder.getConfidentialBalanceInbox();
291 ASSERT_TRUE(fromSleOpt.has_value());
292 ASSERT_TRUE(fromBuilderOpt.has_value());
299 auto const& expected = confidentialBalanceSpendingValue;
302 auto const fromBuilderOpt = entryFromBuilder.getConfidentialBalanceSpending();
304 ASSERT_TRUE(fromSleOpt.has_value());
305 ASSERT_TRUE(fromBuilderOpt.has_value());
308 expectEqualField(expected, *fromBuilderOpt,
"sfConfidentialBalanceSpending");
312 auto const& expected = confidentialBalanceVersionValue;
315 auto const fromBuilderOpt = entryFromBuilder.getConfidentialBalanceVersion();
317 ASSERT_TRUE(fromSleOpt.has_value());
318 ASSERT_TRUE(fromBuilderOpt.has_value());
321 expectEqualField(expected, *fromBuilderOpt,
"sfConfidentialBalanceVersion");
325 auto const& expected = issuerEncryptedBalanceValue;
328 auto const fromBuilderOpt = entryFromBuilder.getIssuerEncryptedBalance();
330 ASSERT_TRUE(fromSleOpt.has_value());
331 ASSERT_TRUE(fromBuilderOpt.has_value());
338 auto const& expected = auditorEncryptedBalanceValue;
341 auto const fromBuilderOpt = entryFromBuilder.getAuditorEncryptedBalance();
343 ASSERT_TRUE(fromSleOpt.has_value());
344 ASSERT_TRUE(fromBuilderOpt.has_value());
351 auto const& expected = holderEncryptionKeyValue;
354 auto const fromBuilderOpt = entryFromBuilder.getHolderEncryptionKey();
356 ASSERT_TRUE(fromSleOpt.has_value());
357 ASSERT_TRUE(fromBuilderOpt.has_value());
363 EXPECT_EQ(entryFromSle.
getKey(), index);
364 EXPECT_EQ(entryFromBuilder.getKey(), index);
404TEST(MPTokenTests, OptionalFieldsReturnNullopt)
416 mPTokenIssuanceIDValue,
419 previousTxnLgrSeqValue
422 auto const entry = builder.
build(index);
425 EXPECT_FALSE(entry.hasMPTAmount());
426 EXPECT_FALSE(entry.getMPTAmount().has_value());
427 EXPECT_FALSE(entry.hasLockedAmount());
428 EXPECT_FALSE(entry.getLockedAmount().has_value());
429 EXPECT_FALSE(entry.hasConfidentialBalanceInbox());
430 EXPECT_FALSE(entry.getConfidentialBalanceInbox().has_value());
431 EXPECT_FALSE(entry.hasConfidentialBalanceSpending());
432 EXPECT_FALSE(entry.getConfidentialBalanceSpending().has_value());
433 EXPECT_FALSE(entry.hasConfidentialBalanceVersion());
434 EXPECT_FALSE(entry.getConfidentialBalanceVersion().has_value());
435 EXPECT_FALSE(entry.hasIssuerEncryptedBalance());
436 EXPECT_FALSE(entry.getIssuerEncryptedBalance().has_value());
437 EXPECT_FALSE(entry.hasAuditorEncryptedBalance());
438 EXPECT_FALSE(entry.getAuditorEncryptedBalance().has_value());
439 EXPECT_FALSE(entry.hasHolderEncryptionKey());
440 EXPECT_FALSE(entry.getHolderEncryptionKey().has_value());