Mercurial > irccd
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 |