comparison tests/src/irccdctl/cli-plugin-reload/main.cpp @ 736:49b7c7660a00

Tests: use structured bindings in irccdctl
author David Demelier <markand@malikania.fr>
date Tue, 24 Jul 2018 22:14:00 +0200
parents 9d13aabfd63a
children 46a1877749ff
comparison
equal deleted inserted replaced
735:64839725f346 736:49b7c7660a00
18 18
19 #define BOOST_TEST_MODULE "irccdctl plugin-reload" 19 #define BOOST_TEST_MODULE "irccdctl plugin-reload"
20 #include <boost/test/unit_test.hpp> 20 #include <boost/test/unit_test.hpp>
21 21
22 #include <irccd/test/plugin_cli_test.hpp> 22 #include <irccd/test/plugin_cli_test.hpp>
23 #include <irccd/test/mock.hpp>
23 24
24 namespace irccd { 25 namespace irccd {
25 26
26 namespace { 27 namespace {
27 28
28 class reloadable_plugin : public plugin { 29 class reloadable_plugin : public mock, public plugin {
29 public: 30 public:
30 bool reloaded{false};
31
32 reloadable_plugin() 31 reloadable_plugin()
33 : plugin("test") 32 : plugin("test")
34 { 33 {
35 } 34 }
36 35
39 return "reload"; 38 return "reload";
40 } 39 }
41 40
42 void handle_reload(irccd&) override 41 void handle_reload(irccd&) override
43 { 42 {
44 reloaded = true; 43 push("handle_reload");
45 } 44 }
46 }; 45 };
47 46
48 BOOST_FIXTURE_TEST_SUITE(plugin_reload_suite, plugin_cli_test) 47 BOOST_FIXTURE_TEST_SUITE(plugin_reload_suite, plugin_cli_test)
49 48
52 const auto plugin = std::make_shared<reloadable_plugin>(); 51 const auto plugin = std::make_shared<reloadable_plugin>();
53 52
54 irccd_.plugins().add(plugin); 53 irccd_.plugins().add(plugin);
55 start(); 54 start();
56 55
57 const auto result = exec({ "plugin-reload", "test" }); 56 const auto [out, err] = exec({ "plugin-reload", "test" });
58 57
59 BOOST_TEST(result.first.size() == 0U); 58 BOOST_TEST(out.size() == 0U);
60 BOOST_TEST(result.second.size() == 0U); 59 BOOST_TEST(err.size() == 0U);
61 BOOST_TEST(plugin->reloaded); 60 BOOST_TEST(plugin->find("handle_reload").size() == 1U);
62 } 61 }
63 62
64 BOOST_AUTO_TEST_SUITE_END() 63 BOOST_AUTO_TEST_SUITE_END()
65 64
66 } // !namespace 65 } // !namespace