comparison tests/src/libirccd-daemon/command-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
17 */ 17 */
18 18
19 #define BOOST_TEST_MODULE "plugin-reload" 19 #define BOOST_TEST_MODULE "plugin-reload"
20 #include <boost/test/unit_test.hpp> 20 #include <boost/test/unit_test.hpp>
21 21
22 #include <irccd/test/broken_plugin.hpp>
22 #include <irccd/test/command_fixture.hpp> 23 #include <irccd/test/command_fixture.hpp>
23 24
25 using irccd::test::broken_plugin;
24 using irccd::test::command_fixture; 26 using irccd::test::command_fixture;
25 using irccd::test::mock_plugin; 27 using irccd::test::mock_plugin;
26 28
27 using irccd::daemon::bot; 29 using irccd::daemon::bot;
28 using irccd::daemon::plugin; 30 using irccd::daemon::plugin;
31 33
32 namespace irccd { 34 namespace irccd {
33 35
34 namespace { 36 namespace {
35 37
36 class broken_plugin : public plugin {
37 public:
38 broken_plugin()
39 : plugin("broken")
40 {
41 }
42
43 auto get_name() const noexcept -> std::string_view override
44 {
45 return "broken";
46 }
47
48 void handle_reload(bot&) override
49 {
50 throw std::runtime_error("broken");
51 }
52 };
53
54 class plugin_reload_fixture : public command_fixture { 38 class plugin_reload_fixture : public command_fixture {
55 protected: 39 protected:
56 std::shared_ptr<mock_plugin> plugin_; 40 std::shared_ptr<mock_plugin> plugin_{new mock_plugin("test")};
57 41
58 plugin_reload_fixture() 42 plugin_reload_fixture()
59 : plugin_(std::make_shared<mock_plugin>("test"))
60 { 43 {
61 bot_.plugins().clear(); 44 bot_.plugins().clear();
62 bot_.plugins().add(plugin_); 45 bot_.plugins().add(plugin_);
63 bot_.plugins().add(std::make_unique<broken_plugin>()); 46 bot_.plugins().add(std::make_unique<broken_plugin>("broken"));
64 } 47 }
65 }; 48 };
66 49
67 BOOST_FIXTURE_TEST_SUITE(plugin_reload_fixture_suite, plugin_reload_fixture) 50 BOOST_FIXTURE_TEST_SUITE(plugin_reload_fixture_suite, plugin_reload_fixture)
68 51