Fixs #609 #610 #611
This commit is contained in:
cyan317
2023-05-24 15:38:27 +01:00
committed by GitHub
parent aace437245
commit c50174235f
2 changed files with 7 additions and 10 deletions

View File

@@ -706,8 +706,8 @@ traverseOwnedNodes(
if (auto const& indexes = sle.getFieldV256(ripple::sfIndexes); if (auto const& indexes = sle.getFieldV256(ripple::sfIndexes);
std::find(std::begin(indexes), std::end(indexes), hexMarker) == std::end(indexes)) std::find(std::begin(indexes), std::end(indexes), hexMarker) == std::end(indexes))
{ {
// result in empty dataset // the index specified by marker is not in the page specified by marker
return AccountCursor({beast::zero, 0}); return Status(ripple::rpcINVALID_PARAMS, "Invalid marker");
} }
currentIndex = hintIndex; currentIndex = hintIndex;

View File

@@ -311,7 +311,7 @@ TEST_F(RPCHelpersTest, TraverseOwnedNodesWithMarkerReturnSamePageMarker)
} }
// Send a valid marker, but marker contain an unexisting index // Send a valid marker, but marker contain an unexisting index
// return empty // return invalid params error
TEST_F(RPCHelpersTest, TraverseOwnedNodesWithUnexistingIndexMarker) TEST_F(RPCHelpersTest, TraverseOwnedNodesWithUnexistingIndexMarker)
{ {
MockBackend* rawBackendPtr = static_cast<MockBackend*>(mockBackendPtr.get()); MockBackend* rawBackendPtr = static_cast<MockBackend*>(mockBackendPtr.get());
@@ -345,13 +345,10 @@ TEST_F(RPCHelpersTest, TraverseOwnedNodesWithUnexistingIndexMarker)
auto count = 0; auto count = 0;
auto ret = traverseOwnedNodes( auto ret = traverseOwnedNodes(
*mockBackendPtr, account, 9, limit, fmt::format("{},{}", INDEX2, pageNum), yield, [&](auto) { count++; }); *mockBackendPtr, account, 9, limit, fmt::format("{},{}", INDEX2, pageNum), yield, [&](auto) { count++; });
auto cursor = std::get_if<AccountCursor>(&ret); auto status = std::get_if<Status>(&ret);
EXPECT_TRUE(cursor != nullptr); EXPECT_TRUE(status != nullptr);
EXPECT_EQ(count, 0); EXPECT_EQ(*status, ripple::rpcINVALID_PARAMS);
EXPECT_EQ( EXPECT_EQ(status->message, "Invalid marker");
cursor->toString(),
"00000000000000000000000000000000000000000000000000000000000000"
"00,0");
}); });
ctx.run(); ctx.run();
} }