mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-19 11:15:50 +00:00
@@ -38,10 +38,10 @@
|
||||
|
||||
using namespace data;
|
||||
|
||||
constexpr auto SEQ = 30u;
|
||||
constexpr auto kSEQ = 30u;
|
||||
|
||||
struct AmendmentCenterTest : util::prometheus::WithPrometheus, MockBackendTest, SyncAsioContextTest {
|
||||
AmendmentCenter amendmentCenter{backend};
|
||||
AmendmentCenter amendmentCenter{backend_};
|
||||
};
|
||||
|
||||
// This is a safety net test that will fail anytime we built Clio against a new libXRPL that added some Amendment that
|
||||
@@ -77,24 +77,24 @@ TEST_F(AmendmentCenterTest, IsEnabled)
|
||||
EXPECT_TRUE(amendmentCenter.isSupported("fixUniversalNumber"));
|
||||
EXPECT_FALSE(amendmentCenter.isSupported("unknown"));
|
||||
|
||||
auto const amendments = CreateAmendmentsObject({Amendments::fixUniversalNumber});
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject(ripple::keylet::amendments().key, SEQ, testing::_))
|
||||
auto const amendments = createAmendmentsObject({Amendments::fixUniversalNumber});
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject(ripple::keylet::amendments().key, kSEQ, testing::_))
|
||||
.WillRepeatedly(testing::Return(amendments.getSerializer().peekData()));
|
||||
|
||||
EXPECT_TRUE(amendmentCenter.isEnabled("fixUniversalNumber", SEQ));
|
||||
EXPECT_FALSE(amendmentCenter.isEnabled("unknown", SEQ));
|
||||
EXPECT_FALSE(amendmentCenter.isEnabled("ImmediateOfferKilled", SEQ));
|
||||
EXPECT_TRUE(amendmentCenter.isEnabled("fixUniversalNumber", kSEQ));
|
||||
EXPECT_FALSE(amendmentCenter.isEnabled("unknown", kSEQ));
|
||||
EXPECT_FALSE(amendmentCenter.isEnabled("ImmediateOfferKilled", kSEQ));
|
||||
}
|
||||
|
||||
TEST_F(AmendmentCenterTest, IsMultipleEnabled)
|
||||
{
|
||||
auto const amendments = CreateAmendmentsObject({Amendments::fixUniversalNumber});
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject(ripple::keylet::amendments().key, SEQ, testing::_))
|
||||
auto const amendments = createAmendmentsObject({Amendments::fixUniversalNumber});
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject(ripple::keylet::amendments().key, kSEQ, testing::_))
|
||||
.WillOnce(testing::Return(amendments.getSerializer().peekData()));
|
||||
|
||||
runSpawn([this](auto yield) {
|
||||
std::vector<data::AmendmentKey> const keys{"fixUniversalNumber", "unknown", "ImmediateOfferKilled"};
|
||||
auto const result = amendmentCenter.isEnabled(yield, keys, SEQ);
|
||||
auto const result = amendmentCenter.isEnabled(yield, keys, kSEQ);
|
||||
|
||||
EXPECT_EQ(result.size(), keys.size());
|
||||
EXPECT_TRUE(result.at(0));
|
||||
@@ -105,12 +105,12 @@ TEST_F(AmendmentCenterTest, IsMultipleEnabled)
|
||||
|
||||
TEST_F(AmendmentCenterTest, IsEnabledThrowsWhenUnavailable)
|
||||
{
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject(ripple::keylet::amendments().key, SEQ, testing::_))
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject(ripple::keylet::amendments().key, kSEQ, testing::_))
|
||||
.WillOnce(testing::Return(std::nullopt));
|
||||
|
||||
runSpawn([this](auto yield) {
|
||||
EXPECT_THROW(
|
||||
{ [[maybe_unused]] auto const result = amendmentCenter.isEnabled(yield, "irrelevant", SEQ); },
|
||||
{ [[maybe_unused]] auto const result = amendmentCenter.isEnabled(yield, "irrelevant", kSEQ); },
|
||||
std::runtime_error
|
||||
);
|
||||
});
|
||||
@@ -118,22 +118,22 @@ TEST_F(AmendmentCenterTest, IsEnabledThrowsWhenUnavailable)
|
||||
|
||||
TEST_F(AmendmentCenterTest, IsEnabledReturnsFalseWhenNoAmendments)
|
||||
{
|
||||
auto const amendments = CreateBrokenAmendmentsObject();
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject(ripple::keylet::amendments().key, SEQ, testing::_))
|
||||
auto const amendments = createBrokenAmendmentsObject();
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject(ripple::keylet::amendments().key, kSEQ, testing::_))
|
||||
.WillOnce(testing::Return(amendments.getSerializer().peekData()));
|
||||
|
||||
runSpawn([this](auto yield) { EXPECT_FALSE(amendmentCenter.isEnabled(yield, "irrelevant", SEQ)); });
|
||||
runSpawn([this](auto yield) { EXPECT_FALSE(amendmentCenter.isEnabled(yield, "irrelevant", kSEQ)); });
|
||||
}
|
||||
|
||||
TEST_F(AmendmentCenterTest, IsEnabledReturnsVectorOfFalseWhenNoAmendments)
|
||||
{
|
||||
auto const amendments = CreateBrokenAmendmentsObject();
|
||||
EXPECT_CALL(*backend, doFetchLedgerObject(ripple::keylet::amendments().key, SEQ, testing::_))
|
||||
auto const amendments = createBrokenAmendmentsObject();
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject(ripple::keylet::amendments().key, kSEQ, testing::_))
|
||||
.WillOnce(testing::Return(amendments.getSerializer().peekData()));
|
||||
|
||||
runSpawn([this](auto yield) {
|
||||
std::vector<data::AmendmentKey> const keys{"fixUniversalNumber", "ImmediateOfferKilled"};
|
||||
auto const vec = amendmentCenter.isEnabled(yield, keys, SEQ);
|
||||
auto const vec = amendmentCenter.isEnabled(yield, keys, kSEQ);
|
||||
|
||||
EXPECT_EQ(vec.size(), keys.size());
|
||||
EXPECT_TRUE(std::ranges::all_of(vec, [](bool val) { return val == false; }));
|
||||
@@ -145,7 +145,7 @@ TEST(AmendmentTest, GenerateAmendmentId)
|
||||
// https://xrpl.org/known-amendments.html#disallowincoming refer to the published id
|
||||
EXPECT_EQ(
|
||||
ripple::uint256("47C3002ABA31628447E8E9A8B315FAA935CE30183F9A9B86845E469CA2CDC3DF"),
|
||||
Amendment::GetAmendmentId("DisallowIncoming")
|
||||
Amendment::getAmendmentId("DisallowIncoming")
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user