diff --git a/tests/test_find_or.cpp b/tests/test_find_or.cpp index 09e1e2e..fe4292d 100644 --- a/tests/test_find_or.cpp +++ b/tests/test_find_or.cpp @@ -358,3 +358,36 @@ BOOST_AUTO_TEST_CASE(test_find_or_string) BOOST_TEST("bazqux" == toml::find_or(v2, "key", lit)); } } + +BOOST_AUTO_TEST_CASE(test_find_or_map) +{ + using map_type = std::map; + { + const toml::value v1{ + {"key", {{"key", "value"}}} + }; + + const auto key = toml::find_or(v1, "key", map_type{}); + const auto key2 = toml::find_or(v1, "key2", map_type{}); + + BOOST_TEST(!key.empty()); + BOOST_TEST(key2.empty()); + + BOOST_TEST(key.size() == 1u); + BOOST_TEST(key.at("key") == "value"); + } + { + const toml::value v1{ + {"key", {{"key", "value"}}} + }; + + const auto key = toml::find_or(v1, "key", map_type{}); + const auto key2 = toml::find_or(v1, "key2", map_type{}); + + BOOST_TEST(!key.empty()); + BOOST_TEST(key2.empty()); + + BOOST_TEST(key.size() == 1u); + BOOST_TEST(key.at("key") == "value"); + } +}