19TEST(MPTokenIssuanceTests, BuilderSettersRoundTrip)
47 outstandingAmountValue,
49 previousTxnLgrSeqValue
71 auto const entry = builder.
build(index);
73 EXPECT_TRUE(entry.validate());
76 auto const& expected = issuerValue;
77 auto const actual = entry.getIssuer();
82 auto const& expected = sequenceValue;
83 auto const actual = entry.getSequence();
88 auto const& expected = ownerNodeValue;
89 auto const actual = entry.getOwnerNode();
94 auto const& expected = outstandingAmountValue;
95 auto const actual = entry.getOutstandingAmount();
100 auto const& expected = previousTxnIDValue;
101 auto const actual = entry.getPreviousTxnID();
106 auto const& expected = previousTxnLgrSeqValue;
107 auto const actual = entry.getPreviousTxnLgrSeq();
112 auto const& expected = transferFeeValue;
113 auto const actualOpt = entry.getTransferFee();
114 ASSERT_TRUE(actualOpt.has_value());
116 EXPECT_TRUE(entry.hasTransferFee());
120 auto const& expected = assetScaleValue;
121 auto const actualOpt = entry.getAssetScale();
122 ASSERT_TRUE(actualOpt.has_value());
124 EXPECT_TRUE(entry.hasAssetScale());
128 auto const& expected = maximumAmountValue;
129 auto const actualOpt = entry.getMaximumAmount();
130 ASSERT_TRUE(actualOpt.has_value());
132 EXPECT_TRUE(entry.hasMaximumAmount());
136 auto const& expected = lockedAmountValue;
137 auto const actualOpt = entry.getLockedAmount();
138 ASSERT_TRUE(actualOpt.has_value());
140 EXPECT_TRUE(entry.hasLockedAmount());
144 auto const& expected = mPTokenMetadataValue;
145 auto const actualOpt = entry.getMPTokenMetadata();
146 ASSERT_TRUE(actualOpt.has_value());
148 EXPECT_TRUE(entry.hasMPTokenMetadata());
152 auto const& expected = domainIDValue;
153 auto const actualOpt = entry.getDomainID();
154 ASSERT_TRUE(actualOpt.has_value());
156 EXPECT_TRUE(entry.hasDomainID());
160 auto const& expected = immutableFlagsValue;
161 auto const actualOpt = entry.getImmutableFlags();
162 ASSERT_TRUE(actualOpt.has_value());
164 EXPECT_TRUE(entry.hasImmutableFlags());
168 auto const& expected = referenceHoldingValue;
169 auto const actualOpt = entry.getReferenceHolding();
170 ASSERT_TRUE(actualOpt.has_value());
172 EXPECT_TRUE(entry.hasReferenceHolding());
176 auto const& expected = issuerEncryptionKeyValue;
177 auto const actualOpt = entry.getIssuerEncryptionKey();
178 ASSERT_TRUE(actualOpt.has_value());
180 EXPECT_TRUE(entry.hasIssuerEncryptionKey());
184 auto const& expected = auditorEncryptionKeyValue;
185 auto const actualOpt = entry.getAuditorEncryptionKey();
186 ASSERT_TRUE(actualOpt.has_value());
188 EXPECT_TRUE(entry.hasAuditorEncryptionKey());
192 auto const& expected = issuerKeyEpochValue;
193 auto const actualOpt = entry.getIssuerKeyEpoch();
194 ASSERT_TRUE(actualOpt.has_value());
196 EXPECT_TRUE(entry.hasIssuerKeyEpoch());
200 auto const& expected = auditorKeyEpochValue;
201 auto const actualOpt = entry.getAuditorKeyEpoch();
202 ASSERT_TRUE(actualOpt.has_value());
204 EXPECT_TRUE(entry.hasAuditorKeyEpoch());
208 auto const& expected = confidentialOutstandingAmountValue;
209 auto const actualOpt = entry.getConfidentialOutstandingAmount();
210 ASSERT_TRUE(actualOpt.has_value());
212 EXPECT_TRUE(entry.hasConfidentialOutstandingAmount());
215 EXPECT_TRUE(entry.hasLedgerIndex());
216 auto const ledgerIndex = entry.getLedgerIndex();
217 ASSERT_TRUE(ledgerIndex.has_value());
218 EXPECT_EQ(*ledgerIndex, index);
219 EXPECT_EQ(entry.getKey(), index);
224TEST(MPTokenIssuanceTests, BuilderFromSleRoundTrip)
250 sle->at(sfIssuer) = issuerValue;
251 sle->at(sfSequence) = sequenceValue;
252 sle->at(sfTransferFee) = transferFeeValue;
253 sle->at(sfOwnerNode) = ownerNodeValue;
254 sle->at(sfAssetScale) = assetScaleValue;
255 sle->at(sfMaximumAmount) = maximumAmountValue;
256 sle->at(sfOutstandingAmount) = outstandingAmountValue;
257 sle->at(sfLockedAmount) = lockedAmountValue;
258 sle->at(sfMPTokenMetadata) = mPTokenMetadataValue;
259 sle->at(sfPreviousTxnID) = previousTxnIDValue;
260 sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
261 sle->at(sfDomainID) = domainIDValue;
262 sle->at(sfImmutableFlags) = immutableFlagsValue;
263 sle->at(sfReferenceHolding) = referenceHoldingValue;
264 sle->at(sfIssuerEncryptionKey) = issuerEncryptionKeyValue;
265 sle->at(sfAuditorEncryptionKey) = auditorEncryptionKeyValue;
266 sle->at(sfIssuerKeyEpoch) = issuerKeyEpochValue;
267 sle->at(sfAuditorKeyEpoch) = auditorKeyEpochValue;
268 sle->at(sfConfidentialOutstandingAmount) = confidentialOutstandingAmountValue;
271 EXPECT_TRUE(builderFromSle.
validate());
273 auto const entryFromBuilder = builderFromSle.
build(index);
276 EXPECT_TRUE(entryFromBuilder.validate());
277 EXPECT_TRUE(entryFromSle.
validate());
280 auto const& expected = issuerValue;
282 auto const fromSle = entryFromSle.
getIssuer();
283 auto const fromBuilder = entryFromBuilder.getIssuer();
290 auto const& expected = sequenceValue;
293 auto const fromBuilder = entryFromBuilder.getSequence();
300 auto const& expected = ownerNodeValue;
303 auto const fromBuilder = entryFromBuilder.getOwnerNode();
310 auto const& expected = outstandingAmountValue;
313 auto const fromBuilder = entryFromBuilder.getOutstandingAmount();
320 auto const& expected = previousTxnIDValue;
323 auto const fromBuilder = entryFromBuilder.getPreviousTxnID();
330 auto const& expected = previousTxnLgrSeqValue;
333 auto const fromBuilder = entryFromBuilder.getPreviousTxnLgrSeq();
340 auto const& expected = transferFeeValue;
343 auto const fromBuilderOpt = entryFromBuilder.getTransferFee();
345 ASSERT_TRUE(fromSleOpt.has_value());
346 ASSERT_TRUE(fromBuilderOpt.has_value());
353 auto const& expected = assetScaleValue;
356 auto const fromBuilderOpt = entryFromBuilder.getAssetScale();
358 ASSERT_TRUE(fromSleOpt.has_value());
359 ASSERT_TRUE(fromBuilderOpt.has_value());
366 auto const& expected = maximumAmountValue;
369 auto const fromBuilderOpt = entryFromBuilder.getMaximumAmount();
371 ASSERT_TRUE(fromSleOpt.has_value());
372 ASSERT_TRUE(fromBuilderOpt.has_value());
379 auto const& expected = lockedAmountValue;
382 auto const fromBuilderOpt = entryFromBuilder.getLockedAmount();
384 ASSERT_TRUE(fromSleOpt.has_value());
385 ASSERT_TRUE(fromBuilderOpt.has_value());
392 auto const& expected = mPTokenMetadataValue;
395 auto const fromBuilderOpt = entryFromBuilder.getMPTokenMetadata();
397 ASSERT_TRUE(fromSleOpt.has_value());
398 ASSERT_TRUE(fromBuilderOpt.has_value());
405 auto const& expected = domainIDValue;
407 auto const fromSleOpt = entryFromSle.
getDomainID();
408 auto const fromBuilderOpt = entryFromBuilder.getDomainID();
410 ASSERT_TRUE(fromSleOpt.has_value());
411 ASSERT_TRUE(fromBuilderOpt.has_value());
418 auto const& expected = immutableFlagsValue;
421 auto const fromBuilderOpt = entryFromBuilder.getImmutableFlags();
423 ASSERT_TRUE(fromSleOpt.has_value());
424 ASSERT_TRUE(fromBuilderOpt.has_value());
431 auto const& expected = referenceHoldingValue;
434 auto const fromBuilderOpt = entryFromBuilder.getReferenceHolding();
436 ASSERT_TRUE(fromSleOpt.has_value());
437 ASSERT_TRUE(fromBuilderOpt.has_value());
444 auto const& expected = issuerEncryptionKeyValue;
447 auto const fromBuilderOpt = entryFromBuilder.getIssuerEncryptionKey();
449 ASSERT_TRUE(fromSleOpt.has_value());
450 ASSERT_TRUE(fromBuilderOpt.has_value());
457 auto const& expected = auditorEncryptionKeyValue;
460 auto const fromBuilderOpt = entryFromBuilder.getAuditorEncryptionKey();
462 ASSERT_TRUE(fromSleOpt.has_value());
463 ASSERT_TRUE(fromBuilderOpt.has_value());
470 auto const& expected = issuerKeyEpochValue;
473 auto const fromBuilderOpt = entryFromBuilder.getIssuerKeyEpoch();
475 ASSERT_TRUE(fromSleOpt.has_value());
476 ASSERT_TRUE(fromBuilderOpt.has_value());
483 auto const& expected = auditorKeyEpochValue;
486 auto const fromBuilderOpt = entryFromBuilder.getAuditorKeyEpoch();
488 ASSERT_TRUE(fromSleOpt.has_value());
489 ASSERT_TRUE(fromBuilderOpt.has_value());
496 auto const& expected = confidentialOutstandingAmountValue;
499 auto const fromBuilderOpt = entryFromBuilder.getConfidentialOutstandingAmount();
501 ASSERT_TRUE(fromSleOpt.has_value());
502 ASSERT_TRUE(fromBuilderOpt.has_value());
505 expectEqualField(expected, *fromBuilderOpt,
"sfConfidentialOutstandingAmount");
508 EXPECT_EQ(entryFromSle.
getKey(), index);
509 EXPECT_EQ(entryFromBuilder.getKey(), index);
549TEST(MPTokenIssuanceTests, OptionalFieldsReturnNullopt)
564 outstandingAmountValue,
566 previousTxnLgrSeqValue
569 auto const entry = builder.
build(index);
572 EXPECT_FALSE(entry.hasTransferFee());
573 EXPECT_FALSE(entry.getTransferFee().has_value());
574 EXPECT_FALSE(entry.hasAssetScale());
575 EXPECT_FALSE(entry.getAssetScale().has_value());
576 EXPECT_FALSE(entry.hasMaximumAmount());
577 EXPECT_FALSE(entry.getMaximumAmount().has_value());
578 EXPECT_FALSE(entry.hasLockedAmount());
579 EXPECT_FALSE(entry.getLockedAmount().has_value());
580 EXPECT_FALSE(entry.hasMPTokenMetadata());
581 EXPECT_FALSE(entry.getMPTokenMetadata().has_value());
582 EXPECT_FALSE(entry.hasDomainID());
583 EXPECT_FALSE(entry.getDomainID().has_value());
584 EXPECT_FALSE(entry.hasImmutableFlags());
585 EXPECT_FALSE(entry.getImmutableFlags().has_value());
586 EXPECT_FALSE(entry.hasReferenceHolding());
587 EXPECT_FALSE(entry.getReferenceHolding().has_value());
588 EXPECT_FALSE(entry.hasIssuerEncryptionKey());
589 EXPECT_FALSE(entry.getIssuerEncryptionKey().has_value());
590 EXPECT_FALSE(entry.hasAuditorEncryptionKey());
591 EXPECT_FALSE(entry.getAuditorEncryptionKey().has_value());
592 EXPECT_FALSE(entry.hasIssuerKeyEpoch());
593 EXPECT_FALSE(entry.getIssuerKeyEpoch().has_value());
594 EXPECT_FALSE(entry.hasAuditorKeyEpoch());
595 EXPECT_FALSE(entry.getAuditorKeyEpoch().has_value());
596 EXPECT_FALSE(entry.hasConfidentialOutstandingAmount());
597 EXPECT_FALSE(entry.getConfidentialOutstandingAmount().has_value());