comparison 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
comparison
equal deleted inserted replaced
655:a0239cca29fa 656:734ce3a26a58
79 BOOST_TEST(!document_.get<std::string>("bool")); 79 BOOST_TEST(!document_.get<std::string>("bool"));
80 BOOST_TEST(!document_.get<std::string>("int")); 80 BOOST_TEST(!document_.get<std::string>("int"));
81 BOOST_TEST(!document_.get<std::string>("uint")); 81 BOOST_TEST(!document_.get<std::string>("uint"));
82 } 82 }
83 83
84 BOOST_AUTO_TEST_CASE(string_view)
85 {
86 const auto v = document_.get<std::string_view>("string");
87
88 BOOST_TEST(v.has_value());
89 BOOST_TEST(*v == "str");
90 BOOST_TEST(!document_.get<std::string_view>("bool"));
91 BOOST_TEST(!document_.get<std::string_view>("int"));
92 BOOST_TEST(!document_.get<std::string_view>("uint"));
93 }
94
84 BOOST_AUTO_TEST_SUITE_END() 95 BOOST_AUTO_TEST_SUITE_END()
85 96
86 BOOST_AUTO_TEST_SUITE(optional_not_present) 97 BOOST_AUTO_TEST_SUITE(optional_not_present)
87 98
88 BOOST_AUTO_TEST_CASE(boolean) 99 BOOST_AUTO_TEST_CASE(boolean)
102 } 113 }
103 114
104 BOOST_AUTO_TEST_CASE(string) 115 BOOST_AUTO_TEST_CASE(string)
105 { 116 {
106 BOOST_TEST(*document_.optional<std::string>("undefined", "foo") == "foo"); 117 BOOST_TEST(*document_.optional<std::string>("undefined", "foo") == "foo");
118 }
119
120 BOOST_AUTO_TEST_CASE(string_view)
121 {
122 BOOST_TEST(*document_.optional<std::string_view>("undefined", "foo") == "foo");
107 } 123 }
108 124
109 BOOST_AUTO_TEST_SUITE_END() 125 BOOST_AUTO_TEST_SUITE_END()
110 126
111 BOOST_AUTO_TEST_SUITE(optional_invalid) 127 BOOST_AUTO_TEST_SUITE(optional_invalid)
135 BOOST_TEST(!document_.optional<std::string>("boolean", "foo")); 151 BOOST_TEST(!document_.optional<std::string>("boolean", "foo"));
136 BOOST_TEST(!document_.optional<std::string>("int", "foo")); 152 BOOST_TEST(!document_.optional<std::string>("int", "foo"));
137 BOOST_TEST(!document_.optional<std::string>("uint", "foo")); 153 BOOST_TEST(!document_.optional<std::string>("uint", "foo"));
138 } 154 }
139 155
156 BOOST_AUTO_TEST_CASE(string_view)
157 {
158 BOOST_TEST(!document_.optional<std::string_view>("boolean", "foo"));
159 BOOST_TEST(!document_.optional<std::string_view>("int", "foo"));
160 BOOST_TEST(!document_.optional<std::string_view>("uint", "foo"));
161 }
162
140 BOOST_AUTO_TEST_SUITE_END() 163 BOOST_AUTO_TEST_SUITE_END()
141 164
142 BOOST_AUTO_TEST_SUITE(get_or) 165 BOOST_AUTO_TEST_SUITE(get_or)
143 166
144 BOOST_AUTO_TEST_CASE(boolean) 167 BOOST_AUTO_TEST_CASE(boolean)
167 BOOST_TEST(document_.get_or<std::string>("string", "hello") == "str"); 190 BOOST_TEST(document_.get_or<std::string>("string", "hello") == "str");
168 BOOST_TEST(document_.get_or<std::string>("boolean", "hello") == "hello"); 191 BOOST_TEST(document_.get_or<std::string>("boolean", "hello") == "hello");
169 BOOST_TEST(document_.get_or<std::string>("undefined", "hello") == "hello"); 192 BOOST_TEST(document_.get_or<std::string>("undefined", "hello") == "hello");
170 } 193 }
171 194
195 BOOST_AUTO_TEST_CASE(string_view)
196 {
197 BOOST_TEST(document_.get_or<std::string_view>("string", "hello") == "str");
198 BOOST_TEST(document_.get_or<std::string_view>("boolean", "hello") == "hello");
199 BOOST_TEST(document_.get_or<std::string_view>("undefined", "hello") == "hello");
200 }
201
172 BOOST_AUTO_TEST_SUITE_END() 202 BOOST_AUTO_TEST_SUITE_END()
173 203
174 BOOST_AUTO_TEST_SUITE_END() 204 BOOST_AUTO_TEST_SUITE_END()
175 205
176 } // !json_util 206 } // !json_util