mirror of
https://github.com/XRPLF/clio.git
synced 2025-12-02 09:35:55 +00:00
@@ -45,16 +45,20 @@
|
||||
#include <string_view>
|
||||
#include <vector>
|
||||
|
||||
constexpr static auto Account = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn";
|
||||
constexpr static auto Account2 = "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun";
|
||||
constexpr static auto LedgerHash = "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A652";
|
||||
constexpr static auto Index1 = "1B8590C01B0006EDFA9ED60296DD052DC5E90F99659B25014D08E1BC983515BC";
|
||||
constexpr static auto Index2 = "1B8590C01B0006EDFA9ED60296DD052DC5E90F99659B25014D08E1BC983515B1";
|
||||
constexpr static std::string_view CredentialType = "credType";
|
||||
constexpr static auto CredentialHash = "F245428267E6177AEEFDD4FEA3533285712A4B1091CF82A7EA7BC39A62C3FB1A";
|
||||
namespace {
|
||||
|
||||
constexpr static auto RangeMin = 10;
|
||||
constexpr static auto RangeMax = 30;
|
||||
constexpr auto kACCOUNT = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn";
|
||||
constexpr auto kACCOUNT2 = "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun";
|
||||
constexpr auto kLEDGER_HASH = "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A652";
|
||||
constexpr auto kINDEX1 = "1B8590C01B0006EDFA9ED60296DD052DC5E90F99659B25014D08E1BC983515BC";
|
||||
constexpr auto kINDEX2 = "1B8590C01B0006EDFA9ED60296DD052DC5E90F99659B25014D08E1BC983515B1";
|
||||
constexpr auto kCREDENTIAL_HASH = "F245428267E6177AEEFDD4FEA3533285712A4B1091CF82A7EA7BC39A62C3FB1A";
|
||||
constexpr std::string_view kCREDENTIAL_TYPE = "credType";
|
||||
|
||||
constexpr auto kRANGE_MIN = 10;
|
||||
constexpr auto kRANGE_MAX = 30;
|
||||
|
||||
} // namespace
|
||||
|
||||
using namespace rpc;
|
||||
namespace json = boost::json;
|
||||
@@ -63,7 +67,7 @@ using namespace testing;
|
||||
struct RPCDepositAuthorizedTest : HandlerBaseTest {
|
||||
RPCDepositAuthorizedTest()
|
||||
{
|
||||
backend->setRange(RangeMin, RangeMax);
|
||||
backend_->setRange(kRANGE_MIN, kRANGE_MAX);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -209,14 +213,14 @@ INSTANTIATE_TEST_CASE_P(
|
||||
RPCDepositAuthorizedGroup,
|
||||
DepositAuthorizedParameterTest,
|
||||
ValuesIn(generateTestValuesForParametersTest()),
|
||||
tests::util::NameGenerator
|
||||
tests::util::kNAME_GENERATOR
|
||||
);
|
||||
|
||||
TEST_P(DepositAuthorizedParameterTest, InvalidParams)
|
||||
{
|
||||
auto const testBundle = GetParam();
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const req = json::parse(testBundle.testJson);
|
||||
auto const output = handler.process(req, Context{yield});
|
||||
|
||||
@@ -230,20 +234,20 @@ TEST_P(DepositAuthorizedParameterTest, InvalidParams)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, LedgerNotExistViaIntSequence)
|
||||
{
|
||||
EXPECT_CALL(*backend, fetchLedgerBySequence).Times(1);
|
||||
ON_CALL(*backend, fetchLedgerBySequence(RangeMax, _)).WillByDefault(Return(std::nullopt));
|
||||
EXPECT_CALL(*backend_, fetchLedgerBySequence).Times(1);
|
||||
ON_CALL(*backend_, fetchLedgerBySequence(kRANGE_MAX, _)).WillByDefault(Return(std::nullopt));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const req = json::parse(fmt::format(
|
||||
R"({{
|
||||
"source_account": "{}",
|
||||
"destination_account": "{}",
|
||||
"ledger_index": {}
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
RangeMax
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kRANGE_MAX
|
||||
));
|
||||
|
||||
auto const output = handler.process(req, Context{yield});
|
||||
@@ -257,20 +261,20 @@ TEST_F(RPCDepositAuthorizedTest, LedgerNotExistViaIntSequence)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, LedgerNotExistViaStringSequence)
|
||||
{
|
||||
EXPECT_CALL(*backend, fetchLedgerBySequence).Times(1);
|
||||
ON_CALL(*backend, fetchLedgerBySequence(RangeMax, _)).WillByDefault(Return(std::nullopt));
|
||||
EXPECT_CALL(*backend_, fetchLedgerBySequence).Times(1);
|
||||
ON_CALL(*backend_, fetchLedgerBySequence(kRANGE_MAX, _)).WillByDefault(Return(std::nullopt));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const req = json::parse(fmt::format(
|
||||
R"({{
|
||||
"source_account": "{}",
|
||||
"destination_account": "{}",
|
||||
"ledger_index": "{}"
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
RangeMax
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kRANGE_MAX
|
||||
));
|
||||
|
||||
auto const output = handler.process(req, Context{yield});
|
||||
@@ -284,20 +288,20 @@ TEST_F(RPCDepositAuthorizedTest, LedgerNotExistViaStringSequence)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, LedgerNotExistViaHash)
|
||||
{
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash).Times(1);
|
||||
ON_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillByDefault(Return(std::nullopt));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash).Times(1);
|
||||
ON_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillByDefault(Return(std::nullopt));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const req = json::parse(fmt::format(
|
||||
R"({{
|
||||
"source_account": "{}",
|
||||
"destination_account": "{}",
|
||||
"ledger_hash": "{}"
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH
|
||||
));
|
||||
|
||||
auto const output = handler.process(req, Context{yield});
|
||||
@@ -311,13 +315,13 @@ TEST_F(RPCDepositAuthorizedTest, LedgerNotExistViaHash)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, SourceAccountDoesNotExist)
|
||||
{
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30);
|
||||
|
||||
ON_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash).Times(1);
|
||||
ON_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash).Times(1);
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject).WillByDefault(Return(std::optional<Blob>{}));
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(1);
|
||||
ON_CALL(*backend_, doFetchLedgerObject).WillByDefault(Return(std::optional<Blob>{}));
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(1);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -325,13 +329,13 @@ TEST_F(RPCDepositAuthorizedTest, SourceAccountDoesNotExist)
|
||||
"destination_account": "{}",
|
||||
"ledger_hash": "{}"
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_FALSE(output);
|
||||
@@ -344,17 +348,17 @@ TEST_F(RPCDepositAuthorizedTest, SourceAccountDoesNotExist)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, DestinationAccountDoesNotExist)
|
||||
{
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30);
|
||||
|
||||
ON_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash).Times(1);
|
||||
ON_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash).Times(1);
|
||||
|
||||
auto const accountRoot = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
ON_CALL(*backend, doFetchLedgerObject(_, _, _)).WillByDefault(Return(accountRoot.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
auto const accountRoot = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
ON_CALL(*backend_, doFetchLedgerObject(_, _, _)).WillByDefault(Return(accountRoot.getSerializer().peekData()));
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(std::optional<Blob>{}));
|
||||
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(2);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(2);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -362,13 +366,13 @@ TEST_F(RPCDepositAuthorizedTest, DestinationAccountDoesNotExist)
|
||||
"destination_account": "{}",
|
||||
"ledger_hash": "{}"
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_FALSE(output);
|
||||
@@ -381,7 +385,7 @@ TEST_F(RPCDepositAuthorizedTest, DestinationAccountDoesNotExist)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, AccountsAreEqual)
|
||||
{
|
||||
static auto constexpr expectedOut =
|
||||
static constexpr auto kEXPECTED_OUT =
|
||||
R"({
|
||||
"ledger_hash": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A652",
|
||||
"ledger_index": 30,
|
||||
@@ -391,14 +395,14 @@ TEST_F(RPCDepositAuthorizedTest, AccountsAreEqual)
|
||||
"destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn"
|
||||
})";
|
||||
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30);
|
||||
|
||||
ON_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash).Times(1);
|
||||
ON_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash).Times(1);
|
||||
|
||||
auto const accountRoot = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
ON_CALL(*backend, doFetchLedgerObject).WillByDefault(Return(accountRoot.getSerializer().peekData()));
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(2);
|
||||
auto const accountRoot = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
ON_CALL(*backend_, doFetchLedgerObject).WillByDefault(Return(accountRoot.getSerializer().peekData()));
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(2);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -406,23 +410,23 @@ TEST_F(RPCDepositAuthorizedTest, AccountsAreEqual)
|
||||
"destination_account": "{}",
|
||||
"ledger_hash": "{}"
|
||||
}})",
|
||||
Account,
|
||||
Account,
|
||||
LedgerHash
|
||||
kACCOUNT,
|
||||
kACCOUNT,
|
||||
kLEDGER_HASH
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_TRUE(output);
|
||||
EXPECT_EQ(*output.result, json::parse(expectedOut));
|
||||
EXPECT_EQ(*output.result, json::parse(kEXPECTED_OUT));
|
||||
});
|
||||
}
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, DifferentAccountsNoDepositAuthFlag)
|
||||
{
|
||||
static auto constexpr expectedOut =
|
||||
static constexpr auto kEXPECTED_OUT =
|
||||
R"({
|
||||
"ledger_hash": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A652",
|
||||
"ledger_index": 30,
|
||||
@@ -432,19 +436,19 @@ TEST_F(RPCDepositAuthorizedTest, DifferentAccountsNoDepositAuthFlag)
|
||||
"destination_account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun"
|
||||
})";
|
||||
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30);
|
||||
|
||||
ON_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash).Times(1);
|
||||
ON_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash).Times(1);
|
||||
|
||||
auto const account1Root = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
auto const account2Root = CreateAccountRootObject(Account2, 0, 2, 200, 2, Index2, 2);
|
||||
auto const account1Root = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
auto const account2Root = createAccountRootObject(kACCOUNT2, 0, 2, 200, 2, kINDEX2, 2);
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT)).key, _, _))
|
||||
.WillByDefault(Return(account1Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(account2Root.getSerializer().peekData()));
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(2);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(2);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -452,23 +456,23 @@ TEST_F(RPCDepositAuthorizedTest, DifferentAccountsNoDepositAuthFlag)
|
||||
"destination_account": "{}",
|
||||
"ledger_hash": "{}"
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_TRUE(output);
|
||||
EXPECT_EQ(*output.result, json::parse(expectedOut));
|
||||
EXPECT_EQ(*output.result, json::parse(kEXPECTED_OUT));
|
||||
});
|
||||
}
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, DifferentAccountsWithDepositAuthFlagReturnsFalse)
|
||||
{
|
||||
static auto constexpr expectedOut =
|
||||
static constexpr auto kEXPECTED_OUT =
|
||||
R"({
|
||||
"ledger_hash": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A652",
|
||||
"ledger_index": 30,
|
||||
@@ -478,20 +482,20 @@ TEST_F(RPCDepositAuthorizedTest, DifferentAccountsWithDepositAuthFlagReturnsFals
|
||||
"destination_account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun"
|
||||
})";
|
||||
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30);
|
||||
|
||||
ON_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash).Times(1);
|
||||
ON_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash).Times(1);
|
||||
|
||||
auto const account1Root = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
auto const account2Root = CreateAccountRootObject(Account2, ripple::lsfDepositAuth, 2, 200, 2, Index2, 2);
|
||||
auto const account1Root = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
auto const account2Root = createAccountRootObject(kACCOUNT2, ripple::lsfDepositAuth, 2, 200, 2, kINDEX2, 2);
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::nullopt));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::nullopt));
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT)).key, _, _))
|
||||
.WillByDefault(Return(account1Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(account2Root.getSerializer().peekData()));
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(3);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(3);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -499,23 +503,23 @@ TEST_F(RPCDepositAuthorizedTest, DifferentAccountsWithDepositAuthFlagReturnsFals
|
||||
"destination_account": "{}",
|
||||
"ledger_hash": "{}"
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_TRUE(output);
|
||||
EXPECT_EQ(*output.result, json::parse(expectedOut));
|
||||
EXPECT_EQ(*output.result, json::parse(kEXPECTED_OUT));
|
||||
});
|
||||
}
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, DifferentAccountsWithDepositAuthFlagReturnsTrue)
|
||||
{
|
||||
static auto constexpr expectedOut =
|
||||
static constexpr auto kEXPECTED_OUT =
|
||||
R"({
|
||||
"ledger_hash": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A652",
|
||||
"ledger_index": 30,
|
||||
@@ -525,20 +529,20 @@ TEST_F(RPCDepositAuthorizedTest, DifferentAccountsWithDepositAuthFlagReturnsTrue
|
||||
"destination_account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun"
|
||||
})";
|
||||
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30);
|
||||
|
||||
ON_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash).Times(1);
|
||||
ON_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillByDefault(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash).Times(1);
|
||||
|
||||
auto const account1Root = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
auto const account2Root = CreateAccountRootObject(Account2, ripple::lsfDepositAuth, 2, 200, 2, Index2, 2);
|
||||
auto const account1Root = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
auto const account2Root = createAccountRootObject(kACCOUNT2, ripple::lsfDepositAuth, 2, 200, 2, kINDEX2, 2);
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT)).key, _, _))
|
||||
.WillByDefault(Return(account1Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(account2Root.getSerializer().peekData()));
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(3);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(3);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -546,23 +550,23 @@ TEST_F(RPCDepositAuthorizedTest, DifferentAccountsWithDepositAuthFlagReturnsTrue
|
||||
"destination_account": "{}",
|
||||
"ledger_hash": "{}"
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_TRUE(output);
|
||||
EXPECT_EQ(*output.result, json::parse(expectedOut));
|
||||
EXPECT_EQ(*output.result, json::parse(kEXPECTED_OUT));
|
||||
});
|
||||
}
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, CredentialAcceptedAndNotExpiredReturnsTrue)
|
||||
{
|
||||
static auto const expectedOut = fmt::format(
|
||||
static auto const kEXPECTED_OUT = fmt::format(
|
||||
R"({{
|
||||
"ledger_hash": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A652",
|
||||
"ledger_index": 30,
|
||||
@@ -572,31 +576,31 @@ TEST_F(RPCDepositAuthorizedTest, CredentialAcceptedAndNotExpiredReturnsTrue)
|
||||
"destination_account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun",
|
||||
"credentials": ["{}"]
|
||||
}})",
|
||||
CredentialHash // CREDENTIALHASH should match credentialIndex
|
||||
kCREDENTIAL_HASH // CREDENTIALHASH should match credentialIndex
|
||||
);
|
||||
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30);
|
||||
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillOnce(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillOnce(Return(ledgerHeader));
|
||||
|
||||
auto const account1Root = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
auto const account2Root = CreateAccountRootObject(Account2, ripple::lsfDepositAuth, 2, 200, 2, Index2, 2);
|
||||
auto const credential = CreateCredentialObject(Account, Account2, CredentialType);
|
||||
auto const account1Root = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
auto const account2Root = createAccountRootObject(kACCOUNT2, ripple::lsfDepositAuth, 2, 200, 2, kINDEX2, 2);
|
||||
auto const credential = createCredentialObject(kACCOUNT, kACCOUNT2, kCREDENTIAL_TYPE);
|
||||
auto const credentialIndex = ripple::keylet::credential(
|
||||
GetAccountIDWithString(Account),
|
||||
GetAccountIDWithString(Account2),
|
||||
ripple::Slice(CredentialType.data(), CredentialType.size())
|
||||
getAccountIdWithString(kACCOUNT),
|
||||
getAccountIdWithString(kACCOUNT2),
|
||||
ripple::Slice(kCREDENTIAL_TYPE.data(), kCREDENTIAL_TYPE.size())
|
||||
)
|
||||
.key;
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT)).key, _, _))
|
||||
.WillByDefault(Return(account1Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(account2Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(credentialIndex, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(credentialIndex, _, _))
|
||||
.WillByDefault(Return(credential.getSerializer().peekData()));
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(4);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(4);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -605,46 +609,46 @@ TEST_F(RPCDepositAuthorizedTest, CredentialAcceptedAndNotExpiredReturnsTrue)
|
||||
"ledger_hash": "{}",
|
||||
"credentials": ["{}"]
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash,
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH,
|
||||
ripple::strHex(credentialIndex)
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_TRUE(output);
|
||||
EXPECT_EQ(*output.result, json::parse(expectedOut));
|
||||
EXPECT_EQ(*output.result, json::parse(kEXPECTED_OUT));
|
||||
});
|
||||
}
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, CredentialNotAuthorizedReturnsFalse)
|
||||
{
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30);
|
||||
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillOnce(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillOnce(Return(ledgerHeader));
|
||||
|
||||
auto const account1Root = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
auto const account2Root = CreateAccountRootObject(Account2, ripple::lsfDepositAuth, 2, 200, 2, Index2, 2);
|
||||
auto const credential = CreateCredentialObject(Account, Account2, CredentialType, false);
|
||||
auto const account1Root = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
auto const account2Root = createAccountRootObject(kACCOUNT2, ripple::lsfDepositAuth, 2, 200, 2, kINDEX2, 2);
|
||||
auto const credential = createCredentialObject(kACCOUNT, kACCOUNT2, kCREDENTIAL_TYPE, false);
|
||||
auto const credentialIndex = ripple::keylet::credential(
|
||||
GetAccountIDWithString(Account),
|
||||
GetAccountIDWithString(Account2),
|
||||
ripple::Slice(CredentialType.data(), CredentialType.size())
|
||||
getAccountIdWithString(kACCOUNT),
|
||||
getAccountIdWithString(kACCOUNT2),
|
||||
ripple::Slice(kCREDENTIAL_TYPE.data(), kCREDENTIAL_TYPE.size())
|
||||
)
|
||||
.key;
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT)).key, _, _))
|
||||
.WillByDefault(Return(account1Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(account2Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(credentialIndex, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(credentialIndex, _, _))
|
||||
.WillByDefault(Return(credential.getSerializer().peekData()));
|
||||
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(3);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(3);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -653,14 +657,14 @@ TEST_F(RPCDepositAuthorizedTest, CredentialNotAuthorizedReturnsFalse)
|
||||
"ledger_hash": "{}",
|
||||
"credentials": ["{}"]
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash,
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH,
|
||||
ripple::strHex(credentialIndex)
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_FALSE(output);
|
||||
@@ -672,35 +676,35 @@ TEST_F(RPCDepositAuthorizedTest, CredentialNotAuthorizedReturnsFalse)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, CredentialExpiredReturnsFalse)
|
||||
{
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30, 100);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30, 100);
|
||||
|
||||
// set parent close time to 500 seconds
|
||||
ledgerHeader.parentCloseTime = ripple::NetClock::time_point{std::chrono::seconds{500}};
|
||||
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillOnce(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillOnce(Return(ledgerHeader));
|
||||
|
||||
auto const account1Root = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
auto const account2Root = CreateAccountRootObject(Account2, ripple::lsfDepositAuth, 2, 200, 2, Index2, 2);
|
||||
auto const account1Root = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
auto const account2Root = createAccountRootObject(kACCOUNT2, ripple::lsfDepositAuth, 2, 200, 2, kINDEX2, 2);
|
||||
|
||||
// credential expire time is 23 seconds, so credential will fail
|
||||
auto const expiredCredential = CreateCredentialObject(Account, Account2, CredentialType, true, 23);
|
||||
auto const expiredCredential = createCredentialObject(kACCOUNT, kACCOUNT2, kCREDENTIAL_TYPE, true, 23);
|
||||
|
||||
auto const credentialIndex = ripple::keylet::credential(
|
||||
GetAccountIDWithString(Account),
|
||||
GetAccountIDWithString(Account2),
|
||||
ripple::Slice(CredentialType.data(), CredentialType.size())
|
||||
getAccountIdWithString(kACCOUNT),
|
||||
getAccountIdWithString(kACCOUNT2),
|
||||
ripple::Slice(kCREDENTIAL_TYPE.data(), kCREDENTIAL_TYPE.size())
|
||||
)
|
||||
.key;
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT)).key, _, _))
|
||||
.WillByDefault(Return(account1Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(account2Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(credentialIndex, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(credentialIndex, _, _))
|
||||
.WillByDefault(Return(expiredCredential.getSerializer().peekData()));
|
||||
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(3);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(3);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -709,14 +713,14 @@ TEST_F(RPCDepositAuthorizedTest, CredentialExpiredReturnsFalse)
|
||||
"ledger_hash": "{}",
|
||||
"credentials": ["{}"]
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash,
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH,
|
||||
ripple::strHex(credentialIndex)
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_FALSE(output);
|
||||
@@ -728,29 +732,29 @@ TEST_F(RPCDepositAuthorizedTest, CredentialExpiredReturnsFalse)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, DuplicateCredentialsReturnsFalse)
|
||||
{
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30, 34);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30, 34);
|
||||
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillOnce(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillOnce(Return(ledgerHeader));
|
||||
|
||||
auto const account1Root = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
auto const account2Root = CreateAccountRootObject(Account2, ripple::lsfDepositAuth, 2, 200, 2, Index2, 2);
|
||||
auto const credential = CreateCredentialObject(Account, Account2, CredentialType);
|
||||
auto const account1Root = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
auto const account2Root = createAccountRootObject(kACCOUNT2, ripple::lsfDepositAuth, 2, 200, 2, kINDEX2, 2);
|
||||
auto const credential = createCredentialObject(kACCOUNT, kACCOUNT2, kCREDENTIAL_TYPE);
|
||||
auto const credentialIndex = ripple::keylet::credential(
|
||||
GetAccountIDWithString(Account),
|
||||
GetAccountIDWithString(Account2),
|
||||
ripple::Slice(CredentialType.data(), CredentialType.size())
|
||||
getAccountIdWithString(kACCOUNT),
|
||||
getAccountIdWithString(kACCOUNT2),
|
||||
ripple::Slice(kCREDENTIAL_TYPE.data(), kCREDENTIAL_TYPE.size())
|
||||
)
|
||||
.key;
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT)).key, _, _))
|
||||
.WillByDefault(Return(account1Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(account2Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(credentialIndex, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(credentialIndex, _, _))
|
||||
.WillByDefault(Return(credential.getSerializer().peekData()));
|
||||
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(3);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(3);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -759,15 +763,15 @@ TEST_F(RPCDepositAuthorizedTest, DuplicateCredentialsReturnsFalse)
|
||||
"ledger_hash": "{}",
|
||||
"credentials": ["{}", "{}"]
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash,
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH,
|
||||
ripple::strHex(credentialIndex),
|
||||
ripple::strHex(credentialIndex)
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_FALSE(output);
|
||||
@@ -779,20 +783,20 @@ TEST_F(RPCDepositAuthorizedTest, DuplicateCredentialsReturnsFalse)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, NoElementsInCredentialsReturnsFalse)
|
||||
{
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30, 34);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30, 34);
|
||||
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillOnce(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillOnce(Return(ledgerHeader));
|
||||
|
||||
auto const account1Root = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
auto const account2Root = CreateAccountRootObject(Account2, ripple::lsfDepositAuth, 2, 200, 2, Index2, 2);
|
||||
auto const account1Root = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
auto const account2Root = createAccountRootObject(kACCOUNT2, ripple::lsfDepositAuth, 2, 200, 2, kINDEX2, 2);
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT)).key, _, _))
|
||||
.WillByDefault(Return(account1Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(account2Root.getSerializer().peekData()));
|
||||
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(2);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(2);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -801,13 +805,13 @@ TEST_F(RPCDepositAuthorizedTest, NoElementsInCredentialsReturnsFalse)
|
||||
"ledger_hash": "{}",
|
||||
"credentials": []
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_FALSE(output);
|
||||
@@ -819,29 +823,29 @@ TEST_F(RPCDepositAuthorizedTest, NoElementsInCredentialsReturnsFalse)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, MoreThanMaxNumberOfCredentialsReturnsFalse)
|
||||
{
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30, 34);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30, 34);
|
||||
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillOnce(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillOnce(Return(ledgerHeader));
|
||||
|
||||
auto const account1Root = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
auto const account2Root = CreateAccountRootObject(Account2, ripple::lsfDepositAuth, 2, 200, 2, Index2, 2);
|
||||
auto const credential = CreateCredentialObject(Account, Account2, CredentialType);
|
||||
auto const account1Root = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
auto const account2Root = createAccountRootObject(kACCOUNT2, ripple::lsfDepositAuth, 2, 200, 2, kINDEX2, 2);
|
||||
auto const credential = createCredentialObject(kACCOUNT, kACCOUNT2, kCREDENTIAL_TYPE);
|
||||
auto const credentialIndex = ripple::keylet::credential(
|
||||
GetAccountIDWithString(Account),
|
||||
GetAccountIDWithString(Account2),
|
||||
ripple::Slice(CredentialType.data(), CredentialType.size())
|
||||
getAccountIdWithString(kACCOUNT),
|
||||
getAccountIdWithString(kACCOUNT2),
|
||||
ripple::Slice(kCREDENTIAL_TYPE.data(), kCREDENTIAL_TYPE.size())
|
||||
)
|
||||
.key;
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT)).key, _, _))
|
||||
.WillByDefault(Return(account1Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(account2Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(credentialIndex, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(credentialIndex, _, _))
|
||||
.WillByDefault(Return(credential.getSerializer().peekData()));
|
||||
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(2);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(2);
|
||||
|
||||
std::vector<std::string> credentials(9, ripple::strHex(credentialIndex));
|
||||
|
||||
@@ -852,9 +856,9 @@ TEST_F(RPCDepositAuthorizedTest, MoreThanMaxNumberOfCredentialsReturnsFalse)
|
||||
"ledger_hash": "{}",
|
||||
"credentials": [{}]
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash,
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH,
|
||||
fmt::join(
|
||||
credentials | std::views::transform([](std::string const& cred) { return fmt::format("\"{}\"", cred); }),
|
||||
", "
|
||||
@@ -862,7 +866,7 @@ TEST_F(RPCDepositAuthorizedTest, MoreThanMaxNumberOfCredentialsReturnsFalse)
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_FALSE(output);
|
||||
@@ -874,30 +878,30 @@ TEST_F(RPCDepositAuthorizedTest, MoreThanMaxNumberOfCredentialsReturnsFalse)
|
||||
|
||||
TEST_F(RPCDepositAuthorizedTest, DifferenSubjectAccountForCredentialReturnsFalse)
|
||||
{
|
||||
auto ledgerHeader = CreateLedgerHeader(LedgerHash, 30);
|
||||
auto ledgerHeader = createLedgerHeader(kLEDGER_HASH, 30);
|
||||
|
||||
EXPECT_CALL(*backend, fetchLedgerByHash(ripple::uint256{LedgerHash}, _)).WillOnce(Return(ledgerHeader));
|
||||
EXPECT_CALL(*backend_, fetchLedgerByHash(ripple::uint256{kLEDGER_HASH}, _)).WillOnce(Return(ledgerHeader));
|
||||
|
||||
auto const account1Root = CreateAccountRootObject(Account, 0, 2, 200, 2, Index1, 2);
|
||||
auto const account2Root = CreateAccountRootObject(Account2, ripple::lsfDepositAuth, 2, 200, 2, Index2, 2);
|
||||
auto const account1Root = createAccountRootObject(kACCOUNT, 0, 2, 200, 2, kINDEX1, 2);
|
||||
auto const account2Root = createAccountRootObject(kACCOUNT2, ripple::lsfDepositAuth, 2, 200, 2, kINDEX2, 2);
|
||||
|
||||
// reverse the subject and issuer account. Now subject is ACCOUNT2
|
||||
auto const credential = CreateCredentialObject(Account2, Account, CredentialType);
|
||||
// reverse the subject and issuer account. Now subject is Account2
|
||||
auto const credential = createCredentialObject(kACCOUNT2, kACCOUNT, kCREDENTIAL_TYPE);
|
||||
auto const credentialIndex = ripple::keylet::credential(
|
||||
GetAccountIDWithString(Account2),
|
||||
GetAccountIDWithString(Account),
|
||||
ripple::Slice(CredentialType.data(), CredentialType.size())
|
||||
getAccountIdWithString(kACCOUNT2),
|
||||
getAccountIdWithString(kACCOUNT),
|
||||
ripple::Slice(kCREDENTIAL_TYPE.data(), kCREDENTIAL_TYPE.size())
|
||||
)
|
||||
.key;
|
||||
|
||||
ON_CALL(*backend, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(_, _, _)).WillByDefault(Return(std::optional<Blob>{{1, 2, 3}}));
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT)).key, _, _))
|
||||
.WillByDefault(Return(account1Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(ripple::keylet::account(GetAccountIDWithString(Account2)).key, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(ripple::keylet::account(getAccountIdWithString(kACCOUNT2)).key, _, _))
|
||||
.WillByDefault(Return(account2Root.getSerializer().peekData()));
|
||||
ON_CALL(*backend, doFetchLedgerObject(credentialIndex, _, _))
|
||||
ON_CALL(*backend_, doFetchLedgerObject(credentialIndex, _, _))
|
||||
.WillByDefault(Return(credential.getSerializer().peekData()));
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject).Times(3);
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject).Times(3);
|
||||
|
||||
auto const input = json::parse(fmt::format(
|
||||
R"({{
|
||||
@@ -906,14 +910,14 @@ TEST_F(RPCDepositAuthorizedTest, DifferenSubjectAccountForCredentialReturnsFalse
|
||||
"ledger_hash": "{}",
|
||||
"credentials": ["{}"]
|
||||
}})",
|
||||
Account,
|
||||
Account2,
|
||||
LedgerHash,
|
||||
kACCOUNT,
|
||||
kACCOUNT2,
|
||||
kLEDGER_HASH,
|
||||
ripple::strHex(credentialIndex)
|
||||
));
|
||||
|
||||
runSpawn([&, this](auto yield) {
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend}};
|
||||
auto const handler = AnyHandler{DepositAuthorizedHandler{backend_}};
|
||||
auto const output = handler.process(input, Context{yield});
|
||||
|
||||
ASSERT_FALSE(output);
|
||||
|
||||
Reference in New Issue
Block a user