|
|
|
|
@@ -140,10 +140,17 @@ class Feature_test : public beast::unit_test::suite
|
|
|
|
|
feature.isMember(jss::enabled) && !feature[jss::enabled].asBool(),
|
|
|
|
|
feature[jss::name].asString() + " enabled");
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
feature.isMember(jss::vetoed) && feature[jss::vetoed].isBool() == !expectObsolete &&
|
|
|
|
|
(!feature[jss::vetoed].isBool() || feature[jss::vetoed].asBool() == expectVeto) &&
|
|
|
|
|
(feature[jss::vetoed].isBool() || feature[jss::vetoed].asString() == "Obsolete"),
|
|
|
|
|
feature[jss::name].asString() + " vetoed");
|
|
|
|
|
feature.isMember(jss::vetoed) && feature[jss::vetoed].isBool(),
|
|
|
|
|
feature[jss::name].asString() + " vetoed is bool");
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
feature[jss::vetoed].asBool() == (expectVeto || expectObsolete),
|
|
|
|
|
feature[jss::name].asString() + " vetoed value");
|
|
|
|
|
if (expectObsolete)
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
feature.isMember(jss::obsolete) && feature[jss::obsolete].asBool() == true,
|
|
|
|
|
feature[jss::name].asString() + " obsolete");
|
|
|
|
|
else
|
|
|
|
|
BEAST_EXPECTS(!feature.isMember(jss::obsolete), feature[jss::name].asString() + " no obsolete");
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
feature.isMember(jss::supported) && feature[jss::supported].asBool(),
|
|
|
|
|
feature[jss::name].asString() + " supported");
|
|
|
|
|
@@ -242,6 +249,7 @@ class Feature_test : public beast::unit_test::suite
|
|
|
|
|
(*it).isMember(jss::supported) && (*it)[jss::supported].asBool() == expectSupported,
|
|
|
|
|
(*it)[jss::name].asString() + " supported");
|
|
|
|
|
BEAST_EXPECT(!(*it).isMember(jss::vetoed));
|
|
|
|
|
BEAST_EXPECT(!(*it).isMember(jss::obsolete));
|
|
|
|
|
BEAST_EXPECT(!(*it).isMember(jss::majority));
|
|
|
|
|
BEAST_EXPECT(!(*it).isMember(jss::count));
|
|
|
|
|
BEAST_EXPECT(!(*it).isMember(jss::validations));
|
|
|
|
|
@@ -302,11 +310,20 @@ class Feature_test : public beast::unit_test::suite
|
|
|
|
|
if (expectEnabled)
|
|
|
|
|
BEAST_EXPECTS(!(*it).isMember(jss::vetoed), (*it)[jss::name].asString() + " vetoed");
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
(*it).isMember(jss::vetoed) && (*it)[jss::vetoed].isBool() == !expectObsolete &&
|
|
|
|
|
(!(*it)[jss::vetoed].isBool() || (*it)[jss::vetoed].asBool() == expectVeto) &&
|
|
|
|
|
((*it)[jss::vetoed].isBool() || (*it)[jss::vetoed].asString() == "Obsolete"),
|
|
|
|
|
(*it)[jss::name].asString() + " vetoed");
|
|
|
|
|
(*it).isMember(jss::vetoed) && (*it)[jss::vetoed].isBool(),
|
|
|
|
|
(*it)[jss::name].asString() + " vetoed is bool");
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
(*it)[jss::vetoed].asBool() == (expectVeto || expectObsolete),
|
|
|
|
|
(*it)[jss::name].asString() + " vetoed value");
|
|
|
|
|
if (expectObsolete)
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
(*it).isMember(jss::obsolete) && (*it)[jss::obsolete].asBool() == true,
|
|
|
|
|
(*it)[jss::name].asString() + " obsolete");
|
|
|
|
|
else
|
|
|
|
|
BEAST_EXPECTS(!(*it).isMember(jss::obsolete), (*it)[jss::name].asString() + " no obsolete");
|
|
|
|
|
}
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
(*it).isMember(jss::supported) && (*it)[jss::supported].asBool() == expectSupported,
|
|
|
|
|
(*it)[jss::name].asString() + " supported");
|
|
|
|
|
@@ -369,10 +386,17 @@ class Feature_test : public beast::unit_test::suite
|
|
|
|
|
(expectVeto || expectObsolete) ^ feature.isMember(jss::majority),
|
|
|
|
|
feature[jss::name].asString() + " majority");
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
feature.isMember(jss::vetoed) && feature[jss::vetoed].isBool() == !expectObsolete &&
|
|
|
|
|
(!feature[jss::vetoed].isBool() || feature[jss::vetoed].asBool() == expectVeto) &&
|
|
|
|
|
(feature[jss::vetoed].isBool() || feature[jss::vetoed].asString() == "Obsolete"),
|
|
|
|
|
feature[jss::name].asString() + " vetoed");
|
|
|
|
|
feature.isMember(jss::vetoed) && feature[jss::vetoed].isBool(),
|
|
|
|
|
feature[jss::name].asString() + " vetoed is bool");
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
feature[jss::vetoed].asBool() == (expectVeto || expectObsolete),
|
|
|
|
|
feature[jss::name].asString() + " vetoed value");
|
|
|
|
|
if (expectObsolete)
|
|
|
|
|
BEAST_EXPECTS(
|
|
|
|
|
feature.isMember(jss::obsolete) && feature[jss::obsolete].asBool() == true,
|
|
|
|
|
feature[jss::name].asString() + " obsolete");
|
|
|
|
|
else
|
|
|
|
|
BEAST_EXPECTS(!feature.isMember(jss::obsolete), feature[jss::name].asString() + " no obsolete");
|
|
|
|
|
BEAST_EXPECTS(feature.isMember(jss::count), feature[jss::name].asString() + " count");
|
|
|
|
|
BEAST_EXPECTS(feature.isMember(jss::threshold), feature[jss::name].asString() + " threshold");
|
|
|
|
|
BEAST_EXPECTS(feature.isMember(jss::validations), feature[jss::name].asString() + " validations");
|
|
|
|
|
@@ -460,7 +484,8 @@ class Feature_test : public beast::unit_test::suite
|
|
|
|
|
return;
|
|
|
|
|
auto feature = *(jrr.begin());
|
|
|
|
|
BEAST_EXPECTS(feature[jss::name] == featureName, "name");
|
|
|
|
|
BEAST_EXPECTS(feature[jss::vetoed].isString() && feature[jss::vetoed].asString() == "Obsolete", "vetoed");
|
|
|
|
|
BEAST_EXPECTS(feature[jss::vetoed].isBool() && feature[jss::vetoed].asBool() == true, "vetoed");
|
|
|
|
|
BEAST_EXPECTS(feature[jss::obsolete].isBool() && feature[jss::obsolete].asBool() == true, "obsolete");
|
|
|
|
|
|
|
|
|
|
jrr = env.rpc("feature", featureName, "reject")[jss::result];
|
|
|
|
|
if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
|
|
|
|
|
@@ -470,7 +495,8 @@ class Feature_test : public beast::unit_test::suite
|
|
|
|
|
return;
|
|
|
|
|
feature = *(jrr.begin());
|
|
|
|
|
BEAST_EXPECTS(feature[jss::name] == featureName, "name");
|
|
|
|
|
BEAST_EXPECTS(feature[jss::vetoed].isString() && feature[jss::vetoed].asString() == "Obsolete", "vetoed");
|
|
|
|
|
BEAST_EXPECTS(feature[jss::vetoed].isBool() && feature[jss::vetoed].asBool() == true, "vetoed");
|
|
|
|
|
BEAST_EXPECTS(feature[jss::obsolete].isBool() && feature[jss::obsolete].asBool() == true, "obsolete");
|
|
|
|
|
|
|
|
|
|
jrr = env.rpc("feature", featureName, "accept")[jss::result];
|
|
|
|
|
if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
|
|
|
|
|
@@ -480,7 +506,8 @@ class Feature_test : public beast::unit_test::suite
|
|
|
|
|
return;
|
|
|
|
|
feature = *(jrr.begin());
|
|
|
|
|
BEAST_EXPECTS(feature[jss::name] == featureName, "name");
|
|
|
|
|
BEAST_EXPECTS(feature[jss::vetoed].isString() && feature[jss::vetoed].asString() == "Obsolete", "vetoed");
|
|
|
|
|
BEAST_EXPECTS(feature[jss::vetoed].isBool() && feature[jss::vetoed].asBool() == true, "vetoed");
|
|
|
|
|
BEAST_EXPECTS(feature[jss::obsolete].isBool() && feature[jss::obsolete].asBool() == true, "obsolete");
|
|
|
|
|
|
|
|
|
|
// anything other than accept or reject is an error
|
|
|
|
|
jrr = env.rpc("feature", featureName, "maybe");
|
|
|
|
|
|