Mercurial > irccd
comparison tests/src/irccdctl/cli-plugin-reload/main.cpp @ 678:a4082de4e94e
Tests: rework cli_test to spawn irccd daemon in a thread, continue #785
Instead of spawning irccd executable, use the irccd class for better
flexibility in test code.
For example, for server tests we will need to use journal_server to see if
commands have been called instead of checking a real IRC server.
While here, add rule-cli-remove test that was forgotten.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 12 Apr 2018 20:14:07 +0200 |
parents | e9153b85b9bd |
children | 3e816cebed2c |
comparison
equal
deleted
inserted
replaced
677:d24200bdeaf8 | 678:a4082de4e94e |
---|---|
17 */ | 17 */ |
18 | 18 |
19 #define BOOST_TEST_MODULE "irccdctl plugin-reload" | 19 #define BOOST_TEST_MODULE "irccdctl plugin-reload" |
20 #include <boost/test/unit_test.hpp> | 20 #include <boost/test/unit_test.hpp> |
21 | 21 |
22 #include <irccd/test/cli_test.hpp> | 22 #include <irccd/test/plugin_cli_test.hpp> |
23 | 23 |
24 namespace irccd { | 24 namespace irccd { |
25 | 25 |
26 BOOST_FIXTURE_TEST_SUITE(plugin_reload_suite, cli_test) | 26 namespace { |
27 | |
28 class custom_plugin : public plugin { | |
29 public: | |
30 bool reloaded_{false}; | |
31 | |
32 custom_plugin() | |
33 : plugin("p", "local") | |
34 { | |
35 } | |
36 | |
37 void handle_reload(irccd&) override | |
38 { | |
39 reloaded_ = true; | |
40 } | |
41 }; | |
42 | |
43 } // !namespace | |
44 | |
45 BOOST_FIXTURE_TEST_SUITE(plugin_reload_suite, plugin_cli_test) | |
27 | 46 |
28 BOOST_AUTO_TEST_CASE(simple) | 47 BOOST_AUTO_TEST_CASE(simple) |
29 { | 48 { |
30 run_irccd("irccd-plugins.conf"); | 49 const auto plugin = std::make_shared<custom_plugin>(); |
31 | 50 |
32 { | 51 irccd_.plugins().add(plugin); |
33 // onReload will update the config. | 52 start(); |
34 const auto result = run_irccdctl({ "plugin-reload", "foo" }); | |
35 | 53 |
36 BOOST_TEST(result.first.size() == 0U); | 54 const auto result = exec({ "plugin-reload", "p" }); |
37 BOOST_TEST(result.second.size() == 0U); | |
38 } | |
39 | 55 |
40 { | 56 BOOST_TEST(result.first.size() == 0U); |
41 const auto result = run_irccdctl({ "plugin-config", "foo", "reloaded" }); | 57 BOOST_TEST(result.second.size() == 0U); |
42 | 58 BOOST_TEST(plugin->reloaded_); |
43 BOOST_TEST(result.first.size() == 2U); | |
44 BOOST_TEST(result.second.size() == 0U); | |
45 BOOST_TEST(result.first[0] == "true"); | |
46 } | |
47 } | 59 } |
48 | 60 |
49 BOOST_AUTO_TEST_SUITE_END() | 61 BOOST_AUTO_TEST_SUITE_END() |
50 | 62 |
51 } // !irccd | 63 } // !irccd |