Mercurial > irccd
comparison tests/src/libcommon/string-util/main.cpp @ 773:8c44bbcbbab9
Misc: style, cleanup and update
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 26 Oct 2018 13:01:00 +0200 |
parents | 35c1517d705d |
children |
comparison
equal
deleted
inserted
replaced
772:f5ccf65ae929 | 773:8c44bbcbbab9 |
---|---|
32 */ | 32 */ |
33 BOOST_AUTO_TEST_SUITE(format) | 33 BOOST_AUTO_TEST_SUITE(format) |
34 | 34 |
35 BOOST_AUTO_TEST_CASE(nothing) | 35 BOOST_AUTO_TEST_CASE(nothing) |
36 { | 36 { |
37 std::string expected = "hello world!"; | 37 std::string expected = "hello world!"; |
38 std::string result = string_util::format("hello world!"); | 38 std::string result = string_util::format("hello world!"); |
39 | 39 |
40 BOOST_TEST(expected == result); | 40 BOOST_TEST(expected == result); |
41 } | 41 } |
42 | 42 |
43 BOOST_AUTO_TEST_CASE(escape) | 43 BOOST_AUTO_TEST_CASE(escape) |
44 { | 44 { |
45 string_util::subst params; | 45 string_util::subst params; |
46 | 46 |
47 params.keywords.emplace("target", "hello"); | 47 params.keywords.emplace("target", "hello"); |
48 | 48 |
49 BOOST_TEST(string_util::format("$@#") == "$@#"); | 49 BOOST_TEST(string_util::format("$@#") == "$@#"); |
50 BOOST_TEST(string_util::format(" $ @ # ") == " $ @ # "); | 50 BOOST_TEST(string_util::format(" $ @ # ") == " $ @ # "); |
51 BOOST_TEST(string_util::format("#") == "#"); | 51 BOOST_TEST(string_util::format("#") == "#"); |
52 BOOST_TEST(string_util::format(" # ") == " # "); | 52 BOOST_TEST(string_util::format(" # ") == " # "); |
53 BOOST_TEST(string_util::format("#@") == "#@"); | 53 BOOST_TEST(string_util::format("#@") == "#@"); |
54 BOOST_TEST(string_util::format("##") == "##"); | 54 BOOST_TEST(string_util::format("##") == "##"); |
55 BOOST_TEST(string_util::format("#!") == "#!"); | 55 BOOST_TEST(string_util::format("#!") == "#!"); |
56 BOOST_TEST(string_util::format("##{target}") == "#{target}"); | 56 BOOST_TEST(string_util::format("##{target}") == "#{target}"); |
57 BOOST_TEST(string_util::format("@#{target}", params) == "@hello"); | 57 BOOST_TEST(string_util::format("@#{target}", params) == "@hello"); |
58 BOOST_TEST(string_util::format("#{target}#", params) == "hello#"); | 58 BOOST_TEST(string_util::format("#{target}#", params) == "hello#"); |
59 BOOST_REQUIRE_THROW(string_util::format("#{failure"), std::exception); | 59 BOOST_REQUIRE_THROW(string_util::format("#{failure"), std::exception); |
60 } | 60 } |
61 | 61 |
62 BOOST_AUTO_TEST_CASE(disable_date) | 62 BOOST_AUTO_TEST_CASE(disable_date) |
63 { | 63 { |
64 string_util::subst params; | 64 string_util::subst params; |
65 | 65 |
66 params.flags &= ~(string_util::subst_flags::date); | 66 params.flags &= ~(string_util::subst_flags::date); |
67 | 67 |
68 BOOST_TEST(string_util::format("%H:%M", params) == "%H:%M"); | 68 BOOST_TEST(string_util::format("%H:%M", params) == "%H:%M"); |
69 } | 69 } |
70 | 70 |
71 BOOST_AUTO_TEST_CASE(disable_keywords) | 71 BOOST_AUTO_TEST_CASE(disable_keywords) |
72 { | 72 { |
73 string_util::subst params; | 73 string_util::subst params; |
74 | 74 |
75 params.keywords.emplace("target", "hello"); | 75 params.keywords.emplace("target", "hello"); |
76 params.flags &= ~(string_util::subst_flags::keywords); | 76 params.flags &= ~(string_util::subst_flags::keywords); |
77 | 77 |
78 BOOST_TEST(string_util::format("#{target}", params) == "#{target}"); | 78 BOOST_TEST(string_util::format("#{target}", params) == "#{target}"); |
79 } | 79 } |
80 | 80 |
81 BOOST_AUTO_TEST_CASE(disable_env) | 81 BOOST_AUTO_TEST_CASE(disable_env) |
82 { | 82 { |
83 string_util::subst params; | 83 string_util::subst params; |
84 | 84 |
85 params.flags &= ~(string_util::subst_flags::env); | 85 params.flags &= ~(string_util::subst_flags::env); |
86 | 86 |
87 BOOST_TEST(string_util::format("${HOME}", params) == "${HOME}"); | 87 BOOST_TEST(string_util::format("${HOME}", params) == "${HOME}"); |
88 } | 88 } |
89 | 89 |
90 BOOST_AUTO_TEST_CASE(keyword_simple) | 90 BOOST_AUTO_TEST_CASE(keyword_simple) |
91 { | 91 { |
92 string_util::subst params; | 92 string_util::subst params; |
93 | 93 |
94 params.keywords.insert({"target", "irccd"}); | 94 params.keywords.insert({"target", "irccd"}); |
95 | 95 |
96 std::string expected = "hello irccd!"; | 96 std::string expected = "hello irccd!"; |
97 std::string result = string_util::format("hello #{target}!", params); | 97 std::string result = string_util::format("hello #{target}!", params); |
98 | 98 |
99 BOOST_TEST(expected == result); | 99 BOOST_TEST(expected == result); |
100 } | 100 } |
101 | 101 |
102 BOOST_AUTO_TEST_CASE(keyword_multiple) | 102 BOOST_AUTO_TEST_CASE(keyword_multiple) |
103 { | 103 { |
104 string_util::subst params; | 104 string_util::subst params; |
105 | 105 |
106 params.keywords.insert({"target", "irccd"}); | 106 params.keywords.insert({"target", "irccd"}); |
107 params.keywords.insert({"source", "nightmare"}); | 107 params.keywords.insert({"source", "nightmare"}); |
108 | 108 |
109 std::string expected = "hello irccd from nightmare!"; | 109 std::string expected = "hello irccd from nightmare!"; |
110 std::string result = string_util::format("hello #{target} from #{source}!", params); | 110 std::string result = string_util::format("hello #{target} from #{source}!", params); |
111 | 111 |
112 BOOST_TEST(expected == result); | 112 BOOST_TEST(expected == result); |
113 } | 113 } |
114 | 114 |
115 BOOST_AUTO_TEST_CASE(keyword_adj_twice) | 115 BOOST_AUTO_TEST_CASE(keyword_adj_twice) |
116 { | 116 { |
117 string_util::subst params; | 117 string_util::subst params; |
118 | 118 |
119 params.keywords.insert({"target", "irccd"}); | 119 params.keywords.insert({"target", "irccd"}); |
120 | 120 |
121 std::string expected = "hello irccdirccd!"; | 121 std::string expected = "hello irccdirccd!"; |
122 std::string result = string_util::format("hello #{target}#{target}!", params); | 122 std::string result = string_util::format("hello #{target}#{target}!", params); |
123 | 123 |
124 BOOST_TEST(expected == result); | 124 BOOST_TEST(expected == result); |
125 } | 125 } |
126 | 126 |
127 BOOST_AUTO_TEST_CASE(keyword_missing) | 127 BOOST_AUTO_TEST_CASE(keyword_missing) |
128 { | 128 { |
129 std::string expected = "hello !"; | 129 std::string expected = "hello !"; |
130 std::string result = string_util::format("hello #{target}!"); | 130 std::string result = string_util::format("hello #{target}!"); |
131 | 131 |
132 BOOST_TEST(expected == result); | 132 BOOST_TEST(expected == result); |
133 } | 133 } |
134 | 134 |
135 BOOST_AUTO_TEST_CASE(env_simple) | 135 BOOST_AUTO_TEST_CASE(env_simple) |
136 { | 136 { |
137 std::string home = sys::env("HOME"); | 137 std::string home = sys::env("HOME"); |
138 | 138 |
139 if (!home.empty()) { | 139 if (!home.empty()) { |
140 std::string expected = "my home is " + home; | 140 std::string expected = "my home is " + home; |
141 std::string result = string_util::format("my home is ${HOME}"); | 141 std::string result = string_util::format("my home is ${HOME}"); |
142 | 142 |
143 BOOST_TEST(expected == result); | 143 BOOST_TEST(expected == result); |
144 } | 144 } |
145 } | 145 } |
146 | 146 |
147 BOOST_AUTO_TEST_CASE(env_missing) | 147 BOOST_AUTO_TEST_CASE(env_missing) |
148 { | 148 { |
149 std::string expected = "value is "; | 149 std::string expected = "value is "; |
150 std::string result = string_util::format("value is ${HOPE_THIS_VAR_NOT_EXIST}"); | 150 std::string result = string_util::format("value is ${HOPE_THIS_VAR_NOT_EXIST}"); |
151 | 151 |
152 BOOST_TEST(expected == result); | 152 BOOST_TEST(expected == result); |
153 } | 153 } |
154 | 154 |
155 BOOST_AUTO_TEST_SUITE_END() | 155 BOOST_AUTO_TEST_SUITE_END() |
156 | 156 |
157 /* | 157 /* |
163 | 163 |
164 using list = std::vector<std::string>; | 164 using list = std::vector<std::string>; |
165 | 165 |
166 BOOST_AUTO_TEST_CASE(simple) | 166 BOOST_AUTO_TEST_CASE(simple) |
167 { | 167 { |
168 list expected { "a", "b" }; | 168 list expected { "a", "b" }; |
169 list result = string_util::split("a;b", ";"); | 169 list result = string_util::split("a;b", ";"); |
170 | 170 |
171 BOOST_TEST(expected == result); | 171 BOOST_TEST(expected == result); |
172 } | 172 } |
173 | 173 |
174 BOOST_AUTO_TEST_CASE(cut) | 174 BOOST_AUTO_TEST_CASE(cut) |
175 { | 175 { |
176 list expected { "msg", "#staff", "foo bar baz" }; | 176 list expected { "msg", "#staff", "foo bar baz" }; |
177 list result = string_util::split("msg;#staff;foo bar baz", ";", 3); | 177 list result = string_util::split("msg;#staff;foo bar baz", ";", 3); |
178 | 178 |
179 BOOST_TEST(expected == result); | 179 BOOST_TEST(expected == result); |
180 } | 180 } |
181 | 181 |
182 BOOST_AUTO_TEST_SUITE_END() | 182 BOOST_AUTO_TEST_SUITE_END() |
183 | 183 |
184 /* | 184 /* |
188 | 188 |
189 BOOST_AUTO_TEST_SUITE(strip) | 189 BOOST_AUTO_TEST_SUITE(strip) |
190 | 190 |
191 BOOST_AUTO_TEST_CASE(left) | 191 BOOST_AUTO_TEST_CASE(left) |
192 { | 192 { |
193 std::string value = " 123"; | 193 std::string value = " 123"; |
194 std::string result = string_util::strip(value); | 194 std::string result = string_util::strip(value); |
195 | 195 |
196 BOOST_TEST(result == "123"); | 196 BOOST_TEST(result == "123"); |
197 } | 197 } |
198 | 198 |
199 BOOST_AUTO_TEST_CASE(right) | 199 BOOST_AUTO_TEST_CASE(right) |
200 { | 200 { |
201 std::string value = "123 "; | 201 std::string value = "123 "; |
202 std::string result = string_util::strip(value); | 202 std::string result = string_util::strip(value); |
203 | 203 |
204 BOOST_TEST(result == "123"); | 204 BOOST_TEST(result == "123"); |
205 } | 205 } |
206 | 206 |
207 BOOST_AUTO_TEST_CASE(both) | 207 BOOST_AUTO_TEST_CASE(both) |
208 { | 208 { |
209 std::string value = " 123 "; | 209 std::string value = " 123 "; |
210 std::string result = string_util::strip(value); | 210 std::string result = string_util::strip(value); |
211 | 211 |
212 BOOST_TEST(result == "123"); | 212 BOOST_TEST(result == "123"); |
213 } | 213 } |
214 | 214 |
215 BOOST_AUTO_TEST_CASE(none) | 215 BOOST_AUTO_TEST_CASE(none) |
216 { | 216 { |
217 std::string value = "without"; | 217 std::string value = "without"; |
218 std::string result = string_util::strip(value); | 218 std::string result = string_util::strip(value); |
219 | 219 |
220 BOOST_TEST(result == "without"); | 220 BOOST_TEST(result == "without"); |
221 } | 221 } |
222 | 222 |
223 BOOST_AUTO_TEST_CASE(between_empty) | 223 BOOST_AUTO_TEST_CASE(between_empty) |
224 { | 224 { |
225 std::string value = "one list"; | 225 std::string value = "one list"; |
226 std::string result = string_util::strip(value); | 226 std::string result = string_util::strip(value); |
227 | 227 |
228 BOOST_TEST(result == "one list"); | 228 BOOST_TEST(result == "one list"); |
229 } | 229 } |
230 | 230 |
231 BOOST_AUTO_TEST_CASE(between_left) | 231 BOOST_AUTO_TEST_CASE(between_left) |
232 { | 232 { |
233 std::string value = " space at left"; | 233 std::string value = " space at left"; |
234 std::string result = string_util::strip(value); | 234 std::string result = string_util::strip(value); |
235 | 235 |
236 BOOST_TEST(result == "space at left"); | 236 BOOST_TEST(result == "space at left"); |
237 } | 237 } |
238 | 238 |
239 BOOST_AUTO_TEST_CASE(between_right) | 239 BOOST_AUTO_TEST_CASE(between_right) |
240 { | 240 { |
241 std::string value = "space at right "; | 241 std::string value = "space at right "; |
242 std::string result = string_util::strip(value); | 242 std::string result = string_util::strip(value); |
243 | 243 |
244 BOOST_TEST(result == "space at right"); | 244 BOOST_TEST(result == "space at right"); |
245 } | 245 } |
246 | 246 |
247 BOOST_AUTO_TEST_CASE(between_both) | 247 BOOST_AUTO_TEST_CASE(between_both) |
248 { | 248 { |
249 std::string value = " space at both "; | 249 std::string value = " space at both "; |
250 std::string result = string_util::strip(value); | 250 std::string result = string_util::strip(value); |
251 | 251 |
252 BOOST_TEST(result == "space at both"); | 252 BOOST_TEST(result == "space at both"); |
253 } | 253 } |
254 | 254 |
255 BOOST_AUTO_TEST_CASE(empty) | 255 BOOST_AUTO_TEST_CASE(empty) |
256 { | 256 { |
257 std::string value = " "; | 257 std::string value = " "; |
258 std::string result = string_util::strip(value); | 258 std::string result = string_util::strip(value); |
259 | 259 |
260 BOOST_TEST(result == ""); | 260 BOOST_TEST(result == ""); |
261 } | 261 } |
262 | 262 |
263 BOOST_AUTO_TEST_SUITE_END() | 263 BOOST_AUTO_TEST_SUITE_END() |
264 | 264 |
265 /* | 265 /* |
269 | 269 |
270 BOOST_AUTO_TEST_SUITE(join) | 270 BOOST_AUTO_TEST_SUITE(join) |
271 | 271 |
272 BOOST_AUTO_TEST_CASE(empty) | 272 BOOST_AUTO_TEST_CASE(empty) |
273 { | 273 { |
274 std::string expected = ""; | 274 std::string expected = ""; |
275 std::string result = string_util::join<int>({}); | 275 std::string result = string_util::join<int>({}); |
276 | 276 |
277 BOOST_TEST(expected == result); | 277 BOOST_TEST(expected == result); |
278 } | 278 } |
279 | 279 |
280 BOOST_AUTO_TEST_CASE(one) | 280 BOOST_AUTO_TEST_CASE(one) |
281 { | 281 { |
282 std::string expected = "1"; | 282 std::string expected = "1"; |
283 std::string result = string_util::join({1}); | 283 std::string result = string_util::join({1}); |
284 | 284 |
285 BOOST_TEST(expected == result); | 285 BOOST_TEST(expected == result); |
286 } | 286 } |
287 | 287 |
288 BOOST_AUTO_TEST_CASE(two) | 288 BOOST_AUTO_TEST_CASE(two) |
289 { | 289 { |
290 std::string expected = "1:2"; | 290 std::string expected = "1:2"; |
291 std::string result = string_util::join({1, 2}); | 291 std::string result = string_util::join({1, 2}); |
292 | 292 |
293 BOOST_TEST(expected == result); | 293 BOOST_TEST(expected == result); |
294 } | 294 } |
295 | 295 |
296 BOOST_AUTO_TEST_CASE(delimiter_string) | 296 BOOST_AUTO_TEST_CASE(delimiter_string) |
297 { | 297 { |
298 std::string expected = "1;;2;;3"; | 298 std::string expected = "1;;2;;3"; |
299 std::string result = string_util::join({1, 2, 3}, ";;"); | 299 std::string result = string_util::join({1, 2, 3}, ";;"); |
300 | 300 |
301 BOOST_TEST(expected == result); | 301 BOOST_TEST(expected == result); |
302 } | 302 } |
303 | 303 |
304 BOOST_AUTO_TEST_CASE(delimiter_char) | 304 BOOST_AUTO_TEST_CASE(delimiter_char) |
305 { | 305 { |
306 std::string expected = "1@2@3@4"; | 306 std::string expected = "1@2@3@4"; |
307 std::string result = string_util::join({1, 2, 3, 4}, '@'); | 307 std::string result = string_util::join({1, 2, 3, 4}, '@'); |
308 | 308 |
309 BOOST_TEST(expected == result); | 309 BOOST_TEST(expected == result); |
310 } | 310 } |
311 | 311 |
312 BOOST_AUTO_TEST_SUITE_END() | 312 BOOST_AUTO_TEST_SUITE_END() |
313 | 313 |
314 /* | 314 /* |
318 | 318 |
319 BOOST_AUTO_TEST_SUITE(is_identifier_valid) | 319 BOOST_AUTO_TEST_SUITE(is_identifier_valid) |
320 | 320 |
321 BOOST_AUTO_TEST_CASE(correct) | 321 BOOST_AUTO_TEST_CASE(correct) |
322 { | 322 { |
323 BOOST_TEST(string_util::is_identifier("localhost")); | 323 BOOST_TEST(string_util::is_identifier("localhost")); |
324 BOOST_TEST(string_util::is_identifier("localhost2")); | 324 BOOST_TEST(string_util::is_identifier("localhost2")); |
325 BOOST_TEST(string_util::is_identifier("localhost2-4_")); | 325 BOOST_TEST(string_util::is_identifier("localhost2-4_")); |
326 } | 326 } |
327 | 327 |
328 BOOST_AUTO_TEST_CASE(incorrect) | 328 BOOST_AUTO_TEST_CASE(incorrect) |
329 { | 329 { |
330 BOOST_TEST(!string_util::is_identifier("")); | 330 BOOST_TEST(!string_util::is_identifier("")); |
331 BOOST_TEST(!string_util::is_identifier("localhost with spaces")); | 331 BOOST_TEST(!string_util::is_identifier("localhost with spaces")); |
332 BOOST_TEST(!string_util::is_identifier("localhost*")); | 332 BOOST_TEST(!string_util::is_identifier("localhost*")); |
333 BOOST_TEST(!string_util::is_identifier("&&")); | 333 BOOST_TEST(!string_util::is_identifier("&&")); |
334 BOOST_TEST(!string_util::is_identifier("@'")); | 334 BOOST_TEST(!string_util::is_identifier("@'")); |
335 BOOST_TEST(!string_util::is_identifier("##")); | 335 BOOST_TEST(!string_util::is_identifier("##")); |
336 BOOST_TEST(!string_util::is_identifier("===++")); | 336 BOOST_TEST(!string_util::is_identifier("===++")); |
337 } | 337 } |
338 | 338 |
339 BOOST_AUTO_TEST_SUITE_END() | 339 BOOST_AUTO_TEST_SUITE_END() |
340 | 340 |
341 /* | 341 /* |
345 | 345 |
346 BOOST_AUTO_TEST_SUITE(is_boolean) | 346 BOOST_AUTO_TEST_SUITE(is_boolean) |
347 | 347 |
348 BOOST_AUTO_TEST_CASE(correct) | 348 BOOST_AUTO_TEST_CASE(correct) |
349 { | 349 { |
350 // true | 350 // true |
351 BOOST_TEST(string_util::is_boolean("true")); | 351 BOOST_TEST(string_util::is_boolean("true")); |
352 BOOST_TEST(string_util::is_boolean("True")); | 352 BOOST_TEST(string_util::is_boolean("True")); |
353 BOOST_TEST(string_util::is_boolean("TRUE")); | 353 BOOST_TEST(string_util::is_boolean("TRUE")); |
354 BOOST_TEST(string_util::is_boolean("TruE")); | 354 BOOST_TEST(string_util::is_boolean("TruE")); |
355 | 355 |
356 // yes | 356 // yes |
357 BOOST_TEST(string_util::is_boolean("yes")); | 357 BOOST_TEST(string_util::is_boolean("yes")); |
358 BOOST_TEST(string_util::is_boolean("Yes")); | 358 BOOST_TEST(string_util::is_boolean("Yes")); |
359 BOOST_TEST(string_util::is_boolean("YES")); | 359 BOOST_TEST(string_util::is_boolean("YES")); |
360 BOOST_TEST(string_util::is_boolean("YeS")); | 360 BOOST_TEST(string_util::is_boolean("YeS")); |
361 | 361 |
362 // on | 362 // on |
363 BOOST_TEST(string_util::is_boolean("on")); | 363 BOOST_TEST(string_util::is_boolean("on")); |
364 BOOST_TEST(string_util::is_boolean("On")); | 364 BOOST_TEST(string_util::is_boolean("On")); |
365 BOOST_TEST(string_util::is_boolean("oN")); | 365 BOOST_TEST(string_util::is_boolean("oN")); |
366 BOOST_TEST(string_util::is_boolean("ON")); | 366 BOOST_TEST(string_util::is_boolean("ON")); |
367 | 367 |
368 // 1 | 368 // 1 |
369 BOOST_TEST(string_util::is_boolean("1")); | 369 BOOST_TEST(string_util::is_boolean("1")); |
370 } | 370 } |
371 | 371 |
372 BOOST_AUTO_TEST_CASE(incorrect) | 372 BOOST_AUTO_TEST_CASE(incorrect) |
373 { | 373 { |
374 BOOST_TEST(!string_util::is_boolean("false")); | 374 BOOST_TEST(!string_util::is_boolean("false")); |
375 BOOST_TEST(!string_util::is_boolean("lol")); | 375 BOOST_TEST(!string_util::is_boolean("lol")); |
376 BOOST_TEST(!string_util::is_boolean("")); | 376 BOOST_TEST(!string_util::is_boolean("")); |
377 BOOST_TEST(!string_util::is_boolean("0")); | 377 BOOST_TEST(!string_util::is_boolean("0")); |
378 } | 378 } |
379 | 379 |
380 BOOST_AUTO_TEST_SUITE_END() | 380 BOOST_AUTO_TEST_SUITE_END() |
381 | 381 |
382 } // !namespace | 382 } // !namespace |