annotate tests/src/libirccd/util/main.cpp @ 630:711e0bd01eaf

Irccd: move services to service folder
author David Demelier <markand@malikania.fr>
date Wed, 07 Mar 2018 17:49:56 +0100
parents 27587ff92a64
children aae6d5a2b28d
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 *
628
27587ff92a64 Misc: update copyrights
David Demelier <markand@malikania.fr>
parents: 616
diff changeset
4 * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr>
0
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
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
19 #define BOOST_TEST_MODULE "util"
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
20 #include <boost/test/unit_test.hpp>
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
21
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
22 #include <cstdint>
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
24 #include <irccd/fs_util.hpp>
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
25 #include <irccd/string_util.hpp>
95
1125d90b3b44 Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
26 #include <irccd/system.hpp>
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
28 namespace std {
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
29
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
30 std::ostream& operator<<(std::ostream& out, const std::vector<std::string>& list)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
31 {
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
32 for (const auto& s : list)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
33 out << s << " ";
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
34
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
35 return out;
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
36 }
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
37
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
38 } // !std
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
39
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 namespace irccd {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
42 BOOST_AUTO_TEST_SUITE(format)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
43
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
44 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
45 * string_util::format function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
46 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
47 */
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
48
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
49 BOOST_AUTO_TEST_CASE(nothing)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
51 std::string expected = "hello world!";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
52 std::string result = string_util::format("hello world!");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
54 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
56
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
57 BOOST_AUTO_TEST_CASE(escape)
118
2a63c8ec45cd Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents: 114
diff changeset
58 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
59 string_util::subst params;
118
2a63c8ec45cd Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents: 114
diff changeset
60
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
61 params.keywords.emplace("target", "hello");
118
2a63c8ec45cd Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents: 114
diff changeset
62
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
63 BOOST_REQUIRE_EQUAL("$@#", string_util::format("$@#"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
64 BOOST_REQUIRE_EQUAL(" $ @ # ", string_util::format(" $ @ # "));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
65 BOOST_REQUIRE_EQUAL("#", string_util::format("#"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
66 BOOST_REQUIRE_EQUAL(" # ", string_util::format(" # "));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
67 BOOST_REQUIRE_EQUAL("#@", string_util::format("#@"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
68 BOOST_REQUIRE_EQUAL("##", string_util::format("##"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
69 BOOST_REQUIRE_EQUAL("#!", string_util::format("#!"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
70 BOOST_REQUIRE_EQUAL("#{target}", string_util::format("##{target}"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
71 BOOST_REQUIRE_EQUAL("@hello", string_util::format("@#{target}", params));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
72 BOOST_REQUIRE_EQUAL("hello#", string_util::format("#{target}#", params));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
73 BOOST_REQUIRE_THROW(string_util::format("#{failure"), std::exception);
118
2a63c8ec45cd Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents: 114
diff changeset
74 }
2a63c8ec45cd Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents: 114
diff changeset
75
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
76 BOOST_AUTO_TEST_CASE(disable_date)
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
77 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
78 string_util::subst params;
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
79
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
80 params.flags &= ~(string_util::subst_flags::date);
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
81
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
82 BOOST_REQUIRE_EQUAL("%H:%M", string_util::format("%H:%M", params));
119
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
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
85 BOOST_AUTO_TEST_CASE(disable_keywords)
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
86 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
87 string_util::subst params;
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
88
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
89 params.keywords.emplace("target", "hello");
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
90 params.flags &= ~(string_util::subst_flags::keywords);
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
91
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
92 BOOST_REQUIRE_EQUAL("#{target}", string_util::format("#{target}", params));
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
93 }
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
94
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
95 BOOST_AUTO_TEST_CASE(disable_env)
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
96 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
97 string_util::subst params;
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
98
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
99 params.flags &= ~(string_util::subst_flags::env);
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
100
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
101 BOOST_REQUIRE_EQUAL("${HOME}", string_util::format("${HOME}", params));
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
102 }
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
103
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
104 BOOST_AUTO_TEST_CASE(keyword_simple)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
106 string_util::subst params;
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
107
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
108 params.keywords.insert({"target", "irccd"});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
110 std::string expected = "hello irccd!";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
111 std::string result = string_util::format("hello #{target}!", params);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
112
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
113 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
115
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
116 BOOST_AUTO_TEST_CASE(keyword_multiple)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
118 string_util::subst params;
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
119
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
120 params.keywords.insert({"target", "irccd"});
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
121 params.keywords.insert({"source", "nightmare"});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
122
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
123 std::string expected = "hello irccd from nightmare!";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
124 std::string result = string_util::format("hello #{target} from #{source}!", params);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
125
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
126 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
128
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
129 BOOST_AUTO_TEST_CASE(keyword_adj_twice)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
131 string_util::subst params;
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
132
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
133 params.keywords.insert({"target", "irccd"});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
134
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
135 std::string expected = "hello irccdirccd!";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
136 std::string result = string_util::format("hello #{target}#{target}!", params);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
137
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
138 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
140
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
141 BOOST_AUTO_TEST_CASE(keyword_missing)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
143 std::string expected = "hello !";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
144 std::string result = string_util::format("hello #{target}!");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
145
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
146 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
148
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
149 BOOST_AUTO_TEST_CASE(env_simple)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
151 std::string home = sys::env("HOME");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
152
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
153 if (!home.empty()) {
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
154 std::string expected = "my home is " + home;
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
155 std::string result = string_util::format("my home is ${HOME}");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
156
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
157 BOOST_REQUIRE_EQUAL(expected, result);
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
158 }
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
160
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
161 BOOST_AUTO_TEST_CASE(env_missing)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
163 std::string expected = "value is ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
164 std::string result = string_util::format("value is ${HOPE_THIS_VAR_NOT_EXIST}");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
165
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
166 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
168
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
169 BOOST_AUTO_TEST_SUITE_END()
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
170
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
171 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
172 * string_util::split function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
173 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
174 */
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
175
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
176 BOOST_AUTO_TEST_SUITE(split)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
177
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
178 using list = std::vector<std::string>;
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
179
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
180 BOOST_AUTO_TEST_CASE(simple)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
182 list expected { "a", "b" };
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
183 list result = string_util::split("a;b", ";");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
184
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
185 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
187
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
188 BOOST_AUTO_TEST_CASE(cut)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
190 list expected { "msg", "#staff", "foo bar baz" };
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
191 list result = string_util::split("msg;#staff;foo bar baz", ";", 3);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
192
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
193 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
195
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
196 BOOST_AUTO_TEST_SUITE_END()
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
197
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
198 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
199 * string_util::strip function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
200 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
201 */
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
202
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
203 BOOST_AUTO_TEST_SUITE(strip)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
204
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
205 BOOST_AUTO_TEST_CASE(left)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
207 std::string value = " 123";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
208 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
209
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
210 BOOST_REQUIRE_EQUAL("123", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
212
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
213 BOOST_AUTO_TEST_CASE(right)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
215 std::string value = "123 ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
216 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
217
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
218 BOOST_REQUIRE_EQUAL("123", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
219 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
220
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
221 BOOST_AUTO_TEST_CASE(both)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
223 std::string value = " 123 ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
224 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
225
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
226 BOOST_REQUIRE_EQUAL("123", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
228
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
229 BOOST_AUTO_TEST_CASE(none)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
230 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
231 std::string value = "without";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
232 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
233
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
234 BOOST_REQUIRE_EQUAL("without", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
236
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
237 BOOST_AUTO_TEST_CASE(betweenEmpty)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
239 std::string value = "one list";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
240 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
241
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
242 BOOST_REQUIRE_EQUAL("one list", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
243 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
244
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
245 BOOST_AUTO_TEST_CASE(betweenLeft)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
246 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
247 std::string value = " space at left";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
248 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
249
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
250 BOOST_REQUIRE_EQUAL("space at left", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
251 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
252
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
253 BOOST_AUTO_TEST_CASE(betweenRight)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
254 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
255 std::string value = "space at right ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
256 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
257
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
258 BOOST_REQUIRE_EQUAL("space at right", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
259 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
260
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
261 BOOST_AUTO_TEST_CASE(betweenBoth)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
262 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
263 std::string value = " space at both ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
264 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
265
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
266 BOOST_REQUIRE_EQUAL("space at both", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
267 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
268
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
269 BOOST_AUTO_TEST_CASE(empty)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
270 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
271 std::string value = " ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
272 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
273
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
274 BOOST_REQUIRE_EQUAL("", result);
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
275 }
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
276
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
277 BOOST_AUTO_TEST_SUITE_END()
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
278
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
279 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
280 * string_util::join function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
281 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
282 */
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
283
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
284 BOOST_AUTO_TEST_SUITE(join)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
285
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
286 BOOST_AUTO_TEST_CASE(empty)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
287 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
288 std::string expected = "";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
289 std::string result = string_util::join<int>({});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
290
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
291 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
292 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
293
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
294 BOOST_AUTO_TEST_CASE(one)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
295 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
296 std::string expected = "1";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
297 std::string result = string_util::join({1});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
298
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
299 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
300 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
301
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
302 BOOST_AUTO_TEST_CASE(two)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
303 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
304 std::string expected = "1:2";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
305 std::string result = string_util::join({1, 2});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
306
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
307 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
308 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
309
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
310 BOOST_AUTO_TEST_CASE(delimiterString)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
311 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
312 std::string expected = "1;;2;;3";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
313 std::string result = string_util::join({1, 2, 3}, ";;");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
314
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
315 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
316 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
317
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
318 BOOST_AUTO_TEST_CASE(delimiterChar)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
319 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
320 std::string expected = "1@2@3@4";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
321 std::string result = string_util::join({1, 2, 3, 4}, '@');
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
322
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
323 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
324 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
325
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
326 BOOST_AUTO_TEST_SUITE_END()
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
327
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
328 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
329 * string_util::is_identifier function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
330 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
331 */
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
332
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
333 BOOST_AUTO_TEST_SUITE(is_identifier_valid)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
334
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
335 BOOST_AUTO_TEST_CASE(correct)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
336 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
337 BOOST_REQUIRE(string_util::is_identifier("localhost"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
338 BOOST_REQUIRE(string_util::is_identifier("localhost2"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
339 BOOST_REQUIRE(string_util::is_identifier("localhost2-4_"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
340 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
341
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
342 BOOST_AUTO_TEST_CASE(incorrect)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
343 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
344 BOOST_REQUIRE(!string_util::is_identifier(""));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
345 BOOST_REQUIRE(!string_util::is_identifier("localhost with spaces"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
346 BOOST_REQUIRE(!string_util::is_identifier("localhost*"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
347 BOOST_REQUIRE(!string_util::is_identifier("&&"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
348 BOOST_REQUIRE(!string_util::is_identifier("@'"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
349 BOOST_REQUIRE(!string_util::is_identifier("##"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
350 BOOST_REQUIRE(!string_util::is_identifier("===++"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
351 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
352
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
353 BOOST_AUTO_TEST_SUITE_END()
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
354
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
355 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
356 * string_util::is_boolean function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
357 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
358 */
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
359
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
360 BOOST_AUTO_TEST_SUITE(is_boolean)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
361
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
362 BOOST_AUTO_TEST_CASE(correct)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
363 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
364 // true
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
365 BOOST_REQUIRE(string_util::is_boolean("true"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
366 BOOST_REQUIRE(string_util::is_boolean("True"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
367 BOOST_REQUIRE(string_util::is_boolean("TRUE"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
368 BOOST_REQUIRE(string_util::is_boolean("TruE"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
369
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
370 // yes
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
371 BOOST_REQUIRE(string_util::is_boolean("yes"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
372 BOOST_REQUIRE(string_util::is_boolean("Yes"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
373 BOOST_REQUIRE(string_util::is_boolean("YES"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
374 BOOST_REQUIRE(string_util::is_boolean("YeS"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
375
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
376 // on
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
377 BOOST_REQUIRE(string_util::is_boolean("on"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
378 BOOST_REQUIRE(string_util::is_boolean("On"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
379 BOOST_REQUIRE(string_util::is_boolean("oN"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
380 BOOST_REQUIRE(string_util::is_boolean("ON"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
381
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
382 // 1
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
383 BOOST_REQUIRE(string_util::is_boolean("1"));
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
384 }
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
385
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
386 BOOST_AUTO_TEST_CASE(incorrect)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
387 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
388 BOOST_REQUIRE(!string_util::is_boolean("false"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
389 BOOST_REQUIRE(!string_util::is_boolean("lol"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
390 BOOST_REQUIRE(!string_util::is_boolean(""));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
391 BOOST_REQUIRE(!string_util::is_boolean("0"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
392 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
393
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
394 BOOST_AUTO_TEST_SUITE_END()
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
395
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
396 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
397 * string_util::is_number function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
398 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
399 */
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
400
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
401 BOOST_AUTO_TEST_SUITE(is_number)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
402
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
403 BOOST_AUTO_TEST_CASE(correct)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
404 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
405 BOOST_REQUIRE(string_util::is_number("123"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
406 BOOST_REQUIRE(string_util::is_number("-123"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
407 BOOST_REQUIRE(string_util::is_number("123.67"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
408 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
409
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
410 BOOST_AUTO_TEST_CASE(incorrect)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
411 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
412 BOOST_REQUIRE(!string_util::is_number("lol"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
413 BOOST_REQUIRE(!string_util::is_number("this is not a number"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
414 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
415
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
416 BOOST_AUTO_TEST_SUITE_END()
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
417
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
418 /*
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
419 * string_util::to_int function
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
420 * ------------------------------------------------------------------
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
421 */
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
422
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
423 BOOST_AUTO_TEST_SUITE(to_int)
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
424
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
425 BOOST_AUTO_TEST_CASE(signed_to_int)
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
426 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
427 BOOST_TEST(string_util::to_int("10") == 10);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
428 BOOST_TEST(string_util::to_int<std::int8_t>("-10") == -10);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
429 BOOST_TEST(string_util::to_int<std::int8_t>("10") == 10);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
430 BOOST_TEST(string_util::to_int<std::int16_t>("-1000") == -1000);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
431 BOOST_TEST(string_util::to_int<std::int16_t>("1000") == 1000);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
432 BOOST_TEST(string_util::to_int<std::int32_t>("-1000") == -1000);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
433 BOOST_TEST(string_util::to_int<std::int32_t>("1000") == 1000);
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
434 }
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
435
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
436 BOOST_AUTO_TEST_CASE(signed_to_int64)
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
437 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
438 BOOST_TEST(string_util::to_int<std::int64_t>("-9223372036854775807") == -9223372036854775807LL);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
439 BOOST_TEST(string_util::to_int<std::int64_t>("9223372036854775807") == 9223372036854775807LL);
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
440 }
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
441
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
442 BOOST_AUTO_TEST_CASE(unsigned_to_uint)
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
443 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
444 BOOST_TEST(string_util::to_uint("10") == 10U);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
445 BOOST_TEST(string_util::to_uint<std::uint8_t>("10") == 10U);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
446 BOOST_TEST(string_util::to_uint<std::uint16_t>("1000") == 1000U);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
447 BOOST_TEST(string_util::to_uint<std::uint32_t>("1000") == 1000U);
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
448 }
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
449
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
450 BOOST_AUTO_TEST_CASE(unsigned_to_uint64)
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
451 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
452 BOOST_TEST(string_util::to_uint<std::uint64_t>("18446744073709551615") == 18446744073709551615ULL);
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
453 }
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
454
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
455 BOOST_AUTO_TEST_SUITE_END()
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
456
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
457 BOOST_AUTO_TEST_SUITE(errors)
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
458
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
459 BOOST_AUTO_TEST_CASE(invalid_argument)
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
460 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
461 BOOST_REQUIRE_THROW(string_util::to_int("plopation"), std::invalid_argument);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
462 BOOST_REQUIRE_THROW(string_util::to_uint("plopation"), std::invalid_argument);
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
463 }
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
464
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
465 BOOST_AUTO_TEST_CASE(out_of_range)
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
466 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
467 BOOST_REQUIRE_THROW(string_util::to_int<std::int8_t>("1000"), std::out_of_range);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
468 BOOST_REQUIRE_THROW(string_util::to_int<std::int8_t>("-1000"), std::out_of_range);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
469 BOOST_REQUIRE_THROW(string_util::to_uint<std::uint8_t>("1000"), std::out_of_range);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
470 BOOST_REQUIRE_THROW(string_util::to_uint<std::uint8_t>("-1000"), std::out_of_range);
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
471 }
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
472
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
473 BOOST_AUTO_TEST_SUITE_END()
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
474
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
475 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
476 * fs_util::find function (name)
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
477 * ------------------------------------------------------------------
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
478 */
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
479
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
480 BOOST_AUTO_TEST_SUITE(fs_find_name)
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
481
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
482 BOOST_AUTO_TEST_CASE(not_recursive)
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
483 {
532
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
484 auto file1 = fs_util::find(CMAKE_SOURCE_DIR "/tests/root", "file-1.txt", false);
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
485 auto file2 = fs_util::find(CMAKE_SOURCE_DIR "/tests/root", "file-2.txt", false);
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
486
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
487 BOOST_TEST(file1.find("file-1.txt") != std::string::npos);
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
488 BOOST_TEST(file2.empty());
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
489 }
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
490
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
491 BOOST_AUTO_TEST_CASE(recursive)
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
492 {
532
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
493 auto file1 = fs_util::find(CMAKE_SOURCE_DIR "/tests/root", "file-1.txt", true);
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
494 auto file2 = fs_util::find(CMAKE_SOURCE_DIR "/tests/root", "file-2.txt", true);
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
495
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
496 BOOST_TEST(file1.find("file-1.txt") != std::string::npos);
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
497 BOOST_TEST(file2.find("file-2.txt") != std::string::npos);
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
498 }
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
499
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
500 BOOST_AUTO_TEST_SUITE_END()
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
501
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
502 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
503 * fs_util::find function (regex)
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
504 * ------------------------------------------------------------------
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
505 */
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
506
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
507 BOOST_AUTO_TEST_SUITE(fs_find_regex)
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
508
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
509 BOOST_AUTO_TEST_CASE(not_recursive)
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
510 {
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
511 const std::regex regex("file-[12]\\.txt");
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
512
532
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
513 auto file = fs_util::find(CMAKE_SOURCE_DIR "/tests/root", regex, false);
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
515 BOOST_TEST(file.find("file-1.txt") != std::string::npos);
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
516 }
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
517
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
518 BOOST_AUTO_TEST_CASE(recursive)
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
519 {
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
520 const std::regex regex("file-[12]\\.txt");
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
521
532
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
522 auto file = fs_util::find(CMAKE_SOURCE_DIR "/tests/root/level-1", regex, true);
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
523
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
524 BOOST_TEST(file.find("file-2.txt") != std::string::npos);
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
525 }
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
526
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
527 BOOST_AUTO_TEST_SUITE_END()
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
528
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
529 } // !irccd