comparison tests/src/libirccd/command-plugin-reload/main.cpp @ 722:3e816cebed2c

Irccd: make plugin pure abstract, closes #796 @3h
author David Demelier <markand@malikania.fr>
date Mon, 16 Jul 2018 21:19:47 +0200
parents 95ac3ace1610
children 9d13aabfd63a
comparison
equal deleted inserted replaced
721:2fa1f2c898ee 722:3e816cebed2c
26 26
27 namespace irccd { 27 namespace irccd {
28 28
29 namespace { 29 namespace {
30 30
31 class custom_plugin : public plugin { 31 class reloadable_plugin : public plugin {
32 public: 32 public:
33 bool reloaded{false}; 33 bool reloaded{false};
34 34
35 custom_plugin() 35 auto get_name() const noexcept -> std::string_view override
36 : plugin("test", "")
37 { 36 {
37 return "reload";
38 } 38 }
39 39
40 void handle_reload(irccd&) override 40 void handle_reload(irccd&) override
41 { 41 {
42 reloaded = true; 42 reloaded = true;
43 } 43 }
44 }; 44 };
45 45
46 class broken_plugin : public plugin { 46 class broken_plugin : public plugin {
47 public: 47 public:
48 using plugin::plugin; 48 auto get_name() const noexcept -> std::string_view override
49 {
50 return "broken";
51 }
49 52
50 void handle_reload(irccd&) override 53 void handle_reload(irccd&) override
51 { 54 {
52 throw std::runtime_error("broken"); 55 throw std::runtime_error("broken");
53 } 56 }
54 }; 57 };
55 58
56 class plugin_reload_test : public command_test<plugin_reload_command> { 59 class plugin_reload_test : public command_test<plugin_reload_command> {
57 protected: 60 protected:
58 std::shared_ptr<custom_plugin> plugin_; 61 std::shared_ptr<reloadable_plugin> plugin_;
59 62
60 plugin_reload_test() 63 plugin_reload_test()
61 : plugin_(std::make_shared<custom_plugin>()) 64 : plugin_(std::make_shared<reloadable_plugin>())
62 { 65 {
63 daemon_->plugins().add(plugin_); 66 daemon_->plugins().add("test", plugin_);
64 daemon_->plugins().add(std::make_unique<broken_plugin>("broken", "")); 67 daemon_->plugins().add("broken", std::make_unique<broken_plugin>());
65 } 68 }
66 }; 69 };
67 70
68 } // !namespace 71 } // !namespace
69 72