19TEST(MPTokenTests, BuilderSettersRoundTrip)
30 auto const confidentialBalanceInboxValue =
canonical_VL();
31 auto const confidentialBalanceSpendingValue =
canonical_VL();
34 auto const auditorEncryptedBalanceValue =
canonical_VL();
42 mPTokenIssuanceIDValue,
45 previousTxnLgrSeqValue
65 auto const entry = builder.
build(index);
67 EXPECT_TRUE(entry.validate());
70 auto const& expected = accountValue;
71 auto const actual = entry.getAccount();
76 auto const& expected = mPTokenIssuanceIDValue;
77 auto const actual = entry.getMPTokenIssuanceID();
82 auto const& expected = ownerNodeValue;
83 auto const actual = entry.getOwnerNode();
88 auto const& expected = previousTxnIDValue;
89 auto const actual = entry.getPreviousTxnID();
94 auto const& expected = previousTxnLgrSeqValue;
95 auto const actual = entry.getPreviousTxnLgrSeq();
100 auto const& expected = mPTAmountValue;
101 auto const actualOpt = entry.getMPTAmount();
102 ASSERT_TRUE(actualOpt.has_value());
104 EXPECT_TRUE(entry.hasMPTAmount());
108 auto const& expected = lockedAmountValue;
109 auto const actualOpt = entry.getLockedAmount();
110 ASSERT_TRUE(actualOpt.has_value());
112 EXPECT_TRUE(entry.hasLockedAmount());
116 auto const& expected = confidentialBalanceInboxValue;
117 auto const actualOpt = entry.getConfidentialBalanceInbox();
118 ASSERT_TRUE(actualOpt.has_value());
120 EXPECT_TRUE(entry.hasConfidentialBalanceInbox());
124 auto const& expected = confidentialBalanceSpendingValue;
125 auto const actualOpt = entry.getConfidentialBalanceSpending();
126 ASSERT_TRUE(actualOpt.has_value());
128 EXPECT_TRUE(entry.hasConfidentialBalanceSpending());
132 auto const& expected = confidentialBalanceVersionValue;
133 auto const actualOpt = entry.getConfidentialBalanceVersion();
134 ASSERT_TRUE(actualOpt.has_value());
136 EXPECT_TRUE(entry.hasConfidentialBalanceVersion());
140 auto const& expected = issuerEncryptedBalanceValue;
141 auto const actualOpt = entry.getIssuerEncryptedBalance();
142 ASSERT_TRUE(actualOpt.has_value());
144 EXPECT_TRUE(entry.hasIssuerEncryptedBalance());
148 auto const& expected = auditorEncryptedBalanceValue;
149 auto const actualOpt = entry.getAuditorEncryptedBalance();
150 ASSERT_TRUE(actualOpt.has_value());
152 EXPECT_TRUE(entry.hasAuditorEncryptedBalance());
156 auto const& expected = issuerKeyMirrorEpochValue;
157 auto const actualOpt = entry.getIssuerKeyMirrorEpoch();
158 ASSERT_TRUE(actualOpt.has_value());
160 EXPECT_TRUE(entry.hasIssuerKeyMirrorEpoch());
164 auto const& expected = auditorKeyMirrorEpochValue;
165 auto const actualOpt = entry.getAuditorKeyMirrorEpoch();
166 ASSERT_TRUE(actualOpt.has_value());
168 EXPECT_TRUE(entry.hasAuditorKeyMirrorEpoch());
172 auto const& expected = holderEncryptionKeyValue;
173 auto const actualOpt = entry.getHolderEncryptionKey();
174 ASSERT_TRUE(actualOpt.has_value());
176 EXPECT_TRUE(entry.hasHolderEncryptionKey());
180 auto const& expected = recoveryKeyValue;
181 auto const actualOpt = entry.getRecoveryKey();
182 ASSERT_TRUE(actualOpt.has_value());
184 EXPECT_TRUE(entry.hasRecoveryKey());
187 EXPECT_TRUE(entry.hasLedgerIndex());
188 auto const ledgerIndex = entry.getLedgerIndex();
189 ASSERT_TRUE(ledgerIndex.has_value());
190 EXPECT_EQ(*ledgerIndex, index);
191 EXPECT_EQ(entry.getKey(), index);
196TEST(MPTokenTests, BuilderFromSleRoundTrip)
207 auto const confidentialBalanceInboxValue =
canonical_VL();
208 auto const confidentialBalanceSpendingValue =
canonical_VL();
210 auto const issuerEncryptedBalanceValue =
canonical_VL();
211 auto const auditorEncryptedBalanceValue =
canonical_VL();
219 sle->at(sfAccount) = accountValue;
220 sle->at(sfMPTokenIssuanceID) = mPTokenIssuanceIDValue;
221 sle->at(sfMPTAmount) = mPTAmountValue;
222 sle->at(sfLockedAmount) = lockedAmountValue;
223 sle->at(sfOwnerNode) = ownerNodeValue;
224 sle->at(sfPreviousTxnID) = previousTxnIDValue;
225 sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
226 sle->at(sfConfidentialBalanceInbox) = confidentialBalanceInboxValue;
227 sle->at(sfConfidentialBalanceSpending) = confidentialBalanceSpendingValue;
228 sle->at(sfConfidentialBalanceVersion) = confidentialBalanceVersionValue;
229 sle->at(sfIssuerEncryptedBalance) = issuerEncryptedBalanceValue;
230 sle->at(sfAuditorEncryptedBalance) = auditorEncryptedBalanceValue;
231 sle->at(sfIssuerKeyMirrorEpoch) = issuerKeyMirrorEpochValue;
232 sle->at(sfAuditorKeyMirrorEpoch) = auditorKeyMirrorEpochValue;
233 sle->at(sfHolderEncryptionKey) = holderEncryptionKeyValue;
234 sle->at(sfRecoveryKey) = recoveryKeyValue;
237 EXPECT_TRUE(builderFromSle.
validate());
239 auto const entryFromBuilder = builderFromSle.
build(index);
242 EXPECT_TRUE(entryFromBuilder.validate());
243 EXPECT_TRUE(entryFromSle.
validate());
246 auto const& expected = accountValue;
248 auto const fromSle = entryFromSle.
getAccount();
249 auto const fromBuilder = entryFromBuilder.getAccount();
256 auto const& expected = mPTokenIssuanceIDValue;
259 auto const fromBuilder = entryFromBuilder.getMPTokenIssuanceID();
266 auto const& expected = ownerNodeValue;
269 auto const fromBuilder = entryFromBuilder.getOwnerNode();
276 auto const& expected = previousTxnIDValue;
279 auto const fromBuilder = entryFromBuilder.getPreviousTxnID();
286 auto const& expected = previousTxnLgrSeqValue;
289 auto const fromBuilder = entryFromBuilder.getPreviousTxnLgrSeq();
296 auto const& expected = mPTAmountValue;
299 auto const fromBuilderOpt = entryFromBuilder.getMPTAmount();
301 ASSERT_TRUE(fromSleOpt.has_value());
302 ASSERT_TRUE(fromBuilderOpt.has_value());
309 auto const& expected = lockedAmountValue;
312 auto const fromBuilderOpt = entryFromBuilder.getLockedAmount();
314 ASSERT_TRUE(fromSleOpt.has_value());
315 ASSERT_TRUE(fromBuilderOpt.has_value());
322 auto const& expected = confidentialBalanceInboxValue;
325 auto const fromBuilderOpt = entryFromBuilder.getConfidentialBalanceInbox();
327 ASSERT_TRUE(fromSleOpt.has_value());
328 ASSERT_TRUE(fromBuilderOpt.has_value());
335 auto const& expected = confidentialBalanceSpendingValue;
338 auto const fromBuilderOpt = entryFromBuilder.getConfidentialBalanceSpending();
340 ASSERT_TRUE(fromSleOpt.has_value());
341 ASSERT_TRUE(fromBuilderOpt.has_value());
344 expectEqualField(expected, *fromBuilderOpt,
"sfConfidentialBalanceSpending");
348 auto const& expected = confidentialBalanceVersionValue;
351 auto const fromBuilderOpt = entryFromBuilder.getConfidentialBalanceVersion();
353 ASSERT_TRUE(fromSleOpt.has_value());
354 ASSERT_TRUE(fromBuilderOpt.has_value());
357 expectEqualField(expected, *fromBuilderOpt,
"sfConfidentialBalanceVersion");
361 auto const& expected = issuerEncryptedBalanceValue;
364 auto const fromBuilderOpt = entryFromBuilder.getIssuerEncryptedBalance();
366 ASSERT_TRUE(fromSleOpt.has_value());
367 ASSERT_TRUE(fromBuilderOpt.has_value());
374 auto const& expected = auditorEncryptedBalanceValue;
377 auto const fromBuilderOpt = entryFromBuilder.getAuditorEncryptedBalance();
379 ASSERT_TRUE(fromSleOpt.has_value());
380 ASSERT_TRUE(fromBuilderOpt.has_value());
387 auto const& expected = issuerKeyMirrorEpochValue;
390 auto const fromBuilderOpt = entryFromBuilder.getIssuerKeyMirrorEpoch();
392 ASSERT_TRUE(fromSleOpt.has_value());
393 ASSERT_TRUE(fromBuilderOpt.has_value());
400 auto const& expected = auditorKeyMirrorEpochValue;
403 auto const fromBuilderOpt = entryFromBuilder.getAuditorKeyMirrorEpoch();
405 ASSERT_TRUE(fromSleOpt.has_value());
406 ASSERT_TRUE(fromBuilderOpt.has_value());
413 auto const& expected = holderEncryptionKeyValue;
416 auto const fromBuilderOpt = entryFromBuilder.getHolderEncryptionKey();
418 ASSERT_TRUE(fromSleOpt.has_value());
419 ASSERT_TRUE(fromBuilderOpt.has_value());
426 auto const& expected = recoveryKeyValue;
429 auto const fromBuilderOpt = entryFromBuilder.getRecoveryKey();
431 ASSERT_TRUE(fromSleOpt.has_value());
432 ASSERT_TRUE(fromBuilderOpt.has_value());
438 EXPECT_EQ(entryFromSle.
getKey(), index);
439 EXPECT_EQ(entryFromBuilder.getKey(), index);
479TEST(MPTokenTests, OptionalFieldsReturnNullopt)
491 mPTokenIssuanceIDValue,
494 previousTxnLgrSeqValue
497 auto const entry = builder.
build(index);
500 EXPECT_FALSE(entry.hasMPTAmount());
501 EXPECT_FALSE(entry.getMPTAmount().has_value());
502 EXPECT_FALSE(entry.hasLockedAmount());
503 EXPECT_FALSE(entry.getLockedAmount().has_value());
504 EXPECT_FALSE(entry.hasConfidentialBalanceInbox());
505 EXPECT_FALSE(entry.getConfidentialBalanceInbox().has_value());
506 EXPECT_FALSE(entry.hasConfidentialBalanceSpending());
507 EXPECT_FALSE(entry.getConfidentialBalanceSpending().has_value());
508 EXPECT_FALSE(entry.hasConfidentialBalanceVersion());
509 EXPECT_FALSE(entry.getConfidentialBalanceVersion().has_value());
510 EXPECT_FALSE(entry.hasIssuerEncryptedBalance());
511 EXPECT_FALSE(entry.getIssuerEncryptedBalance().has_value());
512 EXPECT_FALSE(entry.hasAuditorEncryptedBalance());
513 EXPECT_FALSE(entry.getAuditorEncryptedBalance().has_value());
514 EXPECT_FALSE(entry.hasIssuerKeyMirrorEpoch());
515 EXPECT_FALSE(entry.getIssuerKeyMirrorEpoch().has_value());
516 EXPECT_FALSE(entry.hasAuditorKeyMirrorEpoch());
517 EXPECT_FALSE(entry.getAuditorKeyMirrorEpoch().has_value());
518 EXPECT_FALSE(entry.hasHolderEncryptionKey());
519 EXPECT_FALSE(entry.getHolderEncryptionKey().has_value());
520 EXPECT_FALSE(entry.hasRecoveryKey());
521 EXPECT_FALSE(entry.getRecoveryKey().has_value());