diff --git a/tests/test_value.cpp b/tests/test_value.cpp index c2f02db..927decf 100644 --- a/tests/test_value.cpp +++ b/tests/test_value.cpp @@ -966,3 +966,54 @@ BOOST_AUTO_TEST_CASE(test_value_bracket) BOOST_CHECK_THROW(v1["foo"], toml::type_error); } } + +BOOST_AUTO_TEST_CASE(test_value_map_methods) +{ + { + toml::value v1{{"foo", 42}, {"bar", 3.14}, {"baz", "qux"}}; + + BOOST_TEST(v1.count("foo") == 1u); + BOOST_TEST(v1.count("bar") == 1u); + BOOST_TEST(v1.count("baz") == 1u); + BOOST_TEST(v1.count("qux") == 0u); + + BOOST_TEST( v1.contains("foo")); + BOOST_TEST( v1.contains("bar")); + BOOST_TEST( v1.contains("baz")); + BOOST_TEST(!v1.contains("qux")); + + BOOST_TEST(v1.size() == 3); + + v1["qux"] = 54; + BOOST_TEST(v1.count("qux") == 1u); + BOOST_TEST(v1.contains("qux")); + BOOST_TEST(v1.size() == 4); + } + { + toml::value v1(42); + BOOST_CHECK_THROW(v1.size() , toml::type_error); + BOOST_CHECK_THROW(v1.count("k") , toml::type_error); + BOOST_CHECK_THROW(v1.contains("k"), toml::type_error); + } +} + +BOOST_AUTO_TEST_CASE(test_value_vector_methods) +{ + { + toml::value v1{1, 2, 3, 4, 5}; + + BOOST_TEST(v1.size() == 5); + + v1.push_back(6); + BOOST_TEST(v1.size() == 6); + + v1.emplace_back(6); + BOOST_TEST(v1.size() == 7); + } + { + toml::value v1(42); + BOOST_CHECK_THROW(v1.size(), toml::type_error); + BOOST_CHECK_THROW(v1.push_back(1), toml::type_error); + BOOST_CHECK_THROW(v1.emplace_back(1), toml::type_error); + } +}