Return error when limit<=0 (#804)

Fix #806
This commit is contained in:
cyan317
2023-08-02 15:34:42 +01:00
committed by GitHub
parent 1804e3e9c0
commit c90bc15959
45 changed files with 832 additions and 562 deletions

View File

@@ -58,11 +58,16 @@ TEST_F(RPCBaseTest, CheckType)
ASSERT_TRUE(checkType<int32_t>(juint));
ASSERT_FALSE(checkType<bool>(juint));
auto const jint = json::value(123);
auto jint = json::value(123);
ASSERT_TRUE(checkType<int32_t>(jint));
ASSERT_TRUE(checkType<uint32_t>(jint));
ASSERT_FALSE(checkType<bool>(jint));
jint = json::value(-123);
ASSERT_TRUE(checkType<int32_t>(jint));
ASSERT_FALSE(checkType<uint32_t>(jint));
ASSERT_FALSE(checkType<bool>(jint));
auto const jbool = json::value(true);
ASSERT_TRUE(checkType<bool>(jbool));
ASSERT_FALSE(checkType<int>(jbool));
@@ -179,6 +184,38 @@ TEST_F(RPCBaseTest, BetweenValidator)
ASSERT_FALSE(spec.process(failingInput2));
}
TEST_F(RPCBaseTest, MinValidator)
{
auto spec = RpcSpec{
{"amount", Min{6}},
};
auto passingInput = json::parse(R"({ "amount": 7 })");
ASSERT_TRUE(spec.process(passingInput));
auto passingInput2 = json::parse(R"({ "amount": 6 })");
ASSERT_TRUE(spec.process(passingInput2));
auto failingInput = json::parse(R"({ "amount": 5 })");
ASSERT_FALSE(spec.process(failingInput));
}
TEST_F(RPCBaseTest, MaxValidator)
{
auto spec = RpcSpec{
{"amount", Max{6}},
};
auto passingInput = json::parse(R"({ "amount": 5 })");
ASSERT_TRUE(spec.process(passingInput));
auto passingInput2 = json::parse(R"({ "amount": 6 })");
ASSERT_TRUE(spec.process(passingInput2));
auto failingInput = json::parse(R"({ "amount": 7 })");
ASSERT_FALSE(spec.process(failingInput));
}
TEST_F(RPCBaseTest, OneOfValidator)
{
auto spec = RpcSpec{