Mercurial > irccd
comparison tests/src/libirccd/command-plugin-reload/main.cpp @ 757:97b356010785
Irccd: create (command|jsapi)::registry
Make two list of constructor functions to initialize all command and all
Javascript modules to avoid duplicating efforts in case of change.
While here, update test fixtures to load all of them for simplicity.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 06 Aug 2018 21:27:00 +0200 |
parents | c216d148558d |
children | 35c1517d705d |
comparison
equal
deleted
inserted
replaced
756:1b4f82c952d6 | 757:97b356010785 |
---|---|
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/daemon/plugin_service.hpp> | 22 #include <irccd/test/command_fixture.hpp> |
23 | 23 |
24 #include <irccd/test/command_test.hpp> | 24 namespace irccd::test { |
25 #include <irccd/test/mock_plugin.hpp> | |
26 | |
27 namespace irccd { | |
28 | 25 |
29 namespace { | 26 namespace { |
30 | 27 |
31 class broken_plugin : public plugin { | 28 class broken_plugin : public plugin { |
32 public: | 29 public: |
44 { | 41 { |
45 throw std::runtime_error("broken"); | 42 throw std::runtime_error("broken"); |
46 } | 43 } |
47 }; | 44 }; |
48 | 45 |
49 class plugin_reload_test : public command_test<plugin_reload_command> { | 46 class plugin_reload_fixture : public command_fixture { |
50 protected: | 47 protected: |
51 std::shared_ptr<mock_plugin> plugin_; | 48 std::shared_ptr<mock_plugin> plugin_; |
52 | 49 |
53 plugin_reload_test() | 50 plugin_reload_fixture() |
54 : plugin_(std::make_shared<mock_plugin>("test")) | 51 : plugin_(std::make_shared<mock_plugin>("test")) |
55 { | 52 { |
56 daemon_->plugins().add(plugin_); | 53 irccd_.plugins().clear(); |
57 daemon_->plugins().add(std::make_unique<broken_plugin>()); | 54 irccd_.plugins().add(plugin_); |
55 irccd_.plugins().add(std::make_unique<broken_plugin>()); | |
58 } | 56 } |
59 }; | 57 }; |
60 | 58 |
61 } // !namespace | 59 BOOST_FIXTURE_TEST_SUITE(plugin_reload_fixture_suite, plugin_reload_fixture) |
62 | |
63 BOOST_FIXTURE_TEST_SUITE(plugin_reload_test_suite, plugin_reload_test) | |
64 | 60 |
65 BOOST_AUTO_TEST_CASE(basic) | 61 BOOST_AUTO_TEST_CASE(basic) |
66 { | 62 { |
67 const auto [json, code] = request({ | 63 const auto [json, code] = request({ |
68 { "command", "plugin-reload" }, | 64 { "command", "plugin-reload" }, |
112 | 108 |
113 BOOST_AUTO_TEST_SUITE_END() | 109 BOOST_AUTO_TEST_SUITE_END() |
114 | 110 |
115 BOOST_AUTO_TEST_SUITE_END() | 111 BOOST_AUTO_TEST_SUITE_END() |
116 | 112 |
117 } // !irccd | 113 } // !namespace |
114 | |
115 } // !irccd::test |