Mercurial > irccd
annotate tests/plugin-hangman/main.cpp @ 259:0fd0290d61b4
CMake: add ALL to add_custom_target for plugins
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 13 Sep 2016 13:01:31 +0200 |
parents | 79d9840811a1 |
children | 8fb6bd57878c |
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 * |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> |
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 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <gtest/gtest.h> |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <irccd/irccd.hpp> |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <irccd/server.hpp> |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #include <irccd/service-plugin.hpp> |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 using namespace irccd; |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 class ServerTest : public Server { |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 private: |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
29 std::string m_last; |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 public: |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
32 inline ServerTest() |
250 | 33 : Server("test") |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
34 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
35 } |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
37 inline const std::string &last() const noexcept |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
38 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
39 return m_last; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
40 } |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
42 void message(std::string target, std::string message) override |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
43 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
44 m_last = util::join({target, message}); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
45 } |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 }; |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 class HangmanTest : public testing::Test { |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 protected: |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
50 Irccd m_irccd; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
51 PluginService &m_ps; |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
53 std::shared_ptr<ServerTest> m_server; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
54 std::shared_ptr<Plugin> m_plugin; |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 public: |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
57 HangmanTest() |
250 | 58 : m_ps(m_irccd.plugins()) |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
59 , m_server(std::make_shared<ServerTest>()) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
60 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
61 m_ps.setFormats("hangman", { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
62 { "asked", "asked=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{letter}" }, |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
63 { "dead", "dead=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
64 { "found", "found=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
65 { "start", "start=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
66 { "win", "win=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
67 { "wrong-letter", "wrong-letter=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{letter}" }, |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
68 { "wrong-player", "wrong-player=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{letter}" }, |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
69 { "wrong-word", "wrong-word=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" } |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
70 }); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
71 } |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
73 void load(PluginConfig config = PluginConfig()) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
74 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
75 // Add file if not there. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
76 if (config.count("file") == 0) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
77 config.emplace("file", SOURCEDIR "/words.conf"); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
79 m_ps.setConfig("hangman", config); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
80 m_ps.load("hangman", PLUGINDIR "/hangman.js"); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
81 m_plugin = m_ps.require("hangman"); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
82 } |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 }; |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 TEST_F(HangmanTest, asked) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
87 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
89 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
90 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "s"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
91 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "s"}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
93 ASSERT_EQ("#hangman:asked=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s", m_server->last()); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 TEST_F(HangmanTest, dead) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
98 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
100 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
101 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "a"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
102 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "b"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
103 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "c"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
104 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "d"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
105 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "e"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
106 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "f"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
107 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "g"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
108 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "h"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
109 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "i"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
110 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "j"}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
112 ASSERT_EQ("#hangman:dead=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky", m_server->last()); |
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 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 TEST_F(HangmanTest, found) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
117 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
119 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
120 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "s"}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
122 ASSERT_EQ("#hangman:found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _", m_server->last()); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 TEST_F(HangmanTest, start) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
127 load(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
129 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
131 ASSERT_EQ("#hangman:start=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:_ _ _", m_server->last()); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 TEST_F(HangmanTest, win1) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
136 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
138 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
139 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "s"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
140 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "k"}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
141 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "y"}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
143 ASSERT_EQ("#hangman:win=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky", m_server->last()); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 TEST_F(HangmanTest, win2) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
148 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
150 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
151 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "sky"}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
153 ASSERT_EQ("#hangman:win=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:sky", m_server->last()); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 TEST_F(HangmanTest, wrongLetter) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
158 load(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
160 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
161 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "x"}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
163 ASSERT_EQ("#hangman:wrong-letter=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:x", m_server->last()); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
166 TEST_F(HangmanTest, wrongWord) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
168 load(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
170 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
171 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "cheese"}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
173 ASSERT_EQ("#hangman:wrong-word=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:cheese", m_server->last()); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 } |
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 TEST_F(HangmanTest, collaborativeDisabled) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
178 // Disable collaborative mode. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
179 load({{ "collaborative", "false" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
181 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
182 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "s"}); |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
183 ASSERT_EQ("#hangman:found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _", m_server->last()); |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
184 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "k"}); |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
185 ASSERT_EQ("#hangman:found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s k _", m_server->last()); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
186 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 TEST_F(HangmanTest, collaborativeEnabled) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
190 // Enable collaborative mode. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
191 load({{ "collaborative", "true" }}); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
192 |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
193 m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""}); |
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
194 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "s"}); |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
195 ASSERT_EQ("#hangman:found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _", m_server->last()); |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
196 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", "k"}); |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
197 ASSERT_EQ("#hangman:wrong-player=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:k", m_server->last()); |
210
2d10d7e661a0
Irccd: make object based IRC events, #522
David Demelier <markand@malikania.fr>
parents:
207
diff
changeset
|
198 m_plugin->onMessage(m_irccd, MessageEvent{m_server, "francis!francis@localhost", "#hangman", "k"}); |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
199 ASSERT_EQ("#hangman:found=hangman:!hangman:test:#hangman:francis!francis@localhost:francis:s k _", m_server->last()); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
200 } |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
201 |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
202 int main(int argc, char **argv) |
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
203 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
204 path::setApplicationPath(argv[0]); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
205 testing::InitGoogleTest(&argc, argv); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
206 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
195
diff
changeset
|
207 return RUN_ALL_TESTS(); |
155
20cd5dc0e063
Plugin hangman: add initial unit test
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
208 } |