Mercurial > irccd
changeset 595:029667d16d12
Tests: add multiple commands in command_test
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 06 Dec 2017 09:32:57 +0100 |
parents | 0a5cb2b65621 |
children | 35832b7f4f9d |
files | libirccd-test/irccd/command_test.hpp tests/src/rule-add-command/main.cpp tests/src/rule-edit-command/main.cpp tests/src/rule-move-command/main.cpp tests/src/rule-remove-command/main.cpp |
diffstat | 5 files changed, 22 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/libirccd-test/irccd/command_test.hpp Tue Dec 05 16:31:35 2017 +0100 +++ b/libirccd-test/irccd/command_test.hpp Wed Dec 06 09:32:57 2017 +0100 @@ -33,8 +33,22 @@ namespace irccd { -template <typename Command> +template <typename... Commands> class command_test { +private: + template <typename Command> + inline void add() + { + daemon_->commands().add(std::make_unique<Command>()); + } + + template <typename C1, typename C2, typename... Tail> + inline void add() + { + add<C1>(); + add<C2, Tail...>(); + } + protected: boost::asio::io_service service_; boost::asio::deadline_timer timer_; @@ -58,8 +72,8 @@ } }; -template <typename Command> -command_test<Command>::command_test() +template <typename... Commands> +command_test<Commands...>::command_test() : timer_(service_) , daemon_(std::make_unique<irccd>(service_)) { @@ -76,7 +90,7 @@ ctl_ = std::make_unique<ctl::controller>(*conn_); // Add the server and the command. - daemon_->commands().add(std::make_unique<Command>()); + add<Commands...>(); daemon_->transports().add(std::make_unique<ip_transport_server>(std::move(acc))); timer_.expires_from_now(boost::posix_time::seconds(10));
--- a/tests/src/rule-add-command/main.cpp Tue Dec 05 16:31:35 2017 +0100 +++ b/tests/src/rule-add-command/main.cpp Wed Dec 06 09:32:57 2017 +0100 @@ -30,13 +30,7 @@ namespace { -class rule_add_test : public command_test<rule_add_command> { -public: - rule_add_test() - { - daemon_->commands().add(std::make_unique<rule_list_command>()); - } -}; +using rule_add_test = command_test<rule_add_command, rule_list_command>; } // !namespace
--- a/tests/src/rule-edit-command/main.cpp Tue Dec 05 16:31:35 2017 +0100 +++ b/tests/src/rule-edit-command/main.cpp Wed Dec 06 09:32:57 2017 +0100 @@ -30,11 +30,10 @@ namespace { -class rule_edit_test : public command_test<rule_edit_command> { +class rule_edit_test : public command_test<rule_edit_command, rule_info_command> { public: rule_edit_test() { - daemon_->commands().add(std::make_unique<rule_info_command>()); daemon_->rules().add(rule( { "s1", "s2" }, { "c1", "c2" },
--- a/tests/src/rule-move-command/main.cpp Tue Dec 05 16:31:35 2017 +0100 +++ b/tests/src/rule-move-command/main.cpp Wed Dec 06 09:32:57 2017 +0100 @@ -30,11 +30,10 @@ namespace { -class rule_move_test : public command_test<rule_move_command> { +class rule_move_test : public command_test<rule_move_command, rule_list_command> { public: rule_move_test() { - daemon_->commands().add(std::make_unique<rule_list_command>()); daemon_->rules().add(rule( { "s0" }, { "c0" },
--- a/tests/src/rule-remove-command/main.cpp Tue Dec 05 16:31:35 2017 +0100 +++ b/tests/src/rule-remove-command/main.cpp Wed Dec 06 09:32:57 2017 +0100 @@ -30,11 +30,10 @@ namespace { -class rule_remove_test : public command_test<rule_remove_command> { +class rule_remove_test : public command_test<rule_remove_command, rule_list_command> { public: rule_remove_test() { - daemon_->commands().add(std::make_unique<rule_list_command>()); daemon_->rules().add(rule( { "s1", "s2" }, { "c1", "c2" },