Mercurial > irccd
diff tests/cmd-rule-move/main.cpp @ 571:23fc81b1bd8f
Tests: add error code support in cmd-rule-* tests
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 29 Nov 2017 09:29:25 +0100 |
parents | c729f06c6f27 |
children |
line wrap: on
line diff
--- a/tests/cmd-rule-move/main.cpp Tue Nov 28 17:17:30 2017 +0100 +++ b/tests/cmd-rule-move/main.cpp Wed Nov 29 09:29:25 2017 +0100 @@ -362,28 +362,110 @@ } } -BOOST_AUTO_TEST_CASE(out_of_bounds) +BOOST_AUTO_TEST_SUITE(errors) + +BOOST_AUTO_TEST_CASE(invalid_index_1_from) { - nlohmann::json result; + boost::system::error_code result; + + ctl_->send({ + { "command", "rule-move" }, + { "from", -100 }, + { "to", 0 } + }); + ctl_->recv([&] (auto code, auto) { + result = code; + }); + + wait_for([&] { + return result; + }); + + BOOST_ASSERT(result == rule_error::invalid_index); +} + +BOOST_AUTO_TEST_CASE(invalid_index_1_to) +{ + boost::system::error_code result; + + ctl_->send({ + { "command", "rule-move" }, + { "from", 0 }, + { "to", -100 } + }); + ctl_->recv([&] (auto code, auto) { + result = code; + }); + + wait_for([&] { + return result; + }); + + BOOST_ASSERT(result == rule_error::invalid_index); +} + +BOOST_AUTO_TEST_CASE(invalid_index_2_from) +{ + boost::system::error_code result; ctl_->send({ { "command", "rule-move" }, - { "from", 1024 }, + { "from", 100 }, { "to", 0 } }); - ctl_->recv([&] (auto, auto msg) { - result = msg; + ctl_->recv([&] (auto code, auto) { + result = code; + }); + + wait_for([&] { + return result; }); - wait_for([&] () { - return result.is_object(); + BOOST_ASSERT(result == rule_error::invalid_index); +} + +BOOST_AUTO_TEST_CASE(invalid_index_3_from) +{ + boost::system::error_code result; + + ctl_->send({ + { "command", "rule-move" }, + { "from", "notaint" }, + { "to", 0 } + }); + ctl_->recv([&] (auto code, auto) { + result = code; + }); + + wait_for([&] { + return result; }); - // TODO: error code - BOOST_TEST(result.is_object()); - BOOST_TEST(result.count("error")); + BOOST_ASSERT(result == rule_error::invalid_index); +} + +BOOST_AUTO_TEST_CASE(invalid_index_3_to) +{ + boost::system::error_code result; + + ctl_->send({ + { "command", "rule-move" }, + { "from", 0 }, + { "to", "notaint" } + }); + ctl_->recv([&] (auto code, auto) { + result = code; + }); + + wait_for([&] { + return result; + }); + + BOOST_ASSERT(result == rule_error::invalid_index); } BOOST_AUTO_TEST_SUITE_END() +BOOST_AUTO_TEST_SUITE_END() + } // !irccd