change test cases
This commit is contained in:
parent
8aaa4013a3
commit
f466919ec2
1 changed files with 2 additions and 39 deletions
|
@ -148,45 +148,6 @@ TEST_CASE("element access 2")
|
||||||
|
|
||||||
SECTION("access specified element with default value")
|
SECTION("access specified element with default value")
|
||||||
{
|
{
|
||||||
SECTION("move semantics")
|
|
||||||
{
|
|
||||||
SECTION("json is rvalue")
|
|
||||||
{
|
|
||||||
json j = {{"x", "123"}};
|
|
||||||
std::string defval = "default";
|
|
||||||
auto val = std::move(j).value("x", defval);
|
|
||||||
|
|
||||||
CHECK(j["x"] == "");
|
|
||||||
CHECK(defval == "default");
|
|
||||||
CHECK(val == "123");
|
|
||||||
}
|
|
||||||
|
|
||||||
SECTION("default is rvalue")
|
|
||||||
{
|
|
||||||
json j = {{"x", "123"}};
|
|
||||||
std::string defval = "default";
|
|
||||||
auto val = std::move(j).value("y", std::move(defval));
|
|
||||||
|
|
||||||
CHECK(j["x"] == "123");
|
|
||||||
CHECK(defval == "");
|
|
||||||
CHECK(val == "default");
|
|
||||||
}
|
|
||||||
|
|
||||||
SECTION("access on non-object value")
|
|
||||||
{
|
|
||||||
json j_nonobject(json::value_t::array);
|
|
||||||
const json j_nonobject_const(j_nonobject);
|
|
||||||
std::string defval = "default";
|
|
||||||
|
|
||||||
CHECK_THROWS_AS(std::move(j_nonobject).value("foo", defval), json::type_error&);
|
|
||||||
CHECK_THROWS_AS(std::move(j_nonobject_const).value("foo", defval), json::type_error&);
|
|
||||||
CHECK_THROWS_WITH(std::move(j_nonobject).value("foo", defval),
|
|
||||||
"[json.exception.type_error.306] cannot use value() with array");
|
|
||||||
CHECK_THROWS_WITH(std::move(j_nonobject_const).value("foo", defval),
|
|
||||||
"[json.exception.type_error.306] cannot use value() with array");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SECTION("given a key")
|
SECTION("given a key")
|
||||||
{
|
{
|
||||||
SECTION("access existing value")
|
SECTION("access existing value")
|
||||||
|
@ -226,6 +187,7 @@ TEST_CASE("element access 2")
|
||||||
CHECK(j.value("_", 12.34) == Approx(12.34));
|
CHECK(j.value("_", 12.34) == Approx(12.34));
|
||||||
CHECK(j.value("_", json({{"foo", "bar"}})) == json({{"foo", "bar"}}));
|
CHECK(j.value("_", json({{"foo", "bar"}})) == json({{"foo", "bar"}}));
|
||||||
CHECK(j.value("_", json({10, 100})) == json({10, 100}));
|
CHECK(j.value("_", json({10, 100})) == json({10, 100}));
|
||||||
|
CHECK(j.value("_", std::move("default_value")) == "default_value");
|
||||||
|
|
||||||
CHECK(j_const.value("_", 2) == 2);
|
CHECK(j_const.value("_", 2) == 2);
|
||||||
CHECK(j_const.value("_", 2u) == 2u);
|
CHECK(j_const.value("_", 2u) == 2u);
|
||||||
|
@ -234,6 +196,7 @@ TEST_CASE("element access 2")
|
||||||
CHECK(j_const.value("_", 12.34) == Approx(12.34));
|
CHECK(j_const.value("_", 12.34) == Approx(12.34));
|
||||||
CHECK(j_const.value("_", json({{"foo", "bar"}})) == json({{"foo", "bar"}}));
|
CHECK(j_const.value("_", json({{"foo", "bar"}})) == json({{"foo", "bar"}}));
|
||||||
CHECK(j_const.value("_", json({10, 100})) == json({10, 100}));
|
CHECK(j_const.value("_", json({10, 100})) == json({10, 100}));
|
||||||
|
CHECK(j_const.value("_", std::move("default_value")) == "default_value");
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("access on non-object type")
|
SECTION("access on non-object type")
|
||||||
|
|
Loading…
Reference in a new issue