annotate tests/util/main.cpp @ 118:2a63c8ec45cd

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