diff --git a/src/test/app/Sponsor_test.cpp b/src/test/app/Sponsor_test.cpp index 8f789f5755..263c8ce508 100644 --- a/src/test/app/Sponsor_test.cpp +++ b/src/test/app/Sponsor_test.cpp @@ -80,12 +80,12 @@ public: sponsor::sig(sponsor1)); env.close(); - env.require(sponsored_owners(alice, 0)); - env.require(sponsored_owners(sponsor1, 0)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor1, 0)); - env.require(sponsoring_account_count(alice, 0)); - env.require(sponsoring_account_count(sponsor1, 1)); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, alice) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 1); auto const sle1 = env.le(keylet::account(alice)); BEAST_EXPECT(sle1->isFieldPresent(sfSponsorAccount)); BEAST_EXPECT(sle1->getAccountID(sfSponsorAccount) == sponsor1.id()); @@ -104,15 +104,15 @@ public: sponsor::sig(sponsor2)); env.close(); - env.require(sponsored_owners(alice, 0)); - env.require(sponsored_owners(sponsor1, 0)); - env.require(sponsored_owners(sponsor2, 0)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor1, 0)); - env.require(sponsoring_owners(sponsor2, 0)); - env.require(sponsoring_account_count(alice, 0)); - env.require(sponsoring_account_count(sponsor1, 0)); - env.require(sponsoring_account_count(sponsor2, 1)); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, sponsor2) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor2) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, alice) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 1); auto const sle2 = env.le(keylet::account(alice)); BEAST_EXPECT(sle2->isFieldPresent(sfSponsorAccount)); BEAST_EXPECT(sle2->getAccountID(sfSponsorAccount) == sponsor2.id()); @@ -125,8 +125,8 @@ public: fee(XRP(1))); env.close(); - env.require( - balance(alice, env.current()->fees().reserve - drops(1))); + BEAST_EXPECT( + env.balance(alice) == env.current()->fees().reserve - drops(1)); env(sponsor::transfer(alice), ter(tecINSUFFICIENT_RESERVE)); env.close(); @@ -136,15 +136,15 @@ public: env(sponsor::transfer(alice)); env.close(); - env.require(sponsored_owners(alice, 0)); - env.require(sponsored_owners(sponsor1, 0)); - env.require(sponsored_owners(sponsor2, 0)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor1, 0)); - env.require(sponsoring_owners(sponsor2, 0)); - env.require(sponsoring_account_count(alice, 0)); - env.require(sponsoring_account_count(sponsor1, 0)); - env.require(sponsoring_account_count(sponsor2, 0)); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, sponsor2) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor2) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, alice) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 0); auto const sle3 = env.le(keylet::account(alice)); BEAST_EXPECT(!sle3->isFieldPresent(sfSponsorAccount)); } @@ -184,13 +184,13 @@ public: sponsor::sig(sponsor1)); env.close(); - env.require(owners(alice, 1)); - env.require(sponsored_owners(alice, 1)); - env.require(sponsored_owners(sponsor1, 0)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor1, 1)); - env.require(sponsoring_account_count(alice, 0)); - env.require(sponsoring_account_count(sponsor1, 0)); + BEAST_EXPECT(ownerCount(env, alice) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor1) == 1); + BEAST_EXPECT(sponsoringAccountCount(env, alice) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 0); auto const sle1 = env.le(keylet::unchecked(checkId)); BEAST_EXPECT(sle1->isFieldPresent(sfSponsorAccount)); BEAST_EXPECT(sle1->getAccountID(sfSponsorAccount) == sponsor1.id()); @@ -209,15 +209,15 @@ public: sponsor::sig(sponsor2)); env.close(); - env.require(sponsored_owners(alice, 1)); - env.require(sponsored_owners(sponsor1, 0)); - env.require(sponsored_owners(sponsor2, 0)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor1, 0)); - env.require(sponsoring_owners(sponsor2, 1)); - env.require(sponsoring_account_count(alice, 0)); - env.require(sponsoring_account_count(sponsor1, 0)); - env.require(sponsoring_account_count(sponsor2, 0)); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, sponsor2) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor2) == 1); + BEAST_EXPECT(sponsoringAccountCount(env, alice) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 0); auto const sle2 = env.le(keylet::unchecked(checkId)); BEAST_EXPECT(sle2->isFieldPresent(sfSponsorAccount)); BEAST_EXPECT(sle2->getAccountID(sfSponsorAccount) == sponsor2.id()); @@ -241,15 +241,15 @@ public: env(sponsor::transfer(alice, checkId)); env.close(); - env.require(sponsored_owners(alice, 0)); - env.require(sponsored_owners(sponsor1, 0)); - env.require(sponsored_owners(sponsor2, 0)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor1, 0)); - env.require(sponsoring_owners(sponsor2, 0)); - env.require(sponsoring_account_count(alice, 0)); - env.require(sponsoring_account_count(sponsor1, 0)); - env.require(sponsoring_account_count(sponsor2, 0)); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, sponsor2) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor2) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, alice) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 0); auto const sle3 = env.le(keylet::unchecked(checkId)); BEAST_EXPECT(!sle3->isFieldPresent(sfSponsorAccount)); } @@ -293,8 +293,8 @@ public: sponsor::sig(sponsor)); env.close(); - env.require(sponsored_owners(alice, 0)); - env.require(sponsoring_account_count(sponsor, 1)); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringAccountCount(env, sponsor) == 1); } void @@ -329,19 +329,19 @@ public: sponsor::sig(sponsor)); env.close(); - env.require(owners(alice, 1)); - env.require(sponsored_owners(alice, 1)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor, 1)); + BEAST_EXPECT(ownerCount(env, alice) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 1); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 1); // CheckCancel auto const checkId = keylet::check(alice, seq).key; env(check::cancel(alice, checkId)); env.close(); - env.require(owners(alice, 0)); - env.require(sponsored_owners(alice, 0)); - env.require(sponsoring_owners(sponsor, 0)); + BEAST_EXPECT(ownerCount(env, alice) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 0); auto const seq2 = env.seq(alice); env(check::create(alice, bob, XRP(1)), @@ -349,23 +349,19 @@ public: sponsor::sig(sponsor)); env.close(); - env.require(owners(alice, 1)); - env.require(sponsored_owners(alice, 1)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor, 1)); + BEAST_EXPECT(ownerCount(env, alice) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 1); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 1); // CheckCash auto const checkId2 = keylet::check(alice, seq2).key; env(check::cash(bob, checkId2, XRP(1))); env.close(); - env.require(owners(alice, 0)); - env.require(sponsored_owners(alice, 0)); - env.require(sponsoring_owners(sponsor, 0)); - - // printf( - // "meta: %s\n", - // env.meta()->getJson(JsonOptions::none).toStyledString().c_str()); + BEAST_EXPECT(ownerCount(env, alice) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 0); } void @@ -389,19 +385,19 @@ public: sponsor::sig(sponsor)); env.close(); - env.require(owners(alice, 1)); - env.require(sponsored_owners(alice, 1)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor, 1)); + BEAST_EXPECT(ownerCount(env, alice) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 1); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 1); // OfferCancel env(offer_cancel(alice, seq)); env.close(); - env.require(owners(alice, 0)); - env.require(sponsored_owners(alice, 0)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor, 0)); + BEAST_EXPECT(ownerCount(env, alice) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 0); // TODO: test Offer Execution } @@ -424,18 +420,18 @@ public: sponsor::sig(sponsor)); env.close(); - env.require(owners(alice, 250)); - env.require(sponsored_owners(alice, 250)); - env.require(sponsoring_owners(alice, 0)); - env.require(sponsoring_owners(sponsor, 250)); + BEAST_EXPECT(ownerCount(env, alice) == 250); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 250); + BEAST_EXPECT(sponsoringOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 250); // use a Ticket env(noop(alice), ticket::use(ticketSeq + 1)); env.close(); - env.require(owners(alice, 249)); - env.require(sponsored_owners(alice, 249)); - env.require(sponsoring_owners(sponsor, 249)); + BEAST_EXPECT(ownerCount(env, alice) == 249); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 249); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 249); } void @@ -457,11 +453,11 @@ public: sponsor::sig(sponsor)); env.close(); - env.require(owners(issuer, 1)); - env.require(owners(subject, 0)); - env.require(sponsored_owners(issuer, 1)); - env.require(sponsored_owners(subject, 0)); - env.require(sponsoring_owners(sponsor, 1)); + BEAST_EXPECT(ownerCount(env, issuer) == 1); + BEAST_EXPECT(ownerCount(env, subject) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, issuer) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, subject) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 1); // CredentialsAccept env(credentials::accept(subject, issuer, "credType"), @@ -469,21 +465,21 @@ public: sponsor::sig(sponsor)); env.close(); - env.require(owners(issuer, 0)); - env.require(owners(subject, 1)); - env.require(sponsored_owners(issuer, 0)); - env.require(sponsored_owners(subject, 1)); - env.require(sponsoring_owners(sponsor, 1)); + BEAST_EXPECT(ownerCount(env, issuer) == 0); + BEAST_EXPECT(ownerCount(env, subject) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, issuer) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, subject) == 1); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 1); // CredentialsDelete env(credentials::deleteCred(subject, subject, issuer, "credType")); env.close(); - env.require(owners(issuer, 0)); - env.require(owners(subject, 0)); - env.require(sponsored_owners(issuer, 0)); - env.require(sponsored_owners(subject, 0)); - env.require(sponsoring_owners(sponsor, 0)); + BEAST_EXPECT(ownerCount(env, issuer) == 0); + BEAST_EXPECT(ownerCount(env, subject) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, issuer) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, subject) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 0); } void @@ -504,17 +500,17 @@ public: sponsor::sig(sponsor)); env.close(); - env.require(owners(alice, 1)); - env.require(sponsored_owners(alice, 1)); - env.require(sponsoring_owners(sponsor, 1)); + BEAST_EXPECT(ownerCount(env, alice) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 1); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 1); // delete env(delegate::set(alice, bob, {})); env.close(); - env.require(owners(alice, 0)); - env.require(sponsored_owners(alice, 0)); - env.require(sponsoring_owners(sponsor, 0)); + BEAST_EXPECT(ownerCount(env, alice) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 0); } void @@ -540,17 +536,17 @@ public: sponsor::sig(sponsor)); env.close(); - env.require(owners(alice, 1)); - env.require(sponsored_owners(alice, 1)); - env.require(sponsoring_owners(sponsor, 1)); + BEAST_EXPECT(ownerCount(env, alice) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 1); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 1); // DIDDelete env(did::del(alice)); env.close(); - env.require(owners(alice, 0)); - env.require(sponsored_owners(alice, 0)); - env.require(sponsoring_owners(sponsor, 0)); + BEAST_EXPECT(ownerCount(env, alice) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 0); } void @@ -607,17 +603,17 @@ public: sponsor::sig(sponsor)); env.close(); - env.require(owners(alice, 1)); - env.require(sponsored_owners(alice, 1)); - env.require(sponsoring_owners(sponsor, 1)); + BEAST_EXPECT(ownerCount(env, alice) == 1); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 1); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 1); // Delete env(signers(alice, none)); env.close(); - env.require(owners(alice, 0)); - env.require(sponsored_owners(alice, 0)); - env.require(sponsoring_owners(sponsor, 0)); + BEAST_EXPECT(ownerCount(env, alice) == 0); + BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0); + BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 0); } void diff --git a/src/test/jtx/Env.h b/src/test/jtx/Env.h index 21a239e3d7..9b26ae1ad5 100644 --- a/src/test/jtx/Env.h +++ b/src/test/jtx/Env.h @@ -487,6 +487,24 @@ public: std::uint32_t ownerCount(Account const& account) const; + /** Return the number of sponsored objects owned by an account. + * Returns 0 if the account does not exist. + */ + std::uint32_t + sponsoredOwnerCount(Account const& account) const; + + /** Return the number of sponsoring objects owned by an account. + * Returns 0 if the account does not exist. + */ + std::uint32_t + sponsoringOwnerCount(Account const& account) const; + + /** Return the number of sponsoring accounts owned by an account. + * Returns 0 if the account does not exist. + */ + std::uint32_t + sponsoringAccountCount(Account const& account) const; + /** Return an account root. @return empty if the account does not exist. */ diff --git a/src/test/jtx/TestHelpers.h b/src/test/jtx/TestHelpers.h index d4a39b6498..d535e172c8 100644 --- a/src/test/jtx/TestHelpers.h +++ b/src/test/jtx/TestHelpers.h @@ -111,6 +111,24 @@ checkArraySize(Json::Value const& val, unsigned int size); std::uint32_t ownerCount(test::jtx::Env const& env, test::jtx::Account const& account); +// Helper function that returns the sponsored owner count on an account. +std::uint32_t +sponsoredOwnerCount( + test::jtx::Env const& env, + test::jtx::Account const& account); + +// Helper function that returns the sponsoring owner count on an account. +std::uint32_t +sponsoringOwnerCount( + test::jtx::Env const& env, + test::jtx::Account const& account); + +// Helper function that returns the sponsoring account count on an account. +std::uint32_t +sponsoringAccountCount( + test::jtx::Env const& env, + test::jtx::Account const& account); + /* Path finding */ /******************************************************************************/ void diff --git a/src/test/jtx/impl/Env.cpp b/src/test/jtx/impl/Env.cpp index 7c17687eee..06df1d86c4 100644 --- a/src/test/jtx/impl/Env.cpp +++ b/src/test/jtx/impl/Env.cpp @@ -250,6 +250,33 @@ Env::ownerCount(Account const& account) const return sle->getFieldU32(sfOwnerCount); } +std::uint32_t +Env::sponsoredOwnerCount(Account const& account) const +{ + auto const sle = le(account); + if (!sle) + Throw("missing account root"); + return sle->getFieldU32(sfSponsoredOwnerCount); +} + +std::uint32_t +Env::sponsoringOwnerCount(Account const& account) const +{ + auto const sle = le(account); + if (!sle) + Throw("missing account root"); + return sle->getFieldU32(sfSponsoringOwnerCount); +} + +std::uint32_t +Env::sponsoringAccountCount(Account const& account) const +{ + auto const sle = le(account); + if (!sle) + Throw("missing account root"); + return sle->getFieldU32(sfSponsoringAccountCount); +} + std::uint32_t Env::seq(Account const& account) const { diff --git a/src/test/jtx/impl/TestHelpers.cpp b/src/test/jtx/impl/TestHelpers.cpp index 5f8c53877a..6549c09239 100644 --- a/src/test/jtx/impl/TestHelpers.cpp +++ b/src/test/jtx/impl/TestHelpers.cpp @@ -56,6 +56,24 @@ ownerCount(Env const& env, Account const& account) return env.ownerCount(account); } +std::uint32_t +sponsoredOwnerCount(Env const& env, Account const& account) +{ + return env.sponsoredOwnerCount(account); +} + +std::uint32_t +sponsoringOwnerCount(Env const& env, Account const& account) +{ + return env.sponsoringOwnerCount(account); +} + +std::uint32_t +sponsoringAccountCount(Env const& env, Account const& account) +{ + return env.sponsoringAccountCount(account); +} + /* Path finding */ /******************************************************************************/ void