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