irccd  3.0.3
mock_plugin.hpp
1 /*
2  * mock_plugin.hpp -- mock plugin
3  *
4  * Copyright (c) 2013-2019 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 #ifndef IRCCD_TEST_MOCK_PLUGIN_HPP
20 #define IRCCD_TEST_MOCK_PLUGIN_HPP
21 
27 #include <irccd/daemon/plugin.hpp>
28 
29 #include "mock.hpp"
30 
31 namespace irccd::test {
32 
36 class mock_plugin : public daemon::plugin, public mock {
37 private:
38  map options_;
39  map templates_;
40  map paths_;
41 
42 public:
43  using plugin::plugin;
44 
48  auto get_name() const noexcept -> std::string_view override;
49 
53  auto get_author() const noexcept -> std::string_view override;
54 
58  auto get_license() const noexcept -> std::string_view override;
59 
63  auto get_summary() const noexcept -> std::string_view override;
64 
68  auto get_version() const noexcept -> std::string_view override;
69 
73  auto get_options() const -> map override;
74 
78  void set_options(const map& map) override;
79 
83  auto get_templates() const -> map override;
84 
88  void set_templates(const map& map) override;
89 
93  auto get_paths() const -> map override;
94 
98  void set_paths(const map& map) override;
99 
103  void handle_command(daemon::bot& bot, const daemon::message_event& event) override;
104 
108  void handle_connect(daemon::bot& bot, const daemon::connect_event& event) override;
109 
113  void handle_disconnect(daemon::bot& bot, const daemon::disconnect_event& event) override;
114 
118  void handle_invite(daemon::bot& bot, const daemon::invite_event& event) override;
119 
123  void handle_join(daemon::bot& bot, const daemon::join_event& event) override;
124 
128  void handle_kick(daemon::bot& bot, const daemon::kick_event& event) override;
129 
133  void handle_load(daemon::bot& bot) override;
134 
138  void handle_message(daemon::bot& bot, const daemon::message_event& event) override;
139 
143  void handle_me(daemon::bot& bot, const daemon::me_event& event) override;
144 
148  void handle_mode(daemon::bot& bot, const daemon::mode_event& event) override;
149 
153  void handle_names(daemon::bot& bot, const daemon::names_event& event) override;
154 
158  void handle_nick(daemon::bot& bot, const daemon::nick_event& event) override;
159 
163  void handle_notice(daemon::bot& bot, const daemon::notice_event& event) override;
164 
168  void handle_part(daemon::bot& bot, const daemon::part_event& event) override;
169 
173  void handle_reload(daemon::bot& bot) override;
174 
178  void handle_topic(daemon::bot& bot, const daemon::topic_event& event) override;
179 
183  void handle_unload(daemon::bot& bot) override;
184 
188  void handle_whois(daemon::bot& bot, const daemon::whois_event& event) override;
189 };
190 
191 } // !irccd::test
192 
193 #endif // !IRCCD_TEST_MOCK_PLUGIN_HPP
irccd::test::mock_plugin::handle_nick
void handle_nick(daemon::bot &bot, const daemon::nick_event &event) override
irccd::test::mock_plugin::set_paths
void set_paths(const map &map) override
irccd::daemon::kick_event
Kick event.
Definition: server.hpp:121
irccd::test::mock_plugin::set_templates
void set_templates(const map &map) override
irccd::daemon::topic_event
Topic event.
Definition: server.hpp:211
irccd::daemon::connect_event
Connection success event.
Definition: server.hpp:84
irccd::test::mock_plugin::handle_topic
void handle_topic(daemon::bot &bot, const daemon::topic_event &event) override
irccd::test::mock_plugin::handle_reload
void handle_reload(daemon::bot &bot) override
irccd::test::mock_plugin::handle_notice
void handle_notice(daemon::bot &bot, const daemon::notice_event &event) override
irccd::daemon::whois_event
Whois event.
Definition: server.hpp:222
irccd::daemon::me_event
CTCP action event.
Definition: server.hpp:144
irccd::test::mock_plugin::handle_kick
void handle_kick(daemon::bot &bot, const daemon::kick_event &event) override
irccd::test::mock_plugin::get_summary
auto get_summary() const noexcept -> std::string_view override
irccd::test::mock_plugin::handle_unload
void handle_unload(daemon::bot &bot) override
irccd::daemon::plugin
Abstract plugin.
Definition: plugin.hpp:61
irccd::test::mock_plugin::handle_message
void handle_message(daemon::bot &bot, const daemon::message_event &event) override
irccd::daemon::notice_event
Notice event.
Definition: server.hpp:189
irccd::daemon::part_event
Part event.
Definition: server.hpp:200
irccd::daemon::event
std::variant< std::monostate, connect_event, disconnect_event, invite_event, join_event, kick_event, me_event, message_event, mode_event, names_event, nick_event, notice_event, part_event, topic_event, whois_event > event
Store all possible events.
Definition: server.hpp:247
irccd::test::mock
Keep track of function invocations.
Definition: mock.hpp:38
irccd::test::mock_plugin::get_license
auto get_license() const noexcept -> std::string_view override
irccd::test::mock_plugin::handle_command
void handle_command(daemon::bot &bot, const daemon::message_event &event) override
irccd::daemon::mode_event
Mode event.
Definition: server.hpp:155
irccd::test::mock_plugin::handle_join
void handle_join(daemon::bot &bot, const daemon::join_event &event) override
irccd::daemon::join_event
Join event.
Definition: server.hpp:111
irccd::test::mock_plugin::handle_names
void handle_names(daemon::bot &bot, const daemon::names_event &event) override
irccd::test::mock_plugin
Mock plugin.
Definition: mock_plugin.hpp:36
irccd::daemon::invite_event
Invite event.
Definition: server.hpp:100
irccd::test::mock_plugin::get_templates
auto get_templates() const -> map override
irccd::test::mock_plugin::get_name
auto get_name() const noexcept -> std::string_view override
irccd::test::mock_plugin::handle_me
void handle_me(daemon::bot &bot, const daemon::me_event &event) override
irccd::test::mock_plugin::get_options
auto get_options() const -> map override
irccd::daemon::bot
Irccd main instance.
Definition: bot.hpp:58
irccd::test::mock_plugin::set_options
void set_options(const map &map) override
irccd::test::mock_plugin::get_author
auto get_author() const noexcept -> std::string_view override
irccd::test::mock_plugin::get_version
auto get_version() const noexcept -> std::string_view override
irccd::daemon::message_event
Message event.
Definition: server.hpp:133
irccd::test::mock_plugin::handle_invite
void handle_invite(daemon::bot &bot, const daemon::invite_event &event) override
irccd::daemon::plugin::map
std::unordered_map< std::string, std::string > map
Definition: plugin.hpp:68
irccd::test
Namespace for unit tests.
Definition: broken_plugin.hpp:29
irccd::test::mock_plugin::handle_whois
void handle_whois(daemon::bot &bot, const daemon::whois_event &event) override
irccd::daemon::disconnect_event
Connection success event.
Definition: server.hpp:92
irccd::test::mock_plugin::handle_disconnect
void handle_disconnect(daemon::bot &bot, const daemon::disconnect_event &event) override
irccd::test::mock_plugin::handle_load
void handle_load(daemon::bot &bot) override
irccd::test::mock_plugin::handle_mode
void handle_mode(daemon::bot &bot, const daemon::mode_event &event) override
irccd::test::mock_plugin::handle_part
void handle_part(daemon::bot &bot, const daemon::part_event &event) override
irccd::test::mock_plugin::handle_connect
void handle_connect(daemon::bot &bot, const daemon::connect_event &event) override
irccd::test::mock_plugin::get_paths
auto get_paths() const -> map override
irccd::daemon::nick_event
Nick change event.
Definition: server.hpp:179
irccd::daemon::names_event
Names listing event.
Definition: server.hpp:169