comparison 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
comparison
equal deleted inserted replaced
814:d0fc4f14678d 815:28ff6cb5bf73
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_fixture.hpp> 22 #include <irccd/test/cli_fixture.hpp>
23 #include <irccd/test/mock.hpp> 23 #include <irccd/test/mock_plugin.hpp>
24
25 using irccd::test::cli_fixture;
26 using irccd::test::mock;
27 24
28 using irccd::daemon::bot; 25 using irccd::daemon::bot;
29 using irccd::daemon::plugin; 26 using irccd::daemon::plugin;
27
28 using irccd::test::cli_fixture;
29 using irccd::test::mock_plugin;
30 30
31 namespace irccd { 31 namespace irccd {
32 32
33 namespace { 33 namespace {
34 34
35 class reloadable_plugin : public mock, public plugin { 35 class plugin_reload_fixture : public cli_fixture {
36 public: 36 protected:
37 reloadable_plugin() 37 std::shared_ptr<mock_plugin> plugin_{new mock_plugin("test")};
38 : plugin("test")
39 {
40 }
41 38
42 auto get_name() const noexcept -> std::string_view override
43 {
44 return "reload";
45 }
46
47 void handle_reload(bot&) override
48 {
49 push("handle_reload");
50 }
51 };
52
53 class plugin_reload_fixture : public cli_fixture {
54 public:
55 plugin_reload_fixture() 39 plugin_reload_fixture()
56 : cli_fixture(IRCCDCTL_EXECUTABLE) 40 : cli_fixture(IRCCDCTL_EXECUTABLE)
57 { 41 {
42 bot_.plugins().add(plugin_);
58 } 43 }
59 }; 44 };
60 45
61 BOOST_FIXTURE_TEST_SUITE(plugin_reload_suite, plugin_reload_fixture) 46 BOOST_FIXTURE_TEST_SUITE(plugin_reload_suite, plugin_reload_fixture)
62 47
63 BOOST_AUTO_TEST_CASE(simple) 48 BOOST_AUTO_TEST_CASE(simple)
64 { 49 {
65 const auto plugin = std::make_shared<reloadable_plugin>();
66
67 bot_.plugins().add(plugin);
68 start(); 50 start();
69 51
70 const auto [code, out, err] = exec({ "plugin-reload", "test" }); 52 const auto [code, out, err] = exec({ "plugin-reload", "test" });
71 53
72 BOOST_TEST(!code); 54 BOOST_TEST(!code);
73 BOOST_TEST(out.size() == 0U); 55 BOOST_TEST(out.size() == 0U);
74 BOOST_TEST(err.size() == 0U); 56 BOOST_TEST(err.size() == 0U);
75 BOOST_TEST(plugin->find("handle_reload").size() == 1U); 57 BOOST_TEST(plugin_->find("handle_reload").size() == 1U);
76 } 58 }
77 59
78 BOOST_AUTO_TEST_SUITE_END() 60 BOOST_AUTO_TEST_SUITE_END()
79 61
80 } // !namespace 62 } // !namespace