19TEST(VaultTests, BuilderSettersRoundTrip)
41 previousTxnLgrSeqValue,
61 EXPECT_TRUE(builder.validate());
63 auto const entry = builder.build(index);
65 EXPECT_TRUE(entry.validate());
68 auto const& expected = previousTxnIDValue;
69 auto const actual = entry.getPreviousTxnID();
74 auto const& expected = previousTxnLgrSeqValue;
75 auto const actual = entry.getPreviousTxnLgrSeq();
80 auto const& expected = sequenceValue;
81 auto const actual = entry.getSequence();
86 auto const& expected = ownerNodeValue;
87 auto const actual = entry.getOwnerNode();
92 auto const& expected = ownerValue;
93 auto const actual = entry.getOwner();
98 auto const& expected = accountValue;
99 auto const actual = entry.getAccount();
104 auto const& expected = assetValue;
105 auto const actual = entry.getAsset();
110 auto const& expected = shareMPTIDValue;
111 auto const actual = entry.getShareMPTID();
116 auto const& expected = withdrawalPolicyValue;
117 auto const actual = entry.getWithdrawalPolicy();
122 auto const& expected = dataValue;
123 auto const actualOpt = entry.getData();
124 ASSERT_TRUE(actualOpt.has_value());
126 EXPECT_TRUE(entry.hasData());
130 auto const& expected = assetsTotalValue;
131 auto const actualOpt = entry.getAssetsTotal();
132 ASSERT_TRUE(actualOpt.has_value());
134 EXPECT_TRUE(entry.hasAssetsTotal());
138 auto const& expected = assetsAvailableValue;
139 auto const actualOpt = entry.getAssetsAvailable();
140 ASSERT_TRUE(actualOpt.has_value());
142 EXPECT_TRUE(entry.hasAssetsAvailable());
146 auto const& expected = assetsMaximumValue;
147 auto const actualOpt = entry.getAssetsMaximum();
148 ASSERT_TRUE(actualOpt.has_value());
150 EXPECT_TRUE(entry.hasAssetsMaximum());
154 auto const& expected = lossUnrealizedValue;
155 auto const actualOpt = entry.getLossUnrealized();
156 ASSERT_TRUE(actualOpt.has_value());
158 EXPECT_TRUE(entry.hasLossUnrealized());
162 auto const& expected = scaleValue;
163 auto const actualOpt = entry.getScale();
164 ASSERT_TRUE(actualOpt.has_value());
166 EXPECT_TRUE(entry.hasScale());
169 EXPECT_TRUE(entry.hasLedgerIndex());
170 auto const ledgerIndex = entry.getLedgerIndex();
171 ASSERT_TRUE(ledgerIndex.has_value());
172 EXPECT_EQ(*ledgerIndex, index);
173 EXPECT_EQ(entry.getKey(), index);
178TEST(VaultTests, BuilderFromSleRoundTrip)
200 sle->at(sfPreviousTxnID) = previousTxnIDValue;
201 sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
202 sle->at(sfSequence) = sequenceValue;
203 sle->at(sfOwnerNode) = ownerNodeValue;
204 sle->at(sfOwner) = ownerValue;
205 sle->at(sfAccount) = accountValue;
206 sle->at(sfData) = dataValue;
207 sle->at(sfAsset) =
STIssue(sfAsset, assetValue);
208 sle->at(sfAssetsTotal) = assetsTotalValue;
209 sle->at(sfAssetsAvailable) = assetsAvailableValue;
210 sle->at(sfAssetsMaximum) = assetsMaximumValue;
211 sle->at(sfLossUnrealized) = lossUnrealizedValue;
212 sle->at(sfShareMPTID) = shareMPTIDValue;
213 sle->at(sfWithdrawalPolicy) = withdrawalPolicyValue;
214 sle->at(sfScale) = scaleValue;
217 EXPECT_TRUE(builderFromSle.validate());
219 auto const entryFromBuilder = builderFromSle.build(index);
221 Vault entryFromSle{sle};
222 EXPECT_TRUE(entryFromBuilder.validate());
223 EXPECT_TRUE(entryFromSle.validate());
226 auto const& expected = previousTxnIDValue;
228 auto const fromSle = entryFromSle.getPreviousTxnID();
229 auto const fromBuilder = entryFromBuilder.getPreviousTxnID();
236 auto const& expected = previousTxnLgrSeqValue;
238 auto const fromSle = entryFromSle.getPreviousTxnLgrSeq();
239 auto const fromBuilder = entryFromBuilder.getPreviousTxnLgrSeq();
246 auto const& expected = sequenceValue;
248 auto const fromSle = entryFromSle.getSequence();
249 auto const fromBuilder = entryFromBuilder.getSequence();
256 auto const& expected = ownerNodeValue;
258 auto const fromSle = entryFromSle.getOwnerNode();
259 auto const fromBuilder = entryFromBuilder.getOwnerNode();
266 auto const& expected = ownerValue;
268 auto const fromSle = entryFromSle.getOwner();
269 auto const fromBuilder = entryFromBuilder.getOwner();
276 auto const& expected = accountValue;
278 auto const fromSle = entryFromSle.getAccount();
279 auto const fromBuilder = entryFromBuilder.getAccount();
286 auto const& expected = assetValue;
288 auto const fromSle = entryFromSle.getAsset();
289 auto const fromBuilder = entryFromBuilder.getAsset();
296 auto const& expected = shareMPTIDValue;
298 auto const fromSle = entryFromSle.getShareMPTID();
299 auto const fromBuilder = entryFromBuilder.getShareMPTID();
306 auto const& expected = withdrawalPolicyValue;
308 auto const fromSle = entryFromSle.getWithdrawalPolicy();
309 auto const fromBuilder = entryFromBuilder.getWithdrawalPolicy();
316 auto const& expected = dataValue;
318 auto const fromSleOpt = entryFromSle.getData();
319 auto const fromBuilderOpt = entryFromBuilder.getData();
321 ASSERT_TRUE(fromSleOpt.has_value());
322 ASSERT_TRUE(fromBuilderOpt.has_value());
329 auto const& expected = assetsTotalValue;
331 auto const fromSleOpt = entryFromSle.getAssetsTotal();
332 auto const fromBuilderOpt = entryFromBuilder.getAssetsTotal();
334 ASSERT_TRUE(fromSleOpt.has_value());
335 ASSERT_TRUE(fromBuilderOpt.has_value());
342 auto const& expected = assetsAvailableValue;
344 auto const fromSleOpt = entryFromSle.getAssetsAvailable();
345 auto const fromBuilderOpt = entryFromBuilder.getAssetsAvailable();
347 ASSERT_TRUE(fromSleOpt.has_value());
348 ASSERT_TRUE(fromBuilderOpt.has_value());
355 auto const& expected = assetsMaximumValue;
357 auto const fromSleOpt = entryFromSle.getAssetsMaximum();
358 auto const fromBuilderOpt = entryFromBuilder.getAssetsMaximum();
360 ASSERT_TRUE(fromSleOpt.has_value());
361 ASSERT_TRUE(fromBuilderOpt.has_value());
368 auto const& expected = lossUnrealizedValue;
370 auto const fromSleOpt = entryFromSle.getLossUnrealized();
371 auto const fromBuilderOpt = entryFromBuilder.getLossUnrealized();
373 ASSERT_TRUE(fromSleOpt.has_value());
374 ASSERT_TRUE(fromBuilderOpt.has_value());
381 auto const& expected = scaleValue;
383 auto const fromSleOpt = entryFromSle.getScale();
384 auto const fromBuilderOpt = entryFromBuilder.getScale();
386 ASSERT_TRUE(fromSleOpt.has_value());
387 ASSERT_TRUE(fromBuilderOpt.has_value());
393 EXPECT_EQ(entryFromSle.getKey(), index);
394 EXPECT_EQ(entryFromBuilder.getKey(), index);
434TEST(VaultTests, OptionalFieldsReturnNullopt)
450 previousTxnLgrSeqValue,
457 withdrawalPolicyValue
460 auto const entry = builder.build(index);
463 EXPECT_FALSE(entry.hasData());
464 EXPECT_FALSE(entry.getData().has_value());
465 EXPECT_FALSE(entry.hasAssetsTotal());
466 EXPECT_FALSE(entry.getAssetsTotal().has_value());
467 EXPECT_FALSE(entry.hasAssetsAvailable());
468 EXPECT_FALSE(entry.getAssetsAvailable().has_value());
469 EXPECT_FALSE(entry.hasAssetsMaximum());
470 EXPECT_FALSE(entry.getAssetsMaximum().has_value());
471 EXPECT_FALSE(entry.hasLossUnrealized());
472 EXPECT_FALSE(entry.getLossUnrealized().has_value());
473 EXPECT_FALSE(entry.hasScale());
474 EXPECT_FALSE(entry.getScale().has_value());
std::shared_ptr< SLE const > getSle() const
Get the underlying SLE object.