diff tests/src/irccdctl/cli-plugin-reload/main.cpp @ 815:28ff6cb5bf73

tests: add test_plugin_loader and broken_plugin, closes #932 @1h
author David Demelier <markand@malikania.fr>
date Fri, 16 Nov 2018 21:08:00 +0100
parents 8460b4a34191
children 06cc2f95f479
line wrap: on
line diff
--- a/tests/src/irccdctl/cli-plugin-reload/main.cpp	Fri Nov 16 13:18:28 2018 +0100
+++ b/tests/src/irccdctl/cli-plugin-reload/main.cpp	Fri Nov 16 21:08:00 2018 +0100
@@ -20,41 +20,26 @@
 #include <boost/test/unit_test.hpp>
 
 #include <irccd/test/cli_fixture.hpp>
-#include <irccd/test/mock.hpp>
-
-using irccd::test::cli_fixture;
-using irccd::test::mock;
+#include <irccd/test/mock_plugin.hpp>
 
 using irccd::daemon::bot;
 using irccd::daemon::plugin;
 
+using irccd::test::cli_fixture;
+using irccd::test::mock_plugin;
+
 namespace irccd {
 
 namespace {
 
-class reloadable_plugin : public mock, public plugin {
-public:
-	reloadable_plugin()
-		: plugin("test")
-	{
-	}
+class plugin_reload_fixture : public cli_fixture {
+protected:
+	std::shared_ptr<mock_plugin> plugin_{new mock_plugin("test")};
 
-	auto get_name() const noexcept -> std::string_view override
-	{
-		return "reload";
-	}
-
-	void handle_reload(bot&) override
-	{
-		push("handle_reload");
-	}
-};
-
-class plugin_reload_fixture : public cli_fixture {
-public:
 	plugin_reload_fixture()
 		: cli_fixture(IRCCDCTL_EXECUTABLE)
 	{
+		bot_.plugins().add(plugin_);
 	}
 };
 
@@ -62,9 +47,6 @@
 
 BOOST_AUTO_TEST_CASE(simple)
 {
-	const auto plugin = std::make_shared<reloadable_plugin>();
-
-	bot_.plugins().add(plugin);
 	start();
 
 	const auto [code, out, err] = exec({ "plugin-reload", "test" });
@@ -72,7 +54,7 @@
 	BOOST_TEST(!code);
 	BOOST_TEST(out.size() == 0U);
 	BOOST_TEST(err.size() == 0U);
-	BOOST_TEST(plugin->find("handle_reload").size() == 1U);
+	BOOST_TEST(plugin_->find("handle_reload").size() == 1U);
 }
 
 BOOST_AUTO_TEST_SUITE_END()