Mercurial > irccd
diff tests/src/libirccd/command-rule-remove/main.cpp @ 651:1081e45b8628
Tests: use command_test::request helper, closes #784 @1h
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 27 Mar 2018 20:12:02 +0200 |
parents | 1fa9e5222e87 |
children | e8c4ba5ed1c6 |
line wrap: on
line diff
--- a/tests/src/libirccd/command-rule-remove/main.cpp Mon Mar 26 20:46:02 2018 +0200 +++ b/tests/src/libirccd/command-rule-remove/main.cpp Tue Mar 27 20:12:02 2018 +0200 @@ -60,39 +60,22 @@ BOOST_AUTO_TEST_CASE(basic) { - nlohmann::json result; - - ctl_->send({ + request({ { "command", "rule-remove" }, { "index", 1 } }); - ctl_->recv([&] (auto, auto msg) { - result = msg; - }); - wait_for([&] () { - return result.is_object(); + const auto result = request({ + { "command", "rule-list" } }); - BOOST_TEST(result.is_object()); - - result = nullptr; - ctl_->send({{ "command", "rule-list" }}); - ctl_->recv([&] (auto, auto msg) { - result = msg; - }); + BOOST_TEST(result.first["list"].is_array()); + BOOST_TEST(result.first["list"].size() == 1U); - wait_for([&] () { - return result.is_object(); - }); - - BOOST_TEST(result["list"].is_array()); - BOOST_TEST(result["list"].size() == 1U); - - auto servers = result["list"][0]["servers"]; - auto channels = result["list"][0]["channels"]; - auto plugins = result["list"][0]["plugins"]; - auto events = result["list"][0]["events"]; + auto servers = result.first["list"][0]["servers"]; + auto channels = result.first["list"][0]["channels"]; + auto plugins = result.first["list"][0]["plugins"]; + auto events = result.first["list"][0]["events"]; BOOST_TEST(json_util::contains(servers, "s1")); BOOST_TEST(json_util::contains(servers, "s2")); @@ -102,100 +85,58 @@ BOOST_TEST(json_util::contains(plugins, "p2")); BOOST_TEST(json_util::contains(events, "onMessage")); BOOST_TEST(json_util::contains(events, "onCommand")); - BOOST_TEST(result["list"][0]["action"].get<std::string>() == "drop"); + BOOST_TEST(result.first["list"][0]["action"].get<std::string>() == "drop"); } BOOST_AUTO_TEST_CASE(empty) { - nlohmann::json result; - daemon_->rules().remove(0); daemon_->rules().remove(0); - ctl_->send({ + const auto result = request({ { "command", "rule-remove" }, { "index", 1 } }); - ctl_->recv([&] (auto, auto msg) { - result = msg; - }); - wait_for([&] () { - return result.is_object(); - }); - - BOOST_TEST(result.is_object()); + BOOST_TEST(result.first.is_object()); } BOOST_AUTO_TEST_SUITE(errors) BOOST_AUTO_TEST_CASE(invalid_index_1) { - boost::system::error_code result; - nlohmann::json message; - - ctl_->send({ + const auto result = request({ { "command", "rule-remove" }, { "index", -100 } }); - ctl_->recv([&] (auto rresult, auto rmessage) { - result = rresult; - message = rmessage; - }); - wait_for([&] { - return result; - }); - - BOOST_TEST(result == rule_error::invalid_index); - BOOST_TEST(message["error"].template get<int>() == rule_error::invalid_index); - BOOST_TEST(message["errorCategory"].template get<std::string>() == "rule"); + BOOST_TEST(result.second == rule_error::invalid_index); + BOOST_TEST(result.first["error"].template get<int>() == rule_error::invalid_index); + BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "rule"); } BOOST_AUTO_TEST_CASE(invalid_index_2) { - boost::system::error_code result; - nlohmann::json message; - - ctl_->send({ + const auto result = request({ { "command", "rule-remove" }, { "index", 100 } }); - ctl_->recv([&] (auto rresult, auto rmessage) { - result = rresult; - message = rmessage; - }); - wait_for([&] { - return result; - }); - - BOOST_TEST(result == rule_error::invalid_index); - BOOST_TEST(message["error"].template get<int>() == rule_error::invalid_index); - BOOST_TEST(message["errorCategory"].template get<std::string>() == "rule"); + BOOST_TEST(result.second == rule_error::invalid_index); + BOOST_TEST(result.first["error"].template get<int>() == rule_error::invalid_index); + BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "rule"); } BOOST_AUTO_TEST_CASE(invalid_index_3) { - boost::system::error_code result; - nlohmann::json message; - - ctl_->send({ + const auto result = request({ { "command", "rule-remove" }, { "index", "notaint" } }); - ctl_->recv([&] (auto rresult, auto rmessage) { - result = rresult; - message = rmessage; - }); - wait_for([&] { - return result; - }); - - BOOST_TEST(result == rule_error::invalid_index); - BOOST_TEST(message["error"].template get<int>() == rule_error::invalid_index); - BOOST_TEST(message["errorCategory"].template get<std::string>() == "rule"); + BOOST_TEST(result.second == rule_error::invalid_index); + BOOST_TEST(result.first["error"].template get<int>() == rule_error::invalid_index); + BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "rule"); } BOOST_AUTO_TEST_SUITE_END()