diff --git a/test/src/unit-element_access2.cpp b/test/src/unit-element_access2.cpp index 6df0ca59a..d2a191087 100644 --- a/test/src/unit-element_access2.cpp +++ b/test/src/unit-element_access2.cpp @@ -148,45 +148,6 @@ TEST_CASE("element access 2") 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("access existing value") @@ -226,6 +187,7 @@ TEST_CASE("element access 2") CHECK(j.value("_", 12.34) == Approx(12.34)); CHECK(j.value("_", json({{"foo", "bar"}})) == json({{"foo", "bar"}})); 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("_", 2u) == 2u); @@ -234,6 +196,7 @@ TEST_CASE("element access 2") CHECK(j_const.value("_", 12.34) == Approx(12.34)); CHECK(j_const.value("_", json({{"foo", "bar"}})) == json({{"foo", "bar"}})); 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")