19TEST(EscrowTests, BuilderSettersRoundTrip)
47 previousTxnLgrSeqValue
67 auto const entry = builder.
build(index);
69 EXPECT_TRUE(entry.validate());
72 auto const& expected = accountValue;
73 auto const actual = entry.getAccount();
78 auto const& expected = destinationValue;
79 auto const actual = entry.getDestination();
84 auto const& expected = amountValue;
85 auto const actual = entry.getAmount();
90 auto const& expected = ownerNodeValue;
91 auto const actual = entry.getOwnerNode();
96 auto const& expected = previousTxnIDValue;
97 auto const actual = entry.getPreviousTxnID();
102 auto const& expected = previousTxnLgrSeqValue;
103 auto const actual = entry.getPreviousTxnLgrSeq();
108 auto const& expected = sequenceValue;
109 auto const actualOpt = entry.getSequence();
110 ASSERT_TRUE(actualOpt.has_value());
112 EXPECT_TRUE(entry.hasSequence());
116 auto const& expected = conditionValue;
117 auto const actualOpt = entry.getCondition();
118 ASSERT_TRUE(actualOpt.has_value());
120 EXPECT_TRUE(entry.hasCondition());
124 auto const& expected = cancelAfterValue;
125 auto const actualOpt = entry.getCancelAfter();
126 ASSERT_TRUE(actualOpt.has_value());
128 EXPECT_TRUE(entry.hasCancelAfter());
132 auto const& expected = finishAfterValue;
133 auto const actualOpt = entry.getFinishAfter();
134 ASSERT_TRUE(actualOpt.has_value());
136 EXPECT_TRUE(entry.hasFinishAfter());
140 auto const& expected = bytecodeValue;
141 auto const actualOpt = entry.getBytecode();
142 ASSERT_TRUE(actualOpt.has_value());
144 EXPECT_TRUE(entry.hasBytecode());
148 auto const& expected = dataValue;
149 auto const actualOpt = entry.getData();
150 ASSERT_TRUE(actualOpt.has_value());
152 EXPECT_TRUE(entry.hasData());
156 auto const& expected = sourceTagValue;
157 auto const actualOpt = entry.getSourceTag();
158 ASSERT_TRUE(actualOpt.has_value());
160 EXPECT_TRUE(entry.hasSourceTag());
164 auto const& expected = destinationTagValue;
165 auto const actualOpt = entry.getDestinationTag();
166 ASSERT_TRUE(actualOpt.has_value());
168 EXPECT_TRUE(entry.hasDestinationTag());
172 auto const& expected = destinationNodeValue;
173 auto const actualOpt = entry.getDestinationNode();
174 ASSERT_TRUE(actualOpt.has_value());
176 EXPECT_TRUE(entry.hasDestinationNode());
180 auto const& expected = transferRateValue;
181 auto const actualOpt = entry.getTransferRate();
182 ASSERT_TRUE(actualOpt.has_value());
184 EXPECT_TRUE(entry.hasTransferRate());
188 auto const& expected = issuerNodeValue;
189 auto const actualOpt = entry.getIssuerNode();
190 ASSERT_TRUE(actualOpt.has_value());
192 EXPECT_TRUE(entry.hasIssuerNode());
195 EXPECT_TRUE(entry.hasLedgerIndex());
196 auto const ledgerIndex = entry.getLedgerIndex();
197 ASSERT_TRUE(ledgerIndex.has_value());
198 EXPECT_EQ(*ledgerIndex, index);
199 EXPECT_EQ(entry.getKey(), index);
204TEST(EscrowTests, BuilderFromSleRoundTrip)
228 sle->at(sfAccount) = accountValue;
229 sle->at(sfSequence) = sequenceValue;
230 sle->at(sfDestination) = destinationValue;
231 sle->at(sfAmount) = amountValue;
232 sle->at(sfCondition) = conditionValue;
233 sle->at(sfCancelAfter) = cancelAfterValue;
234 sle->at(sfFinishAfter) = finishAfterValue;
235 sle->at(sfBytecode) = bytecodeValue;
236 sle->at(sfData) = dataValue;
237 sle->at(sfSourceTag) = sourceTagValue;
238 sle->at(sfDestinationTag) = destinationTagValue;
239 sle->at(sfOwnerNode) = ownerNodeValue;
240 sle->at(sfPreviousTxnID) = previousTxnIDValue;
241 sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
242 sle->at(sfDestinationNode) = destinationNodeValue;
243 sle->at(sfTransferRate) = transferRateValue;
244 sle->at(sfIssuerNode) = issuerNodeValue;
247 EXPECT_TRUE(builderFromSle.
validate());
249 auto const entryFromBuilder = builderFromSle.
build(index);
252 EXPECT_TRUE(entryFromBuilder.validate());
253 EXPECT_TRUE(entryFromSle.
validate());
256 auto const& expected = accountValue;
258 auto const fromSle = entryFromSle.
getAccount();
259 auto const fromBuilder = entryFromBuilder.getAccount();
266 auto const& expected = destinationValue;
269 auto const fromBuilder = entryFromBuilder.getDestination();
276 auto const& expected = amountValue;
278 auto const fromSle = entryFromSle.
getAmount();
279 auto const fromBuilder = entryFromBuilder.getAmount();
286 auto const& expected = ownerNodeValue;
289 auto const fromBuilder = entryFromBuilder.getOwnerNode();
296 auto const& expected = previousTxnIDValue;
299 auto const fromBuilder = entryFromBuilder.getPreviousTxnID();
306 auto const& expected = previousTxnLgrSeqValue;
309 auto const fromBuilder = entryFromBuilder.getPreviousTxnLgrSeq();
316 auto const& expected = sequenceValue;
318 auto const fromSleOpt = entryFromSle.
getSequence();
319 auto const fromBuilderOpt = entryFromBuilder.getSequence();
321 ASSERT_TRUE(fromSleOpt.has_value());
322 ASSERT_TRUE(fromBuilderOpt.has_value());
329 auto const& expected = conditionValue;
332 auto const fromBuilderOpt = entryFromBuilder.getCondition();
334 ASSERT_TRUE(fromSleOpt.has_value());
335 ASSERT_TRUE(fromBuilderOpt.has_value());
342 auto const& expected = cancelAfterValue;
345 auto const fromBuilderOpt = entryFromBuilder.getCancelAfter();
347 ASSERT_TRUE(fromSleOpt.has_value());
348 ASSERT_TRUE(fromBuilderOpt.has_value());
355 auto const& expected = finishAfterValue;
358 auto const fromBuilderOpt = entryFromBuilder.getFinishAfter();
360 ASSERT_TRUE(fromSleOpt.has_value());
361 ASSERT_TRUE(fromBuilderOpt.has_value());
368 auto const& expected = bytecodeValue;
370 auto const fromSleOpt = entryFromSle.
getBytecode();
371 auto const fromBuilderOpt = entryFromBuilder.getBytecode();
373 ASSERT_TRUE(fromSleOpt.has_value());
374 ASSERT_TRUE(fromBuilderOpt.has_value());
381 auto const& expected = dataValue;
383 auto const fromSleOpt = entryFromSle.
getData();
384 auto const fromBuilderOpt = entryFromBuilder.getData();
386 ASSERT_TRUE(fromSleOpt.has_value());
387 ASSERT_TRUE(fromBuilderOpt.has_value());
394 auto const& expected = sourceTagValue;
397 auto const fromBuilderOpt = entryFromBuilder.getSourceTag();
399 ASSERT_TRUE(fromSleOpt.has_value());
400 ASSERT_TRUE(fromBuilderOpt.has_value());
407 auto const& expected = destinationTagValue;
410 auto const fromBuilderOpt = entryFromBuilder.getDestinationTag();
412 ASSERT_TRUE(fromSleOpt.has_value());
413 ASSERT_TRUE(fromBuilderOpt.has_value());
420 auto const& expected = destinationNodeValue;
423 auto const fromBuilderOpt = entryFromBuilder.getDestinationNode();
425 ASSERT_TRUE(fromSleOpt.has_value());
426 ASSERT_TRUE(fromBuilderOpt.has_value());
433 auto const& expected = transferRateValue;
436 auto const fromBuilderOpt = entryFromBuilder.getTransferRate();
438 ASSERT_TRUE(fromSleOpt.has_value());
439 ASSERT_TRUE(fromBuilderOpt.has_value());
446 auto const& expected = issuerNodeValue;
449 auto const fromBuilderOpt = entryFromBuilder.getIssuerNode();
451 ASSERT_TRUE(fromSleOpt.has_value());
452 ASSERT_TRUE(fromBuilderOpt.has_value());
458 EXPECT_EQ(entryFromSle.
getKey(), index);
459 EXPECT_EQ(entryFromBuilder.getKey(), index);
499TEST(EscrowTests, OptionalFieldsReturnNullopt)
516 previousTxnLgrSeqValue
519 auto const entry = builder.
build(index);
522 EXPECT_FALSE(entry.hasSequence());
523 EXPECT_FALSE(entry.getSequence().has_value());
524 EXPECT_FALSE(entry.hasCondition());
525 EXPECT_FALSE(entry.getCondition().has_value());
526 EXPECT_FALSE(entry.hasCancelAfter());
527 EXPECT_FALSE(entry.getCancelAfter().has_value());
528 EXPECT_FALSE(entry.hasFinishAfter());
529 EXPECT_FALSE(entry.getFinishAfter().has_value());
530 EXPECT_FALSE(entry.hasBytecode());
531 EXPECT_FALSE(entry.getBytecode().has_value());
532 EXPECT_FALSE(entry.hasData());
533 EXPECT_FALSE(entry.getData().has_value());
534 EXPECT_FALSE(entry.hasSourceTag());
535 EXPECT_FALSE(entry.getSourceTag().has_value());
536 EXPECT_FALSE(entry.hasDestinationTag());
537 EXPECT_FALSE(entry.getDestinationTag().has_value());
538 EXPECT_FALSE(entry.hasDestinationNode());
539 EXPECT_FALSE(entry.getDestinationNode().has_value());
540 EXPECT_FALSE(entry.hasTransferRate());
541 EXPECT_FALSE(entry.getTransferRate().has_value());
542 EXPECT_FALSE(entry.hasIssuerNode());
543 EXPECT_FALSE(entry.getIssuerNode().has_value());