Mercurial > irccd
annotate tests/util/main.cpp @ 119:b39573fc066e
Irccd: improve util::format to disable some features, #408
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 02 May 2016 13:28:28 +0200 |
parents | 2a63c8ec45cd |
children | 6635b9187d71 |
rev | line source |
---|---|
0 | 1 /* |
2 * main.cpp -- test util functions | |
3 * | |
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> | |
5 * | |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
19 #include <cstdint> |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
20 |
0 | 21 #include <gtest/gtest.h> |
22 | |
95
1125d90b3b44
Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents:
75
diff
changeset
|
23 #include <irccd/util.hpp> |
1125d90b3b44
Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents:
75
diff
changeset
|
24 #include <irccd/system.hpp> |
0 | 25 |
26 namespace irccd { | |
27 | |
28 /* -------------------------------------------------------- | |
29 * util::format function | |
30 * -------------------------------------------------------- */ | |
31 | |
32 TEST(Format, nothing) | |
33 { | |
34 std::string expected = "hello world!"; | |
35 std::string result = util::format("hello world!"); | |
36 | |
37 ASSERT_EQ(expected, result); | |
38 } | |
39 | |
118
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
40 TEST(Format, escape) |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
41 { |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
42 util::Substitution params; |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
43 |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
44 params.keywords.emplace("target", "hello"); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
45 |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
46 ASSERT_EQ("$@#", util::format("$@#")); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
47 ASSERT_EQ(" $ @ # ", util::format(" $ @ # ")); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
48 ASSERT_EQ("#", util::format("#")); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
49 ASSERT_EQ(" # ", util::format(" # ")); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
50 ASSERT_EQ("#@", util::format("#@")); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
51 ASSERT_EQ("##", util::format("##")); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
52 ASSERT_EQ("#!", util::format("#!")); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
53 ASSERT_EQ("#{target}", util::format("##{target}")); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
54 ASSERT_EQ("@hello", util::format("@#{target}", params)); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
55 ASSERT_EQ("hello#", util::format("#{target}#", params)); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
56 ASSERT_ANY_THROW(util::format("#{failure")); |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
57 } |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
58 |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
59 TEST(Format, disableDate) |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
60 { |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
61 util::Substitution params; |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
62 |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
63 params.flags &= ~(util::Substitution::Date); |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
64 |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
65 ASSERT_EQ("%H:%M", util::format("%H:%M", params)); |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
66 } |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
67 |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
68 TEST(Format, disableKeywords) |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
69 { |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
70 util::Substitution params; |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
71 |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
72 params.keywords.emplace("target", "hello"); |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
73 params.flags &= ~(util::Substitution::Keywords); |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
74 |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
75 ASSERT_EQ("#{target}", util::format("#{target}", params)); |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
76 } |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
77 |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
78 TEST(Format, disableEnv) |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
79 { |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
80 util::Substitution params; |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
81 |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
82 params.flags &= ~(util::Substitution::Env); |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
83 |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
84 ASSERT_EQ("${HOME}", util::format("${HOME}", params)); |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
85 } |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
86 |
0 | 87 TEST(Format, keywordSimple) |
88 { | |
89 util::Substitution params; | |
90 | |
91 params.keywords.insert({"target", "irccd"}); | |
92 | |
93 std::string expected = "hello irccd!"; | |
94 std::string result = util::format("hello #{target}!", params); | |
95 | |
96 ASSERT_EQ(expected, result); | |
97 } | |
98 | |
99 TEST(Format, keywordMultiple) | |
100 { | |
101 util::Substitution params; | |
102 | |
103 params.keywords.insert({"target", "irccd"}); | |
104 params.keywords.insert({"source", "nightmare"}); | |
105 | |
106 std::string expected = "hello irccd from nightmare!"; | |
107 std::string result = util::format("hello #{target} from #{source}!", params); | |
108 | |
109 ASSERT_EQ(expected, result); | |
110 } | |
111 | |
112 TEST(Format, keywordAdjTwice) | |
113 { | |
114 util::Substitution params; | |
115 | |
116 params.keywords.insert({"target", "irccd"}); | |
117 | |
118 std::string expected = "hello irccdirccd!"; | |
119 std::string result = util::format("hello #{target}#{target}!", params); | |
120 | |
121 ASSERT_EQ(expected, result); | |
122 } | |
123 | |
124 TEST(Format, keywordMissing) | |
125 { | |
126 std::string expected = "hello !"; | |
127 std::string result = util::format("hello #{target}!"); | |
128 | |
129 ASSERT_EQ(expected, result); | |
130 } | |
131 | |
132 TEST(Format, envSimple) | |
133 { | |
134 std::string home = sys::env("HOME"); | |
135 | |
136 if (!home.empty()) { | |
137 std::string expected = "my home is " + home; | |
138 std::string result = util::format("my home is ${HOME}"); | |
139 | |
140 ASSERT_EQ(expected, result); | |
141 } | |
142 } | |
143 | |
144 TEST(Format, envMissing) | |
145 { | |
146 std::string expected = "value is "; | |
147 std::string result = util::format("value is ${HOPE_THIS_VAR_NOT_EXIST}"); | |
148 | |
149 ASSERT_EQ(expected, result); | |
150 } | |
151 | |
152 /* -------------------------------------------------------- | |
153 * util::split function | |
154 * -------------------------------------------------------- */ | |
155 | |
156 using List = std::vector<std::string>; | |
157 | |
158 TEST(Split, simple) | |
159 { | |
160 List expected { "a", "b" }; | |
161 List result = util::split("a;b", ";"); | |
162 | |
163 ASSERT_EQ(expected, result); | |
164 } | |
165 | |
166 TEST(Split, cut) | |
167 { | |
168 List expected { "msg", "#staff", "foo bar baz" }; | |
169 List result = util::split("msg;#staff;foo bar baz", ";", 3); | |
170 | |
171 ASSERT_EQ(expected, result); | |
172 } | |
173 | |
174 /* -------------------------------------------------------- | |
175 * util::strip function | |
176 * -------------------------------------------------------- */ | |
177 | |
178 TEST(Strip, left) | |
179 { | |
180 std::string value = " 123"; | |
181 std::string result = util::strip(value); | |
182 | |
183 ASSERT_EQ("123", result); | |
184 } | |
185 | |
186 TEST(Strip, right) | |
187 { | |
188 std::string value = "123 "; | |
189 std::string result = util::strip(value); | |
190 | |
191 ASSERT_EQ("123", result); | |
192 } | |
193 | |
194 TEST(Strip, both) | |
195 { | |
196 std::string value = " 123 "; | |
197 std::string result = util::strip(value); | |
198 | |
199 ASSERT_EQ("123", result); | |
200 } | |
201 | |
202 TEST(Strip, none) | |
203 { | |
204 std::string value = "without"; | |
205 std::string result = util::strip(value); | |
206 | |
207 ASSERT_EQ("without", result); | |
208 } | |
209 | |
210 TEST(Strip, betweenEmpty) | |
211 { | |
212 std::string value = "one list"; | |
213 std::string result = util::strip(value); | |
214 | |
215 ASSERT_EQ("one list", result); | |
216 } | |
217 | |
218 TEST(Strip, betweenLeft) | |
219 { | |
220 std::string value = " space at left"; | |
221 std::string result = util::strip(value); | |
222 | |
223 ASSERT_EQ("space at left", result); | |
224 } | |
225 | |
226 TEST(Strip, betweenRight) | |
227 { | |
228 std::string value = "space at right "; | |
229 std::string result = util::strip(value); | |
230 | |
231 ASSERT_EQ("space at right", result); | |
232 } | |
233 | |
234 TEST(Strip, betweenBoth) | |
235 { | |
236 std::string value = " space at both "; | |
237 std::string result = util::strip(value); | |
238 | |
239 ASSERT_EQ("space at both", result); | |
240 } | |
241 | |
242 TEST(Strip, empty) | |
243 { | |
244 std::string value = " "; | |
245 std::string result = util::strip(value); | |
246 | |
247 ASSERT_EQ("", result); | |
248 } | |
249 | |
250 /* -------------------------------------------------------- | |
251 * util::join function | |
252 * -------------------------------------------------------- */ | |
253 | |
254 TEST(Join, empty) | |
255 { | |
256 std::string expected = ""; | |
257 std::string result = util::join<int>({}); | |
258 | |
259 ASSERT_EQ(expected, result); | |
260 } | |
261 | |
262 TEST(Join, one) | |
263 { | |
264 std::string expected = "1"; | |
265 std::string result = util::join({1}); | |
266 | |
267 ASSERT_EQ(expected, result); | |
268 } | |
269 | |
270 TEST(Join, two) | |
271 { | |
272 std::string expected = "1:2"; | |
273 std::string result = util::join({1, 2}); | |
274 | |
275 ASSERT_EQ(expected, result); | |
276 } | |
277 | |
278 TEST(Join, delimiterString) | |
279 { | |
280 std::string expected = "1;;2;;3"; | |
281 std::string result = util::join({1, 2, 3}, ";;"); | |
282 | |
283 ASSERT_EQ(expected, result); | |
284 } | |
285 | |
286 TEST(Join, delimiterChar) | |
287 { | |
288 std::string expected = "1@2@3@4"; | |
289 std::string result = util::join({1, 2, 3, 4}, '@'); | |
290 | |
291 ASSERT_EQ(expected, result); | |
292 } | |
293 | |
294 /* -------------------------------------------------------- | |
295 * util::isIdentifierValid function | |
296 * -------------------------------------------------------- */ | |
297 | |
298 TEST(IsIdentifierValid, correct) | |
299 { | |
300 ASSERT_TRUE(util::isIdentifierValid("localhost")); | |
301 ASSERT_TRUE(util::isIdentifierValid("localhost2")); | |
302 ASSERT_TRUE(util::isIdentifierValid("localhost2-4_")); | |
303 } | |
304 | |
305 TEST(IsIdentifierValid, incorrect) | |
306 { | |
307 ASSERT_FALSE(util::isIdentifierValid("")); | |
308 ASSERT_FALSE(util::isIdentifierValid("localhost with spaces")); | |
309 ASSERT_FALSE(util::isIdentifierValid("localhost*")); | |
310 ASSERT_FALSE(util::isIdentifierValid("&&")); | |
311 ASSERT_FALSE(util::isIdentifierValid("@'")); | |
312 ASSERT_FALSE(util::isIdentifierValid("##")); | |
313 ASSERT_FALSE(util::isIdentifierValid("===++")); | |
314 } | |
315 | |
316 /* -------------------------------------------------------- | |
317 * util::isBoolean function | |
318 * -------------------------------------------------------- */ | |
319 | |
320 TEST(IsBoolean, correct) | |
321 { | |
322 // true | |
323 ASSERT_TRUE(util::isBoolean("true")); | |
324 ASSERT_TRUE(util::isBoolean("True")); | |
325 ASSERT_TRUE(util::isBoolean("TRUE")); | |
326 ASSERT_TRUE(util::isBoolean("TruE")); | |
327 | |
328 // yes | |
329 ASSERT_TRUE(util::isBoolean("yes")); | |
330 ASSERT_TRUE(util::isBoolean("Yes")); | |
331 ASSERT_TRUE(util::isBoolean("YES")); | |
332 ASSERT_TRUE(util::isBoolean("YeS")); | |
333 | |
334 // on | |
335 ASSERT_TRUE(util::isBoolean("on")); | |
336 ASSERT_TRUE(util::isBoolean("On")); | |
337 ASSERT_TRUE(util::isBoolean("oN")); | |
338 ASSERT_TRUE(util::isBoolean("ON")); | |
339 | |
340 // 1 | |
341 ASSERT_TRUE(util::isBoolean("1")); | |
342 } | |
343 | |
344 TEST(IsBoolean, incorrect) | |
345 { | |
346 ASSERT_FALSE(util::isBoolean("false")); | |
347 ASSERT_FALSE(util::isBoolean("lol")); | |
348 ASSERT_FALSE(util::isBoolean("")); | |
349 ASSERT_FALSE(util::isBoolean("0")); | |
350 } | |
351 | |
352 /* -------------------------------------------------------- | |
353 * util::isNumber function | |
354 * -------------------------------------------------------- */ | |
355 | |
356 TEST(IsNumber, correct) | |
357 { | |
358 ASSERT_TRUE(util::isNumber("123")); | |
359 ASSERT_TRUE(util::isNumber("-123")); | |
360 ASSERT_TRUE(util::isNumber("123.67")); | |
361 } | |
362 | |
363 TEST(IsNumber, incorrect) | |
364 { | |
365 ASSERT_FALSE(util::isNumber("lol")); | |
366 ASSERT_FALSE(util::isNumber("this is not a number")); | |
367 } | |
368 | |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
369 /* |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
370 * util::toNumber function |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
371 * ------------------------------------------------------------------ |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
372 */ |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
373 |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
374 TEST(ToNumber, correct) |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
375 { |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
376 /* unsigned */ |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
377 ASSERT_EQ(50u, util::toNumber<std::uint8_t>("50")); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
378 ASSERT_EQ(5000u, util::toNumber<std::uint16_t>("5000")); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
379 ASSERT_EQ(50000u, util::toNumber<std::uint32_t>("50000")); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
380 ASSERT_EQ(500000u, util::toNumber<std::uint64_t>("500000")); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
381 |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
382 /* signed */ |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
383 ASSERT_EQ(-50, util::toNumber<std::int8_t>("-50")); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
384 ASSERT_EQ(-500, util::toNumber<std::int16_t>("-500")); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
385 ASSERT_EQ(-5000, util::toNumber<std::int32_t>("-5000")); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
386 ASSERT_EQ(-50000, util::toNumber<std::int64_t>("-50000")); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
387 } |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
388 |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
389 TEST(ToNumber, incorrect) |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
390 { |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
391 /* unsigned */ |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
392 ASSERT_THROW(util::toNumber<std::uint8_t>("300"), std::out_of_range); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
393 ASSERT_THROW(util::toNumber<std::uint16_t>("80000"), std::out_of_range); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
394 ASSERT_THROW(util::toNumber<std::uint8_t>("-125"), std::out_of_range); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
395 ASSERT_THROW(util::toNumber<std::uint16_t>("-25000"), std::out_of_range); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
396 |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
397 /* signed */ |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
398 ASSERT_THROW(util::toNumber<std::int8_t>("300"), std::out_of_range); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
399 ASSERT_THROW(util::toNumber<std::int16_t>("80000"), std::out_of_range); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
400 ASSERT_THROW(util::toNumber<std::int8_t>("-300"), std::out_of_range); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
401 ASSERT_THROW(util::toNumber<std::int16_t>("-80000"), std::out_of_range); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
402 |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
403 /* not numbers */ |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
404 ASSERT_THROW(util::toNumber<std::uint8_t>("nonono"), std::invalid_argument); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
405 |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
406 /* custom ranges */ |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
407 ASSERT_THROW(util::toNumber<std::uint8_t>("50", 0, 10), std::out_of_range); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
408 ASSERT_THROW(util::toNumber<std::int8_t>("-50", -10, 10), std::out_of_range); |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
409 } |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
410 |
0 | 411 } // !irccd |
412 | |
413 int main(int argc, char **argv) | |
414 { | |
415 testing::InitGoogleTest(&argc, argv); | |
416 | |
417 return RUN_ALL_TESTS(); | |
418 } |