Mercurial > irccd
comparison tests/src/plugins/hangman/main.cpp @ 809:8460b4a34191
misc: reorganize namespaces, closes #952 @4h
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 16 Nov 2018 12:25:00 +0100 |
parents | f362994133ca |
children | 06cc2f95f479 |
comparison
equal
deleted
inserted
replaced
808:80bccab4a093 | 809:8460b4a34191 |
---|---|
20 #include <unordered_set> | 20 #include <unordered_set> |
21 | 21 |
22 #define BOOST_TEST_MODULE "Hangman plugin" | 22 #define BOOST_TEST_MODULE "Hangman plugin" |
23 #include <boost/test/unit_test.hpp> | 23 #include <boost/test/unit_test.hpp> |
24 | 24 |
25 #include <irccd/daemon/irccd.hpp> | 25 #include <irccd/daemon/bot.hpp> |
26 #include <irccd/daemon/server.hpp> | 26 #include <irccd/daemon/server.hpp> |
27 | 27 |
28 #include <irccd/test/js_plugin_fixture.hpp> | 28 #include <irccd/test/js_plugin_fixture.hpp> |
29 | 29 |
30 namespace irccd::test { | 30 using irccd::daemon::plugin; |
31 | |
32 using irccd::test::js_plugin_fixture; | |
33 | |
34 namespace irccd { | |
31 | 35 |
32 namespace { | 36 namespace { |
33 | 37 |
34 class hangman_test : public js_plugin_fixture { | 38 class hangman_test : public js_plugin_fixture { |
35 public: | 39 public: |
54 // Add file if not there. | 58 // Add file if not there. |
55 if (config.count("file") == 0) | 59 if (config.count("file") == 0) |
56 config.emplace("file", CMAKE_CURRENT_SOURCE_DIR "/words.conf"); | 60 config.emplace("file", CMAKE_CURRENT_SOURCE_DIR "/words.conf"); |
57 | 61 |
58 plugin_->set_options(config); | 62 plugin_->set_options(config); |
59 plugin_->handle_load(irccd_); | 63 plugin_->handle_load(bot_); |
60 } | 64 } |
61 }; | 65 }; |
62 | 66 |
63 BOOST_FIXTURE_TEST_SUITE(hangman_test_suite, hangman_test) | 67 BOOST_FIXTURE_TEST_SUITE(hangman_test_suite, hangman_test) |
64 | 68 |
65 BOOST_AUTO_TEST_CASE(asked) | 69 BOOST_AUTO_TEST_CASE(asked) |
66 { | 70 { |
67 load({{ "collaborative", "false" }}); | 71 load({{ "collaborative", "false" }}); |
68 | 72 |
69 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 73 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
70 | 74 |
71 auto cmd = server_->find("message").back(); | 75 auto cmd = server_->find("message").back(); |
72 | 76 |
73 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 77 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
74 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "start=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:_ _ _"); | 78 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "start=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:_ _ _"); |
75 | 79 |
76 plugin_->handle_message(irccd_, {server_, "jean!jean@localhost", "#hangman", "s"}); | 80 plugin_->handle_message(bot_, {server_, "jean!jean@localhost", "#hangman", "s"}); |
77 cmd = server_->find("message").back(); | 81 cmd = server_->find("message").back(); |
78 | 82 |
79 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 83 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
80 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); | 84 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); |
81 | 85 |
82 plugin_->handle_message(irccd_, {server_, "jean!jean@localhost", "#hangman", "s"}); | 86 plugin_->handle_message(bot_, {server_, "jean!jean@localhost", "#hangman", "s"}); |
83 cmd = server_->find("message").back(); | 87 cmd = server_->find("message").back(); |
84 | 88 |
85 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 89 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
86 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "asked=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s"); | 90 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "asked=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s"); |
87 } | 91 } |
88 | 92 |
89 BOOST_AUTO_TEST_CASE(dead) | 93 BOOST_AUTO_TEST_CASE(dead) |
90 { | 94 { |
91 load({{ "collaborative", "false" }}); | 95 load({{ "collaborative", "false" }}); |
92 | 96 |
93 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 97 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
94 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "a" }); | 98 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "a" }); |
95 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "b" }); | 99 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "b" }); |
96 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "c" }); | 100 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "c" }); |
97 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "d" }); | 101 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "d" }); |
98 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "e" }); | 102 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "e" }); |
99 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "f" }); | 103 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "f" }); |
100 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "g" }); | 104 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "g" }); |
101 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "h" }); | 105 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "h" }); |
102 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "i" }); | 106 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "i" }); |
103 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "j" }); | 107 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "j" }); |
104 | 108 |
105 const auto cmd = server_->find("message").back(); | 109 const auto cmd = server_->find("message").back(); |
106 | 110 |
107 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 111 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
108 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "dead=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky"); | 112 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "dead=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky"); |
110 | 114 |
111 BOOST_AUTO_TEST_CASE(found) | 115 BOOST_AUTO_TEST_CASE(found) |
112 { | 116 { |
113 load({{ "collaborative", "false" }}); | 117 load({{ "collaborative", "false" }}); |
114 | 118 |
115 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 119 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
116 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "s" }); | 120 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
117 | 121 |
118 const auto cmd = server_->find("message").back(); | 122 const auto cmd = server_->find("message").back(); |
119 | 123 |
120 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 124 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
121 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); | 125 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); |
123 | 127 |
124 BOOST_AUTO_TEST_CASE(start) | 128 BOOST_AUTO_TEST_CASE(start) |
125 { | 129 { |
126 load(); | 130 load(); |
127 | 131 |
128 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", ""}); | 132 plugin_->handle_command(bot_, {server_, "jean!jean@localhost", "#hangman", ""}); |
129 | 133 |
130 const auto cmd = server_->find("message").back(); | 134 const auto cmd = server_->find("message").back(); |
131 | 135 |
132 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 136 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
133 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "start=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:_ _ _"); | 137 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "start=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:_ _ _"); |
135 | 139 |
136 BOOST_AUTO_TEST_CASE(win1) | 140 BOOST_AUTO_TEST_CASE(win1) |
137 { | 141 { |
138 load({{ "collaborative", "false" }}); | 142 load({{ "collaborative", "false" }}); |
139 | 143 |
140 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 144 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
141 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "s" }); | 145 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
142 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "k" }); | 146 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "k" }); |
143 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "y" }); | 147 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "y" }); |
144 | 148 |
145 const auto cmd = server_->find("message").back(); | 149 const auto cmd = server_->find("message").back(); |
146 | 150 |
147 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 151 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
148 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "win=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky"); | 152 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "win=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky"); |
150 | 154 |
151 BOOST_AUTO_TEST_CASE(win2) | 155 BOOST_AUTO_TEST_CASE(win2) |
152 { | 156 { |
153 load({{ "collaborative", "false" }}); | 157 load({{ "collaborative", "false" }}); |
154 | 158 |
155 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 159 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
156 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "sky" }); | 160 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "sky" }); |
157 | 161 |
158 const auto cmd = server_->find("message").back(); | 162 const auto cmd = server_->find("message").back(); |
159 | 163 |
160 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 164 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
161 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "win=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky"); | 165 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "win=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky"); |
163 | 167 |
164 BOOST_AUTO_TEST_CASE(wrong_letter) | 168 BOOST_AUTO_TEST_CASE(wrong_letter) |
165 { | 169 { |
166 load(); | 170 load(); |
167 | 171 |
168 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 172 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
169 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "x" }); | 173 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "x" }); |
170 | 174 |
171 const auto cmd = server_->find("message").back(); | 175 const auto cmd = server_->find("message").back(); |
172 | 176 |
173 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 177 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
174 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-letter=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:x"); | 178 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-letter=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:x"); |
176 | 180 |
177 BOOST_AUTO_TEST_CASE(wrong_word) | 181 BOOST_AUTO_TEST_CASE(wrong_word) |
178 { | 182 { |
179 load(); | 183 load(); |
180 | 184 |
181 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 185 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
182 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "cheese" }); | 186 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "cheese" }); |
183 | 187 |
184 const auto cmd = server_->find("message").back(); | 188 const auto cmd = server_->find("message").back(); |
185 | 189 |
186 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 190 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
187 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-word=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:cheese"); | 191 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-word=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:cheese"); |
190 BOOST_AUTO_TEST_CASE(collaborative_disabled) | 194 BOOST_AUTO_TEST_CASE(collaborative_disabled) |
191 { | 195 { |
192 // Disable collaborative mode. | 196 // Disable collaborative mode. |
193 load({{ "collaborative", "false" }}); | 197 load({{ "collaborative", "false" }}); |
194 | 198 |
195 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 199 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
196 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "s" }); | 200 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
197 | 201 |
198 auto cmd = server_->find("message").back(); | 202 auto cmd = server_->find("message").back(); |
199 | 203 |
200 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 204 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
201 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); | 205 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); |
202 | 206 |
203 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "k" }); | 207 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "k" }); |
204 cmd = server_->find("message").back(); | 208 cmd = server_->find("message").back(); |
205 | 209 |
206 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 210 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
207 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s k _"); | 211 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s k _"); |
208 } | 212 } |
210 BOOST_AUTO_TEST_CASE(collaborative_enabled) | 214 BOOST_AUTO_TEST_CASE(collaborative_enabled) |
211 { | 215 { |
212 // Enable collaborative mode. | 216 // Enable collaborative mode. |
213 load({{ "collaborative", "true" }}); | 217 load({{ "collaborative", "true" }}); |
214 | 218 |
215 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 219 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
216 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "s" }); | 220 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
217 | 221 |
218 auto cmd = server_->find("message").back(); | 222 auto cmd = server_->find("message").back(); |
219 | 223 |
220 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 224 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
221 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); | 225 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); |
222 | 226 |
223 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "k" }); | 227 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "k" }); |
224 cmd = server_->find("message").back(); | 228 cmd = server_->find("message").back(); |
225 | 229 |
226 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 230 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
227 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-player=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:k"); | 231 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-player=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:k"); |
228 | 232 |
229 plugin_->handle_message(irccd_, { server_, "francis!francis@localhost", "#hangman", "k" }); | 233 plugin_->handle_message(bot_, { server_, "francis!francis@localhost", "#hangman", "k" }); |
230 cmd = server_->find("message").back(); | 234 cmd = server_->find("message").back(); |
231 | 235 |
232 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 236 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
233 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:francis!francis@localhost:francis:s k _"); | 237 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:francis!francis@localhost:francis:s k _"); |
234 } | 238 } |
235 | 239 |
236 BOOST_AUTO_TEST_CASE(issue_642) | 240 BOOST_AUTO_TEST_CASE(issue_642) |
237 { | 241 { |
238 load(); | 242 load(); |
239 | 243 |
240 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 244 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
241 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#HANGMAN", "s" }); | 245 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#HANGMAN", "s" }); |
242 | 246 |
243 auto cmd = server_->find("message").back(); | 247 auto cmd = server_->find("message").back(); |
244 | 248 |
245 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 249 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
246 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); | 250 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); |
247 | 251 |
248 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#HaNGMaN", "k" }); | 252 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#HaNGMaN", "k" }); |
249 cmd = server_->find("message").back(); | 253 cmd = server_->find("message").back(); |
250 | 254 |
251 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 255 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
252 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-player=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:k"); | 256 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-player=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:k"); |
253 | 257 |
254 plugin_->handle_message(irccd_, { server_, "francis!francis@localhost", "#hAngmAn", "k" }); | 258 plugin_->handle_message(bot_, { server_, "francis!francis@localhost", "#hAngmAn", "k" }); |
255 cmd = server_->find("message").back(); | 259 cmd = server_->find("message").back(); |
256 | 260 |
257 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 261 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
258 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:francis!francis@localhost:francis:s k _"); | 262 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:francis!francis@localhost:francis:s k _"); |
259 } | 263 } |
261 BOOST_AUTO_TEST_CASE(query) | 265 BOOST_AUTO_TEST_CASE(query) |
262 { | 266 { |
263 load(); | 267 load(); |
264 | 268 |
265 // Query mode is never collaborative. | 269 // Query mode is never collaborative. |
266 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "irccd", "" }); | 270 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "irccd", "" }); |
267 | 271 |
268 auto cmd = server_->find("message").back(); | 272 auto cmd = server_->find("message").back(); |
269 | 273 |
270 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); | 274 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); |
271 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "start=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:_ _ _"); | 275 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "start=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:_ _ _"); |
272 | 276 |
273 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "irccd", "s" }); | 277 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "irccd", "s" }); |
274 cmd = server_->find("message").back(); | 278 cmd = server_->find("message").back(); |
275 | 279 |
276 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); | 280 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); |
277 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:s _ _"); | 281 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:s _ _"); |
278 | 282 |
279 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "irccd", "k" }); | 283 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "irccd", "k" }); |
280 cmd = server_->find("message").back(); | 284 cmd = server_->find("message").back(); |
281 | 285 |
282 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); | 286 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); |
283 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:s k _"); | 287 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:s k _"); |
284 | 288 |
285 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "irccd", "sky" }); | 289 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "irccd", "sky" }); |
286 cmd = server_->find("message").back(); | 290 cmd = server_->find("message").back(); |
287 | 291 |
288 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); | 292 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); |
289 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "win=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:sky"); | 293 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "win=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:sky"); |
290 } | 294 } |
291 | 295 |
292 BOOST_AUTO_TEST_CASE(running) | 296 BOOST_AUTO_TEST_CASE(running) |
293 { | 297 { |
294 load(); | 298 load(); |
295 | 299 |
296 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 300 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
297 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "y" }); | 301 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "y" }); |
298 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); | 302 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
299 | 303 |
300 const auto cmd = server_->find("message").back(); | 304 const auto cmd = server_->find("message").back(); |
301 | 305 |
302 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); | 306 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
303 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "running=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:_ _ y"); | 307 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "running=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:_ _ y"); |
328 }); | 332 }); |
329 | 333 |
330 unsigned last, current; | 334 unsigned last, current; |
331 | 335 |
332 // 1. Initial game + finish. | 336 // 1. Initial game + finish. |
333 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", ""}); | 337 plugin_->handle_command(bot_, {server_, "jean!jean@localhost", "#hangman", ""}); |
334 last = std::any_cast<std::string>(server_->find("message").back()[1]).length(); | 338 last = std::any_cast<std::string>(server_->find("message").back()[1]).length(); |
335 found.insert(last); | 339 found.insert(last); |
336 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", words[last]}); | 340 plugin_->handle_command(bot_, {server_, "jean!jean@localhost", "#hangman", words[last]}); |
337 | 341 |
338 // 2. Current must not be the last one. | 342 // 2. Current must not be the last one. |
339 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", ""}); | 343 plugin_->handle_command(bot_, {server_, "jean!jean@localhost", "#hangman", ""}); |
340 current = std::any_cast<std::string>(server_->find("message").back()[1]).length(); | 344 current = std::any_cast<std::string>(server_->find("message").back()[1]).length(); |
341 | 345 |
342 BOOST_TEST(last != current); | 346 BOOST_TEST(last != current); |
343 BOOST_TEST(0U == found.count(current)); | 347 BOOST_TEST(0U == found.count(current)); |
344 | 348 |
345 found.insert(current); | 349 found.insert(current); |
346 last = current; | 350 last = current; |
347 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", words[current]}); | 351 plugin_->handle_command(bot_, {server_, "jean!jean@localhost", "#hangman", words[current]}); |
348 | 352 |
349 // 3. Last word must be the one that is kept into the map. | 353 // 3. Last word must be the one that is kept into the map. |
350 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", ""}); | 354 plugin_->handle_command(bot_, {server_, "jean!jean@localhost", "#hangman", ""}); |
351 current = std::any_cast<std::string>(server_->find("message").back()[1]).length(); | 355 current = std::any_cast<std::string>(server_->find("message").back()[1]).length(); |
352 | 356 |
353 BOOST_TEST(last != current); | 357 BOOST_TEST(last != current); |
354 BOOST_TEST(0U == found.count(current)); | 358 BOOST_TEST(0U == found.count(current)); |
355 } | 359 } |
356 | 360 |
357 BOOST_AUTO_TEST_SUITE_END() | 361 BOOST_AUTO_TEST_SUITE_END() |
358 | 362 |
359 } // !namespace | 363 } // !namespace |
360 | 364 |
361 } // !irccd::test | 365 } // !irccd |