diff tests/cmd-plugin-unload/main.cpp @ 555:9b6b0d7d89c6

Tests: convert cmd-plugin-*, #593
author David Demelier <markand@malikania.fr>
date Fri, 24 Nov 2017 21:04:32 +0100
parents 7e273b7f4f92
children 153e84e7b09b
line wrap: on
line diff
--- a/tests/cmd-plugin-unload/main.cpp	Fri Nov 24 20:30:42 2017 +0100
+++ b/tests/cmd-plugin-unload/main.cpp	Fri Nov 24 21:04:32 2017 +0100
@@ -16,65 +16,62 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include <command.hpp>
-#include <command-tester.hpp>
-#include <server-tester.hpp>
-#include <service.hpp>
-#include <plugin.hpp>
+#define BOOST_TEST_MODULE "plugin-unload"
+#include <boost/test/unit_test.hpp>
 
-using namespace irccd;
+#include <irccd/command.hpp>
+#include <irccd/plugin_service.hpp>
+
+#include <command_test.hpp>
+
+namespace irccd {
 
 namespace {
 
-bool called = false;
+class custom_plugin : public plugin {
+public:
+    bool unloaded{false};
 
-class CustomPlugin : public plugin {
-public:
-    CustomPlugin()
+    custom_plugin()
         : plugin("test", "")
     {
     }
 
-    void on_unload(irccd::irccd &) override
+    void on_unload(irccd &) override
     {
-        called = true;
+        unloaded = true;
     }
 };
 
-class PluginUnloadCommandTest : public CommandTester {
-public:
-    PluginUnloadCommandTest()
-        : CommandTester(std::make_unique<plugin_unload_command>())
+class plugin_unload_test : public command_test<plugin_unload_command> {
+protected:
+    std::shared_ptr<custom_plugin> plugin_;
+
+    plugin_unload_test()
+        : plugin_(std::make_shared<custom_plugin>())
     {
-        called = false;
+        daemon_->plugins().add(plugin_);
     }
 };
 
-TEST_F(PluginUnloadCommandTest, basic)
-{
-    try {
-        m_irccd.plugins().add(std::make_unique<CustomPlugin>());
-        m_irccdctl.client().request({
-            { "command", "plugin-unload" },
-            { "plugin", "test" }
-        });
+} // !namespace
+
+BOOST_FIXTURE_TEST_SUITE(plugin_unload_test_suite, plugin_unload_test)
 
-        poll([&] () {
-            return called;
-        });
+BOOST_AUTO_TEST_CASE(basic)
+{
+    ctl_->send({
+        { "command",    "plugin-unload" },
+        { "plugin",     "test"          }
+    });
 
-        ASSERT_TRUE(called);
-        ASSERT_TRUE(m_irccd.plugins().list().empty());
-    } catch (const std::exception &ex) {
-        FAIL() << ex.what();
-    }
+    wait_for([&] () {
+        return plugin_->unloaded;
+    });
+
+    BOOST_TEST(plugin_->unloaded);
 }
 
-} // !namespace
+BOOST_AUTO_TEST_SUITE_END()
 
-int main(int argc, char **argv)
-{
-    testing::InitGoogleTest(&argc, argv);
-
-    return RUN_ALL_TESTS();
-}
+} // !irccd