Mercurial > code
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 |