Mercurial > irccd
annotate tests/src/plugins/hangman/main.cpp @ 773:8c44bbcbbab9
Misc: style, cleanup and update
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 26 Oct 2018 13:01:00 +0200 |
parents | 791d7591eca7 |
children | f362994133ca |
rev | line source |
---|---|
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * main.cpp -- test hangman plugin |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
628
27587ff92a64
Misc: update copyrights
David Demelier <markand@malikania.fr>
parents:
611
diff
changeset
|
4 * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr> |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
19 #include <unordered_map> |
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
20 #include <unordered_set> |
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
21 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
22 #define BOOST_TEST_MODULE "Hangman plugin" |
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
23 #include <boost/test/unit_test.hpp> |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
596
35832b7f4f9d
Irccd: move files to daemon folder, closes #731
David Demelier <markand@malikania.fr>
parents:
584
diff
changeset
|
25 #include <irccd/daemon/irccd.hpp> |
35832b7f4f9d
Irccd: move files to daemon folder, closes #731
David Demelier <markand@malikania.fr>
parents:
584
diff
changeset
|
26 #include <irccd/daemon/server.hpp> |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 |
759
791d7591eca7
Tests: rename plugin_test to js_plugin_fixture
David Demelier <markand@malikania.fr>
parents:
741
diff
changeset
|
28 #include <irccd/test/js_plugin_fixture.hpp> |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
30 namespace irccd { |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 |
723
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
32 namespace { |
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
33 |
759
791d7591eca7
Tests: rename plugin_test to js_plugin_fixture
David Demelier <markand@malikania.fr>
parents:
741
diff
changeset
|
34 class hangman_test : public js_plugin_fixture { |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
35 public: |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
36 hangman_test() |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
37 : js_plugin_fixture(PLUGIN_PATH) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
38 { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
39 plugin_->set_formats({ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
40 { "asked", "asked=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{letter}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
41 { "dead", "dead=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
42 { "found", "found=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
43 { "start", "start=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
44 { "running", "running=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
45 { "win", "win=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
46 { "wrong-letter", "wrong-letter=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{letter}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
47 { "wrong-player", "wrong-player=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{letter}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
48 { "wrong-word", "wrong-word=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" } |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
49 }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
50 } |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
52 void load(plugin::map config = {}) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
53 { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
54 // Add file if not there. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
55 if (config.count("file") == 0) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
56 config.emplace("file", CMAKE_CURRENT_SOURCE_DIR "/words.conf"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
58 plugin_->set_options(config); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
59 plugin_->handle_load(irccd_); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
60 } |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 }; |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
63 BOOST_FIXTURE_TEST_SUITE(hangman_test_suite, hangman_test) |
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
64 |
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
65 BOOST_AUTO_TEST_CASE(asked) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
67 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
69 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
70 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
71 auto cmd = server_->find("message").back(); |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
72 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
73 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
74 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "start=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:_ _ _"); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
75 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
76 plugin_->handle_message(irccd_, {server_, "jean!jean@localhost", "#hangman", "s"}); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
77 cmd = server_->find("message").back(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
79 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
80 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
81 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
82 plugin_->handle_message(irccd_, {server_, "jean!jean@localhost", "#hangman", "s"}); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
83 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
84 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
85 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
86 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "asked=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
89 BOOST_AUTO_TEST_CASE(dead) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
91 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
93 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
94 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "a" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
95 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "b" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
96 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "c" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
97 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "d" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
98 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "e" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
99 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "f" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
100 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "g" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
101 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "h" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
102 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "i" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
103 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "j" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
105 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
106 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
107 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
108 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "dead=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
111 BOOST_AUTO_TEST_CASE(found) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
113 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
115 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
116 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
118 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
119 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
120 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
121 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
124 BOOST_AUTO_TEST_CASE(start) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
126 load(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
128 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", ""}); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
129 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
130 const auto cmd = server_->find("message").back(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
132 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
133 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "start=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:_ _ _"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
136 BOOST_AUTO_TEST_CASE(win1) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
138 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
140 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
141 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
142 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "k" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
143 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "y" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
145 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
146 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
147 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
148 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "win=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
151 BOOST_AUTO_TEST_CASE(win2) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
153 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
155 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
156 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "sky" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
158 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
159 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
160 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
161 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "win=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
164 BOOST_AUTO_TEST_CASE(wrong_letter) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
166 load(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
168 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
169 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "x" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
171 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
172 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
173 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
174 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-letter=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:x"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
176 |
741
cc01813fa027
Tests: improve file naming consistency
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
177 BOOST_AUTO_TEST_CASE(wrong_word) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
179 load(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
181 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
182 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "cheese" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
184 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
185 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
186 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
187 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-word=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:cheese"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
190 BOOST_AUTO_TEST_CASE(collaborative_disabled) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
192 // Disable collaborative mode. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
193 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
194 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
195 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
196 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
197 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
198 auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
199 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
200 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
201 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
202 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
203 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "k" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
204 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
205 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
206 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
207 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s k _"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
208 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
209 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
210 BOOST_AUTO_TEST_CASE(collaborative_enabled) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
211 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
212 // Enable collaborative mode. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
213 load({{ "collaborative", "true" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
214 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
215 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
216 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
217 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
218 auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
219 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
220 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
221 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
222 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
223 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "k" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
224 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
225 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
226 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
227 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-player=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:k"); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
228 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
229 plugin_->handle_message(irccd_, { server_, "francis!francis@localhost", "#hangman", "k" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
230 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
231 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
232 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
233 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:francis!francis@localhost:francis:s k _"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
234 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
235 |
741
cc01813fa027
Tests: improve file naming consistency
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
236 BOOST_AUTO_TEST_CASE(issue_642) |
436
a2ed6bc6e42c
Fix #642: fix case sensitivity in hangman, roulette
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
237 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
238 load(); |
436
a2ed6bc6e42c
Fix #642: fix case sensitivity in hangman, roulette
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
239 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
240 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
241 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#HANGMAN", "s" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
242 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
243 auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
244 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
245 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
246 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _"); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
247 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
248 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#HaNGMaN", "k" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
249 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
250 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
251 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
252 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "wrong-player=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:k"); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
253 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
254 plugin_->handle_message(irccd_, { server_, "francis!francis@localhost", "#hAngmAn", "k" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
255 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
256 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
257 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
258 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:#hangman:francis!francis@localhost:francis:s k _"); |
436
a2ed6bc6e42c
Fix #642: fix case sensitivity in hangman, roulette
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
259 } |
a2ed6bc6e42c
Fix #642: fix case sensitivity in hangman, roulette
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
260 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
261 BOOST_AUTO_TEST_CASE(query) |
272
8fb6bd57878c
Plugin hangman: allow usage in query, closes #424
David Demelier <markand@malikania.fr>
parents:
250
diff
changeset
|
262 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
263 load(); |
272
8fb6bd57878c
Plugin hangman: allow usage in query, closes #424
David Demelier <markand@malikania.fr>
parents:
250
diff
changeset
|
264 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
265 // Query mode is never collaborative. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
266 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "irccd", "" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
267 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
268 auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
269 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
270 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
271 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "start=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:_ _ _"); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
272 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
273 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "irccd", "s" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
274 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
275 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
276 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
277 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:s _ _"); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
278 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
279 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "irccd", "k" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
280 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
281 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
282 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
283 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "found=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:s k _"); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
284 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
285 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "irccd", "sky" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
286 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
287 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
288 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "jean!jean@localhost"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
289 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "win=hangman:!hangman:test:jean!jean@localhost:jean!jean@localhost:jean:sky"); |
272
8fb6bd57878c
Plugin hangman: allow usage in query, closes #424
David Demelier <markand@malikania.fr>
parents:
250
diff
changeset
|
290 } |
8fb6bd57878c
Plugin hangman: allow usage in query, closes #424
David Demelier <markand@malikania.fr>
parents:
250
diff
changeset
|
291 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
292 BOOST_AUTO_TEST_CASE(running) |
437
722f2bbd654a
Plugin hangman: show current word on command, closes #643
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
293 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
294 load(); |
437
722f2bbd654a
Plugin hangman: show current word on command, closes #643
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
295 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
296 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
297 plugin_->handle_message(irccd_, { server_, "jean!jean@localhost", "#hangman", "y" }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
298 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#hangman", "" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
299 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
300 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
301 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
302 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#hangman"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
303 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "running=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:_ _ y"); |
437
722f2bbd654a
Plugin hangman: show current word on command, closes #643
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
304 } |
722f2bbd654a
Plugin hangman: show current word on command, closes #643
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
305 |
741
cc01813fa027
Tests: improve file naming consistency
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
306 BOOST_AUTO_TEST_CASE(issue_644) |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
307 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
308 /* |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
309 * To be sure that the selection use the same list, we create a list of |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
310 * three words that has different size to determine which one was selected. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
311 * |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
312 * Then we run 3 games and verify that the old selection is not the same |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
313 * as the current. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
314 * |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
315 * This is not very accurate but it's better than nothing. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
316 */ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
317 load({{ "file", CMAKE_CURRENT_SOURCE_DIR "/issue-644.conf" }}); |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
318 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
319 std::unordered_map<unsigned, std::string> words{ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
320 { 5, "abc" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
321 { 7, "abcd" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
322 { 9, "abcde" } |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
323 }; |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
324 std::unordered_set<unsigned> found; |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
325 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
326 plugin_->set_formats({ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
327 { "start", "#{word}" } |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
328 }); |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
329 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
330 unsigned last, current; |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
331 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
332 // 1. Initial game + finish. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
333 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", ""}); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
334 last = std::any_cast<std::string>(server_->find("message").back()[1]).length(); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
335 found.insert(last); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
336 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", words[last]}); |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
337 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
338 // 2. Current must not be the last one. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
339 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", ""}); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
340 current = std::any_cast<std::string>(server_->find("message").back()[1]).length(); |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
341 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
342 BOOST_TEST(last != current); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
343 BOOST_TEST(0U == found.count(current)); |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
344 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
345 found.insert(current); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
346 last = current; |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
347 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", words[current]}); |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
348 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
349 // 3. Last word must be the one that is kept into the map. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
350 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#hangman", ""}); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
351 current = std::any_cast<std::string>(server_->find("message").back()[1]).length(); |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
352 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
353 BOOST_TEST(last != current); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
354 BOOST_TEST(0U == found.count(current)); |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
355 } |
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
356 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
357 BOOST_AUTO_TEST_SUITE_END() |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
358 |
723
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
359 } // !namespace |
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
360 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
361 } // !irccd |