diff cpp/json_util/test/main.cpp @ 656:734ce3a26a58

json_util: upgrade to 3.5.0 and add string_view overload
author David Demelier <markand@malikania.fr>
date Mon, 21 Jan 2019 20:45:02 +0100
parents 87e1f4c7da76
children 66015e773085
line wrap: on
line diff
--- a/cpp/json_util/test/main.cpp	Mon Jan 21 20:39:31 2019 +0100
+++ b/cpp/json_util/test/main.cpp	Mon Jan 21 20:45:02 2019 +0100
@@ -81,6 +81,17 @@
 	BOOST_TEST(!document_.get<std::string>("uint"));
 }
 
+BOOST_AUTO_TEST_CASE(string_view)
+{
+	const auto v = document_.get<std::string_view>("string");
+
+	BOOST_TEST(v.has_value());
+	BOOST_TEST(*v == "str");
+	BOOST_TEST(!document_.get<std::string_view>("bool"));
+	BOOST_TEST(!document_.get<std::string_view>("int"));
+	BOOST_TEST(!document_.get<std::string_view>("uint"));
+}
+
 BOOST_AUTO_TEST_SUITE_END()
 
 BOOST_AUTO_TEST_SUITE(optional_not_present)
@@ -106,6 +117,11 @@
 	BOOST_TEST(*document_.optional<std::string>("undefined", "foo") == "foo");
 }
 
+BOOST_AUTO_TEST_CASE(string_view)
+{
+	BOOST_TEST(*document_.optional<std::string_view>("undefined", "foo") == "foo");
+}
+
 BOOST_AUTO_TEST_SUITE_END()
 
 BOOST_AUTO_TEST_SUITE(optional_invalid)
@@ -137,6 +153,13 @@
 	BOOST_TEST(!document_.optional<std::string>("uint", "foo"));
 }
 
+BOOST_AUTO_TEST_CASE(string_view)
+{
+	BOOST_TEST(!document_.optional<std::string_view>("boolean", "foo"));
+	BOOST_TEST(!document_.optional<std::string_view>("int", "foo"));
+	BOOST_TEST(!document_.optional<std::string_view>("uint", "foo"));
+}
+
 BOOST_AUTO_TEST_SUITE_END()
 
 BOOST_AUTO_TEST_SUITE(get_or)
@@ -169,6 +192,13 @@
 	BOOST_TEST(document_.get_or<std::string>("undefined", "hello") == "hello");
 }
 
+BOOST_AUTO_TEST_CASE(string_view)
+{
+	BOOST_TEST(document_.get_or<std::string_view>("string", "hello") == "str");
+	BOOST_TEST(document_.get_or<std::string_view>("boolean", "hello") == "hello");
+	BOOST_TEST(document_.get_or<std::string_view>("undefined", "hello") == "hello");
+}
+
 BOOST_AUTO_TEST_SUITE_END()
 
 BOOST_AUTO_TEST_SUITE_END()