Mercurial > irccd
annotate 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 |
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 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
25 #include <irccd/daemon/bot.hpp> |
596
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 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
30 using irccd::daemon::plugin; |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
31 |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
32 using irccd::test::js_plugin_fixture; |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
33 |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
34 namespace irccd { |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 |
723
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
36 namespace { |
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
37 |
759
791d7591eca7
Tests: rename plugin_test to js_plugin_fixture
David Demelier <markand@malikania.fr>
parents:
741
diff
changeset
|
38 class hangman_test : public js_plugin_fixture { |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
39 public: |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
40 hangman_test() |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
41 : js_plugin_fixture(PLUGIN_PATH) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
42 { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
43 plugin_->set_formats({ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
44 { "asked", "asked=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{letter}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
45 { "dead", "dead=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
46 { "found", "found=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
47 { "start", "start=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
48 { "running", "running=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
49 { "win", "win=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
50 { "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
|
51 { "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
|
52 { "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
|
53 }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
54 } |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
56 void load(plugin::map config = {}) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
57 { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
58 // Add file if not there. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
59 if (config.count("file") == 0) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
60 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
|
61 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
62 plugin_->set_options(config); |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
63 plugin_->handle_load(bot_); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
64 } |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 }; |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
67 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
|
68 |
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
69 BOOST_AUTO_TEST_CASE(asked) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
71 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
73 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
74 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
75 auto cmd = server_->find("message").back(); |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
76 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
77 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
|
78 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
|
79 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
80 plugin_->handle_message(bot_, {server_, "jean!jean@localhost", "#hangman", "s"}); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
81 cmd = server_->find("message").back(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
83 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
|
84 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
|
85 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
86 plugin_->handle_message(bot_, {server_, "jean!jean@localhost", "#hangman", "s"}); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
87 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
88 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
89 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
|
90 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
|
91 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
93 BOOST_AUTO_TEST_CASE(dead) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
95 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
97 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
98 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "a" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
99 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "b" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
100 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "c" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
101 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "d" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
102 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "e" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
103 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "f" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
104 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "g" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
105 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "h" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
106 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "i" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
107 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "j" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
109 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
110 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
111 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
|
112 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
|
113 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
115 BOOST_AUTO_TEST_CASE(found) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
117 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
119 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
120 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
122 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
123 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
124 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
|
125 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
|
126 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
128 BOOST_AUTO_TEST_CASE(start) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
130 load(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
132 plugin_->handle_command(bot_, {server_, "jean!jean@localhost", "#hangman", ""}); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
133 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
134 const auto cmd = server_->find("message").back(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
136 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
|
137 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
|
138 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
140 BOOST_AUTO_TEST_CASE(win1) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
142 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
144 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
145 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
146 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "k" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
147 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "y" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
149 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
150 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
151 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
|
152 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
|
153 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
155 BOOST_AUTO_TEST_CASE(win2) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
157 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
159 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
160 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "sky" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
162 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
163 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
164 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
|
165 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
|
166 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
168 BOOST_AUTO_TEST_CASE(wrong_letter) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
170 load(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
172 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
173 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "x" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
175 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
176 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
177 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
|
178 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
|
179 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 |
741
cc01813fa027
Tests: improve file naming consistency
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
181 BOOST_AUTO_TEST_CASE(wrong_word) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
182 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
183 load(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
184 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
185 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
186 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "cheese" }); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
188 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
189 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
190 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
|
191 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
|
192 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
193 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
194 BOOST_AUTO_TEST_CASE(collaborative_disabled) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
195 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
196 // Disable collaborative mode. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
197 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
198 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
199 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
200 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
201 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
202 auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
203 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
204 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
|
205 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
|
206 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
207 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "k" }); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
208 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
209 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
210 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
|
211 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
|
212 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
213 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
214 BOOST_AUTO_TEST_CASE(collaborative_enabled) |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
215 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
216 // Enable collaborative mode. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
217 load({{ "collaborative", "true" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
218 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
219 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
220 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "s" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
221 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
222 auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
223 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
224 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
|
225 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
|
226 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
227 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "k" }); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
228 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
229 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
230 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
|
231 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
|
232 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
233 plugin_->handle_message(bot_, { server_, "francis!francis@localhost", "#hangman", "k" }); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
234 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
235 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
236 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
|
237 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
|
238 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
239 |
741
cc01813fa027
Tests: improve file naming consistency
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
240 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
|
241 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
242 load(); |
436
a2ed6bc6e42c
Fix #642: fix case sensitivity in hangman, roulette
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
243 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
244 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
245 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#HANGMAN", "s" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
246 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
247 auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
248 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
249 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
|
250 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
|
251 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
252 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#HaNGMaN", "k" }); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
253 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
254 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
255 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
|
256 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
|
257 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
258 plugin_->handle_message(bot_, { server_, "francis!francis@localhost", "#hAngmAn", "k" }); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
259 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
260 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
261 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
|
262 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
|
263 } |
a2ed6bc6e42c
Fix #642: fix case sensitivity in hangman, roulette
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
264 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
265 BOOST_AUTO_TEST_CASE(query) |
272
8fb6bd57878c
Plugin hangman: allow usage in query, closes #424
David Demelier <markand@malikania.fr>
parents:
250
diff
changeset
|
266 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
267 load(); |
272
8fb6bd57878c
Plugin hangman: allow usage in query, closes #424
David Demelier <markand@malikania.fr>
parents:
250
diff
changeset
|
268 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
269 // Query mode is never collaborative. |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
270 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "irccd", "" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
271 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
272 auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
273 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
274 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
|
275 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
|
276 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
277 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "irccd", "s" }); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
278 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
279 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
280 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
|
281 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
|
282 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
283 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "irccd", "k" }); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
284 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
285 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
286 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
|
287 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
|
288 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
289 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "irccd", "sky" }); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
290 cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
291 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
292 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
|
293 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
|
294 } |
8fb6bd57878c
Plugin hangman: allow usage in query, closes #424
David Demelier <markand@malikania.fr>
parents:
250
diff
changeset
|
295 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
296 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
|
297 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
298 load(); |
437
722f2bbd654a
Plugin hangman: show current word on command, closes #643
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
299 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
300 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
301 plugin_->handle_message(bot_, { server_, "jean!jean@localhost", "#hangman", "y" }); |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
302 plugin_->handle_command(bot_, { server_, "jean!jean@localhost", "#hangman", "" }); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
303 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
304 const auto cmd = server_->find("message").back(); |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
305 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
306 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
|
307 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
|
308 } |
722f2bbd654a
Plugin hangman: show current word on command, closes #643
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
309 |
741
cc01813fa027
Tests: improve file naming consistency
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
310 BOOST_AUTO_TEST_CASE(issue_644) |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
311 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
312 /* |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
313 * 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
|
314 * 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
|
315 * |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
316 * 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
|
317 * as the current. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
318 * |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
319 * 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
|
320 */ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
321 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
|
322 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
323 std::unordered_map<unsigned, std::string> words{ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
324 { 5, "abc" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
325 { 7, "abcd" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
326 { 9, "abcde" } |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
327 }; |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
328 std::unordered_set<unsigned> found; |
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 plugin_->set_formats({ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
331 { "start", "#{word}" } |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
332 }); |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
333 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
334 unsigned last, current; |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
335 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
336 // 1. Initial game + finish. |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
337 plugin_->handle_command(bot_, {server_, "jean!jean@localhost", "#hangman", ""}); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
338 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
|
339 found.insert(last); |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
340 plugin_->handle_command(bot_, {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
|
341 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
342 // 2. Current must not be the last one. |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
343 plugin_->handle_command(bot_, {server_, "jean!jean@localhost", "#hangman", ""}); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
344 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
|
345 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
346 BOOST_TEST(last != current); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
347 BOOST_TEST(0U == found.count(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 found.insert(current); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
350 last = current; |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
351 plugin_->handle_command(bot_, {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
|
352 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
353 // 3. Last word must be the one that is kept into the map. |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
354 plugin_->handle_command(bot_, {server_, "jean!jean@localhost", "#hangman", ""}); |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
355 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
|
356 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
357 BOOST_TEST(last != current); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
358 BOOST_TEST(0U == found.count(current)); |
456
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
359 } |
c81b38ec7bd2
Fix #644: fix word list and selection
David Demelier <markand@malikania.fr>
parents:
454
diff
changeset
|
360 |
525
d070d33bf4a0
Plugin hangman: finally switch to boost
David Demelier <markand@malikania.fr>
parents:
522
diff
changeset
|
361 BOOST_AUTO_TEST_SUITE_END() |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
362 |
723
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
363 } // !namespace |
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
364 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
799
diff
changeset
|
365 } // !irccd |