19TEST(AccountRootTests, BuilderSettersRoundTrip)
56 previousTxnLgrSeqValue
85 auto const entry = builder.
build(index);
87 EXPECT_TRUE(entry.validate());
90 auto const& expected = accountValue;
91 auto const actual = entry.getAccount();
96 auto const& expected = sequenceValue;
97 auto const actual = entry.getSequence();
102 auto const& expected = balanceValue;
103 auto const actual = entry.getBalance();
108 auto const& expected = ownerCountValue;
109 auto const actual = entry.getOwnerCount();
114 auto const& expected = previousTxnIDValue;
115 auto const actual = entry.getPreviousTxnID();
120 auto const& expected = previousTxnLgrSeqValue;
121 auto const actual = entry.getPreviousTxnLgrSeq();
126 auto const& expected = accountTxnIDValue;
127 auto const actualOpt = entry.getAccountTxnID();
128 ASSERT_TRUE(actualOpt.has_value());
130 EXPECT_TRUE(entry.hasAccountTxnID());
134 auto const& expected = regularKeyValue;
135 auto const actualOpt = entry.getRegularKey();
136 ASSERT_TRUE(actualOpt.has_value());
138 EXPECT_TRUE(entry.hasRegularKey());
142 auto const& expected = emailHashValue;
143 auto const actualOpt = entry.getEmailHash();
144 ASSERT_TRUE(actualOpt.has_value());
146 EXPECT_TRUE(entry.hasEmailHash());
150 auto const& expected = walletLocatorValue;
151 auto const actualOpt = entry.getWalletLocator();
152 ASSERT_TRUE(actualOpt.has_value());
154 EXPECT_TRUE(entry.hasWalletLocator());
158 auto const& expected = walletSizeValue;
159 auto const actualOpt = entry.getWalletSize();
160 ASSERT_TRUE(actualOpt.has_value());
162 EXPECT_TRUE(entry.hasWalletSize());
166 auto const& expected = messageKeyValue;
167 auto const actualOpt = entry.getMessageKey();
168 ASSERT_TRUE(actualOpt.has_value());
170 EXPECT_TRUE(entry.hasMessageKey());
174 auto const& expected = transferRateValue;
175 auto const actualOpt = entry.getTransferRate();
176 ASSERT_TRUE(actualOpt.has_value());
178 EXPECT_TRUE(entry.hasTransferRate());
182 auto const& expected = domainValue;
183 auto const actualOpt = entry.getDomain();
184 ASSERT_TRUE(actualOpt.has_value());
186 EXPECT_TRUE(entry.hasDomain());
190 auto const& expected = tickSizeValue;
191 auto const actualOpt = entry.getTickSize();
192 ASSERT_TRUE(actualOpt.has_value());
194 EXPECT_TRUE(entry.hasTickSize());
198 auto const& expected = ticketCountValue;
199 auto const actualOpt = entry.getTicketCount();
200 ASSERT_TRUE(actualOpt.has_value());
202 EXPECT_TRUE(entry.hasTicketCount());
206 auto const& expected = nFTokenMinterValue;
207 auto const actualOpt = entry.getNFTokenMinter();
208 ASSERT_TRUE(actualOpt.has_value());
210 EXPECT_TRUE(entry.hasNFTokenMinter());
214 auto const& expected = mintedNFTokensValue;
215 auto const actualOpt = entry.getMintedNFTokens();
216 ASSERT_TRUE(actualOpt.has_value());
218 EXPECT_TRUE(entry.hasMintedNFTokens());
222 auto const& expected = burnedNFTokensValue;
223 auto const actualOpt = entry.getBurnedNFTokens();
224 ASSERT_TRUE(actualOpt.has_value());
226 EXPECT_TRUE(entry.hasBurnedNFTokens());
230 auto const& expected = firstNFTokenSequenceValue;
231 auto const actualOpt = entry.getFirstNFTokenSequence();
232 ASSERT_TRUE(actualOpt.has_value());
234 EXPECT_TRUE(entry.hasFirstNFTokenSequence());
238 auto const& expected = sponsoredOwnerCountValue;
239 auto const actualOpt = entry.getSponsoredOwnerCount();
240 ASSERT_TRUE(actualOpt.has_value());
242 EXPECT_TRUE(entry.hasSponsoredOwnerCount());
246 auto const& expected = sponsoringOwnerCountValue;
247 auto const actualOpt = entry.getSponsoringOwnerCount();
248 ASSERT_TRUE(actualOpt.has_value());
250 EXPECT_TRUE(entry.hasSponsoringOwnerCount());
254 auto const& expected = sponsoringAccountCountValue;
255 auto const actualOpt = entry.getSponsoringAccountCount();
256 ASSERT_TRUE(actualOpt.has_value());
258 EXPECT_TRUE(entry.hasSponsoringAccountCount());
262 auto const& expected = aMMIDValue;
263 auto const actualOpt = entry.getAMMID();
264 ASSERT_TRUE(actualOpt.has_value());
266 EXPECT_TRUE(entry.hasAMMID());
270 auto const& expected = vaultIDValue;
271 auto const actualOpt = entry.getVaultID();
272 ASSERT_TRUE(actualOpt.has_value());
274 EXPECT_TRUE(entry.hasVaultID());
278 auto const& expected = loanBrokerIDValue;
279 auto const actualOpt = entry.getLoanBrokerID();
280 ASSERT_TRUE(actualOpt.has_value());
282 EXPECT_TRUE(entry.hasLoanBrokerID());
285 EXPECT_TRUE(entry.hasLedgerIndex());
286 auto const ledgerIndex = entry.getLedgerIndex();
287 ASSERT_TRUE(ledgerIndex.has_value());
288 EXPECT_EQ(*ledgerIndex, index);
289 EXPECT_EQ(entry.getKey(), index);
294TEST(AccountRootTests, BuilderFromSleRoundTrip)
327 sle->at(sfAccount) = accountValue;
328 sle->at(sfSequence) = sequenceValue;
329 sle->at(sfBalance) = balanceValue;
330 sle->at(sfOwnerCount) = ownerCountValue;
331 sle->at(sfPreviousTxnID) = previousTxnIDValue;
332 sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
333 sle->at(sfAccountTxnID) = accountTxnIDValue;
334 sle->at(sfRegularKey) = regularKeyValue;
335 sle->at(sfEmailHash) = emailHashValue;
336 sle->at(sfWalletLocator) = walletLocatorValue;
337 sle->at(sfWalletSize) = walletSizeValue;
338 sle->at(sfMessageKey) = messageKeyValue;
339 sle->at(sfTransferRate) = transferRateValue;
340 sle->at(sfDomain) = domainValue;
341 sle->at(sfTickSize) = tickSizeValue;
342 sle->at(sfTicketCount) = ticketCountValue;
343 sle->at(sfNFTokenMinter) = nFTokenMinterValue;
344 sle->at(sfMintedNFTokens) = mintedNFTokensValue;
345 sle->at(sfBurnedNFTokens) = burnedNFTokensValue;
346 sle->at(sfFirstNFTokenSequence) = firstNFTokenSequenceValue;
347 sle->at(sfSponsoredOwnerCount) = sponsoredOwnerCountValue;
348 sle->at(sfSponsoringOwnerCount) = sponsoringOwnerCountValue;
349 sle->at(sfSponsoringAccountCount) = sponsoringAccountCountValue;
350 sle->at(sfAMMID) = aMMIDValue;
351 sle->at(sfVaultID) = vaultIDValue;
352 sle->at(sfLoanBrokerID) = loanBrokerIDValue;
355 EXPECT_TRUE(builderFromSle.
validate());
357 auto const entryFromBuilder = builderFromSle.
build(index);
360 EXPECT_TRUE(entryFromBuilder.validate());
361 EXPECT_TRUE(entryFromSle.
validate());
364 auto const& expected = accountValue;
366 auto const fromSle = entryFromSle.
getAccount();
367 auto const fromBuilder = entryFromBuilder.getAccount();
374 auto const& expected = sequenceValue;
377 auto const fromBuilder = entryFromBuilder.getSequence();
384 auto const& expected = balanceValue;
386 auto const fromSle = entryFromSle.
getBalance();
387 auto const fromBuilder = entryFromBuilder.getBalance();
394 auto const& expected = ownerCountValue;
397 auto const fromBuilder = entryFromBuilder.getOwnerCount();
404 auto const& expected = previousTxnIDValue;
407 auto const fromBuilder = entryFromBuilder.getPreviousTxnID();
414 auto const& expected = previousTxnLgrSeqValue;
417 auto const fromBuilder = entryFromBuilder.getPreviousTxnLgrSeq();
424 auto const& expected = accountTxnIDValue;
427 auto const fromBuilderOpt = entryFromBuilder.getAccountTxnID();
429 ASSERT_TRUE(fromSleOpt.has_value());
430 ASSERT_TRUE(fromBuilderOpt.has_value());
437 auto const& expected = regularKeyValue;
440 auto const fromBuilderOpt = entryFromBuilder.getRegularKey();
442 ASSERT_TRUE(fromSleOpt.has_value());
443 ASSERT_TRUE(fromBuilderOpt.has_value());
450 auto const& expected = emailHashValue;
453 auto const fromBuilderOpt = entryFromBuilder.getEmailHash();
455 ASSERT_TRUE(fromSleOpt.has_value());
456 ASSERT_TRUE(fromBuilderOpt.has_value());
463 auto const& expected = walletLocatorValue;
466 auto const fromBuilderOpt = entryFromBuilder.getWalletLocator();
468 ASSERT_TRUE(fromSleOpt.has_value());
469 ASSERT_TRUE(fromBuilderOpt.has_value());
476 auto const& expected = walletSizeValue;
479 auto const fromBuilderOpt = entryFromBuilder.getWalletSize();
481 ASSERT_TRUE(fromSleOpt.has_value());
482 ASSERT_TRUE(fromBuilderOpt.has_value());
489 auto const& expected = messageKeyValue;
492 auto const fromBuilderOpt = entryFromBuilder.getMessageKey();
494 ASSERT_TRUE(fromSleOpt.has_value());
495 ASSERT_TRUE(fromBuilderOpt.has_value());
502 auto const& expected = transferRateValue;
505 auto const fromBuilderOpt = entryFromBuilder.getTransferRate();
507 ASSERT_TRUE(fromSleOpt.has_value());
508 ASSERT_TRUE(fromBuilderOpt.has_value());
515 auto const& expected = domainValue;
517 auto const fromSleOpt = entryFromSle.
getDomain();
518 auto const fromBuilderOpt = entryFromBuilder.getDomain();
520 ASSERT_TRUE(fromSleOpt.has_value());
521 ASSERT_TRUE(fromBuilderOpt.has_value());
528 auto const& expected = tickSizeValue;
530 auto const fromSleOpt = entryFromSle.
getTickSize();
531 auto const fromBuilderOpt = entryFromBuilder.getTickSize();
533 ASSERT_TRUE(fromSleOpt.has_value());
534 ASSERT_TRUE(fromBuilderOpt.has_value());
541 auto const& expected = ticketCountValue;
544 auto const fromBuilderOpt = entryFromBuilder.getTicketCount();
546 ASSERT_TRUE(fromSleOpt.has_value());
547 ASSERT_TRUE(fromBuilderOpt.has_value());
554 auto const& expected = nFTokenMinterValue;
557 auto const fromBuilderOpt = entryFromBuilder.getNFTokenMinter();
559 ASSERT_TRUE(fromSleOpt.has_value());
560 ASSERT_TRUE(fromBuilderOpt.has_value());
567 auto const& expected = mintedNFTokensValue;
570 auto const fromBuilderOpt = entryFromBuilder.getMintedNFTokens();
572 ASSERT_TRUE(fromSleOpt.has_value());
573 ASSERT_TRUE(fromBuilderOpt.has_value());
580 auto const& expected = burnedNFTokensValue;
583 auto const fromBuilderOpt = entryFromBuilder.getBurnedNFTokens();
585 ASSERT_TRUE(fromSleOpt.has_value());
586 ASSERT_TRUE(fromBuilderOpt.has_value());
593 auto const& expected = firstNFTokenSequenceValue;
596 auto const fromBuilderOpt = entryFromBuilder.getFirstNFTokenSequence();
598 ASSERT_TRUE(fromSleOpt.has_value());
599 ASSERT_TRUE(fromBuilderOpt.has_value());
606 auto const& expected = sponsoredOwnerCountValue;
609 auto const fromBuilderOpt = entryFromBuilder.getSponsoredOwnerCount();
611 ASSERT_TRUE(fromSleOpt.has_value());
612 ASSERT_TRUE(fromBuilderOpt.has_value());
619 auto const& expected = sponsoringOwnerCountValue;
622 auto const fromBuilderOpt = entryFromBuilder.getSponsoringOwnerCount();
624 ASSERT_TRUE(fromSleOpt.has_value());
625 ASSERT_TRUE(fromBuilderOpt.has_value());
632 auto const& expected = sponsoringAccountCountValue;
635 auto const fromBuilderOpt = entryFromBuilder.getSponsoringAccountCount();
637 ASSERT_TRUE(fromSleOpt.has_value());
638 ASSERT_TRUE(fromBuilderOpt.has_value());
645 auto const& expected = aMMIDValue;
647 auto const fromSleOpt = entryFromSle.
getAMMID();
648 auto const fromBuilderOpt = entryFromBuilder.getAMMID();
650 ASSERT_TRUE(fromSleOpt.has_value());
651 ASSERT_TRUE(fromBuilderOpt.has_value());
658 auto const& expected = vaultIDValue;
660 auto const fromSleOpt = entryFromSle.
getVaultID();
661 auto const fromBuilderOpt = entryFromBuilder.getVaultID();
663 ASSERT_TRUE(fromSleOpt.has_value());
664 ASSERT_TRUE(fromBuilderOpt.has_value());
671 auto const& expected = loanBrokerIDValue;
674 auto const fromBuilderOpt = entryFromBuilder.getLoanBrokerID();
676 ASSERT_TRUE(fromSleOpt.has_value());
677 ASSERT_TRUE(fromBuilderOpt.has_value());
683 EXPECT_EQ(entryFromSle.
getKey(), index);
684 EXPECT_EQ(entryFromBuilder.getKey(), index);
724TEST(AccountRootTests, OptionalFieldsReturnNullopt)
741 previousTxnLgrSeqValue
744 auto const entry = builder.
build(index);
747 EXPECT_FALSE(entry.hasAccountTxnID());
748 EXPECT_FALSE(entry.getAccountTxnID().has_value());
749 EXPECT_FALSE(entry.hasRegularKey());
750 EXPECT_FALSE(entry.getRegularKey().has_value());
751 EXPECT_FALSE(entry.hasEmailHash());
752 EXPECT_FALSE(entry.getEmailHash().has_value());
753 EXPECT_FALSE(entry.hasWalletLocator());
754 EXPECT_FALSE(entry.getWalletLocator().has_value());
755 EXPECT_FALSE(entry.hasWalletSize());
756 EXPECT_FALSE(entry.getWalletSize().has_value());
757 EXPECT_FALSE(entry.hasMessageKey());
758 EXPECT_FALSE(entry.getMessageKey().has_value());
759 EXPECT_FALSE(entry.hasTransferRate());
760 EXPECT_FALSE(entry.getTransferRate().has_value());
761 EXPECT_FALSE(entry.hasDomain());
762 EXPECT_FALSE(entry.getDomain().has_value());
763 EXPECT_FALSE(entry.hasTickSize());
764 EXPECT_FALSE(entry.getTickSize().has_value());
765 EXPECT_FALSE(entry.hasTicketCount());
766 EXPECT_FALSE(entry.getTicketCount().has_value());
767 EXPECT_FALSE(entry.hasNFTokenMinter());
768 EXPECT_FALSE(entry.getNFTokenMinter().has_value());
769 EXPECT_FALSE(entry.hasMintedNFTokens());
770 EXPECT_FALSE(entry.getMintedNFTokens().has_value());
771 EXPECT_FALSE(entry.hasBurnedNFTokens());
772 EXPECT_FALSE(entry.getBurnedNFTokens().has_value());
773 EXPECT_FALSE(entry.hasFirstNFTokenSequence());
774 EXPECT_FALSE(entry.getFirstNFTokenSequence().has_value());
775 EXPECT_FALSE(entry.hasSponsoredOwnerCount());
776 EXPECT_FALSE(entry.getSponsoredOwnerCount().has_value());
777 EXPECT_FALSE(entry.hasSponsoringOwnerCount());
778 EXPECT_FALSE(entry.getSponsoringOwnerCount().has_value());
779 EXPECT_FALSE(entry.hasSponsoringAccountCount());
780 EXPECT_FALSE(entry.getSponsoringAccountCount().has_value());
781 EXPECT_FALSE(entry.hasAMMID());
782 EXPECT_FALSE(entry.getAMMID().has_value());
783 EXPECT_FALSE(entry.hasVaultID());
784 EXPECT_FALSE(entry.getVaultID().has_value());
785 EXPECT_FALSE(entry.hasLoanBrokerID());
786 EXPECT_FALSE(entry.getLoanBrokerID().has_value());