diff 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
line wrap: on
line diff
--- a/tests/src/irccdctl/cli-plugin-reload/main.cpp	Thu Apr 12 19:52:10 2018 +0200
+++ b/tests/src/irccdctl/cli-plugin-reload/main.cpp	Thu Apr 12 20:14:07 2018 +0200
@@ -19,31 +19,43 @@
 #define BOOST_TEST_MODULE "irccdctl plugin-reload"
 #include <boost/test/unit_test.hpp>
 
-#include <irccd/test/cli_test.hpp>
+#include <irccd/test/plugin_cli_test.hpp>
 
 namespace irccd {
 
-BOOST_FIXTURE_TEST_SUITE(plugin_reload_suite, cli_test)
+namespace {
+
+class custom_plugin : public plugin {
+public:
+    bool reloaded_{false};
+
+    custom_plugin()
+        : plugin("p", "local")
+    {
+    }
+
+    void handle_reload(irccd&) override
+    {
+        reloaded_ = true;
+    }
+};
+
+} // !namespace
+
+BOOST_FIXTURE_TEST_SUITE(plugin_reload_suite, plugin_cli_test)
 
 BOOST_AUTO_TEST_CASE(simple)
 {
-    run_irccd("irccd-plugins.conf");
+    const auto plugin = std::make_shared<custom_plugin>();
 
-    {
-        // onReload will update the config.
-        const auto result = run_irccdctl({ "plugin-reload", "foo" });
+    irccd_.plugins().add(plugin);
+    start();
 
-        BOOST_TEST(result.first.size() == 0U);
-        BOOST_TEST(result.second.size() == 0U);
-    }
+    const auto result = exec({ "plugin-reload", "p" });
 
-    {
-        const auto result = run_irccdctl({ "plugin-config", "foo", "reloaded" });
-
-        BOOST_TEST(result.first.size() == 2U);
-        BOOST_TEST(result.second.size() == 0U);
-        BOOST_TEST(result.first[0] == "true");
-    }
+    BOOST_TEST(result.first.size() == 0U);
+    BOOST_TEST(result.second.size() == 0U);
+    BOOST_TEST(plugin->reloaded_);
 }
 
 BOOST_AUTO_TEST_SUITE_END()