Mercurial > irccd
comparison tests/src/dynlib-plugin/main.cpp @ 581:a51b5dd5b761
Tests: put everything in src/
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 04 Dec 2017 14:12:13 +0100 |
parents | tests/dynlib_plugin/main.cpp@458e34f16c1f |
children | 55cc4ba15026 |
comparison
equal
deleted
inserted
replaced
580:2e16c3623531 | 581:a51b5dd5b761 |
---|---|
1 /* | |
2 * main.cpp -- test dynlib_plugin | |
3 * | |
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr> | |
5 * | |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
19 #define BOOST_TEST_MODULE "dynlib_plugin" | |
20 #include <boost/test/unit_test.hpp> | |
21 | |
22 /* | |
23 * For this test, we open a plugin written in C++ and pass a journal_server | |
24 * class for each of the plugin function. | |
25 * | |
26 * Then we verify that the appropriate function has been called correctly. | |
27 * | |
28 * Functions load, unload and reload can not be tested though. | |
29 */ | |
30 | |
31 #include <irccd.hpp> | |
32 #include <dynlib_plugin.hpp> | |
33 #include <journal_server.hpp> | |
34 | |
35 namespace irccd { | |
36 | |
37 class fixture { | |
38 protected: | |
39 std::shared_ptr<journal_server> server_; | |
40 std::shared_ptr<plugin> plugin_; | |
41 irccd irccd_; | |
42 | |
43 inline fixture() | |
44 : server_(std::make_shared<journal_server>("test")) | |
45 { | |
46 plugin_ = dynlib_plugin_loader({CMAKE_CURRENT_BINARY_DIR}).find("test-plugin"); | |
47 | |
48 if (!plugin_) | |
49 throw std::runtime_error("test plugin not found"); | |
50 } | |
51 }; | |
52 | |
53 BOOST_FIXTURE_TEST_SUITE(dynlib_plugin_suite, fixture) | |
54 | |
55 BOOST_AUTO_TEST_CASE(on_command) | |
56 { | |
57 plugin_->on_command(irccd_, {server_, "", "", ""}); | |
58 | |
59 BOOST_TEST(server_->cqueue().size() == 1U); | |
60 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
61 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_command"); | |
62 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
63 } | |
64 | |
65 BOOST_AUTO_TEST_CASE(on_connect) | |
66 { | |
67 plugin_->on_connect(irccd_, {server_}); | |
68 | |
69 BOOST_TEST(server_->cqueue().size() == 1U); | |
70 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
71 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_connect"); | |
72 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
73 } | |
74 | |
75 BOOST_AUTO_TEST_CASE(on_channel_mode) | |
76 { | |
77 plugin_->on_channel_mode(irccd_, {server_, "", "", "", ""}); | |
78 | |
79 BOOST_TEST(server_->cqueue().size() == 1U); | |
80 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
81 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_channel_mode"); | |
82 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
83 } | |
84 | |
85 BOOST_AUTO_TEST_CASE(on_channel_notice) | |
86 { | |
87 plugin_->on_channel_notice(irccd_, {server_, "", "", ""}); | |
88 | |
89 BOOST_TEST(server_->cqueue().size() == 1U); | |
90 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
91 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_channel_notice"); | |
92 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
93 } | |
94 | |
95 BOOST_AUTO_TEST_CASE(on_invite) | |
96 { | |
97 plugin_->on_invite(irccd_, {server_, "", "", ""}); | |
98 | |
99 BOOST_TEST(server_->cqueue().size() == 1U); | |
100 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
101 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_invite"); | |
102 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
103 } | |
104 | |
105 BOOST_AUTO_TEST_CASE(on_join) | |
106 { | |
107 plugin_->on_join(irccd_, {server_, "", ""}); | |
108 | |
109 BOOST_TEST(server_->cqueue().size() == 1U); | |
110 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
111 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_join"); | |
112 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
113 } | |
114 | |
115 BOOST_AUTO_TEST_CASE(on_kick) | |
116 { | |
117 plugin_->on_kick(irccd_, {server_, "", "", "", ""}); | |
118 | |
119 BOOST_TEST(server_->cqueue().size() == 1U); | |
120 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
121 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_kick"); | |
122 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
123 } | |
124 | |
125 BOOST_AUTO_TEST_CASE(on_message) | |
126 { | |
127 plugin_->on_message(irccd_, {server_, "", "", ""}); | |
128 | |
129 BOOST_TEST(server_->cqueue().size() == 1U); | |
130 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
131 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_message"); | |
132 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
133 } | |
134 | |
135 BOOST_AUTO_TEST_CASE(on_me) | |
136 { | |
137 plugin_->on_me(irccd_, {server_, "", "", ""}); | |
138 | |
139 BOOST_TEST(server_->cqueue().size() == 1U); | |
140 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
141 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_me"); | |
142 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
143 } | |
144 | |
145 BOOST_AUTO_TEST_CASE(on_mode) | |
146 { | |
147 plugin_->on_mode(irccd_, {server_, "", ""}); | |
148 | |
149 BOOST_TEST(server_->cqueue().size() == 1U); | |
150 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
151 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_mode"); | |
152 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
153 } | |
154 | |
155 BOOST_AUTO_TEST_CASE(on_names) | |
156 { | |
157 plugin_->on_names(irccd_, {server_, "", {}}); | |
158 | |
159 BOOST_TEST(server_->cqueue().size() == 1U); | |
160 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
161 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_names"); | |
162 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
163 } | |
164 | |
165 BOOST_AUTO_TEST_CASE(on_nick) | |
166 { | |
167 plugin_->on_nick(irccd_, {server_, "", ""}); | |
168 | |
169 BOOST_TEST(server_->cqueue().size() == 1U); | |
170 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
171 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_nick"); | |
172 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
173 } | |
174 | |
175 BOOST_AUTO_TEST_CASE(on_notice) | |
176 { | |
177 plugin_->on_notice(irccd_, {server_, "", ""}); | |
178 | |
179 BOOST_TEST(server_->cqueue().size() == 1U); | |
180 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
181 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_notice"); | |
182 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
183 } | |
184 | |
185 BOOST_AUTO_TEST_CASE(on_part) | |
186 { | |
187 plugin_->on_part(irccd_, {server_, "", "", ""}); | |
188 | |
189 BOOST_TEST(server_->cqueue().size() == 1U); | |
190 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
191 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_part"); | |
192 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
193 } | |
194 | |
195 BOOST_AUTO_TEST_CASE(on_query) | |
196 { | |
197 plugin_->on_query(irccd_, {server_, "", ""}); | |
198 | |
199 BOOST_TEST(server_->cqueue().size() == 1U); | |
200 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
201 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_query"); | |
202 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
203 } | |
204 | |
205 BOOST_AUTO_TEST_CASE(on_query_command) | |
206 { | |
207 plugin_->on_query_command(irccd_, {server_, "", ""}); | |
208 | |
209 BOOST_TEST(server_->cqueue().size() == 1U); | |
210 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
211 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_query_command"); | |
212 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
213 } | |
214 | |
215 BOOST_AUTO_TEST_CASE(on_query_topic) | |
216 { | |
217 plugin_->on_topic(irccd_, {server_, "", "", ""}); | |
218 | |
219 BOOST_TEST(server_->cqueue().size() == 1U); | |
220 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
221 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_topic"); | |
222 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
223 } | |
224 | |
225 BOOST_AUTO_TEST_CASE(on_whois) | |
226 { | |
227 plugin_->on_whois(irccd_, {server_, {"", "", "", "", {}}}); | |
228 | |
229 BOOST_TEST(server_->cqueue().size() == 1U); | |
230 BOOST_TEST(server_->cqueue()[0]["command"].get<std::string>() == "message"); | |
231 BOOST_TEST(server_->cqueue()[0]["message"].get<std::string>() == "on_whois"); | |
232 BOOST_TEST(server_->cqueue()[0]["target"].get<std::string>() == "test"); | |
233 } | |
234 | |
235 BOOST_AUTO_TEST_SUITE_END() | |
236 | |
237 } // !irccd |