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