diff tests/src/rule-info-command/main.cpp @ 609:168c0e191eea

Irccd: add more error properties, closes #754 Add two new properties in error messages: - errorMessage: the string message as-is, - errorCategory: the error category (e.g. server, rule). Adapt tests to test against the category.
author David Demelier <markand@malikania.fr>
date Thu, 14 Dec 2017 21:45:32 +0100
parents 9d4da384f5d6
children 22b3cd6f991f
line wrap: on
line diff
--- a/tests/src/rule-info-command/main.cpp	Mon Dec 11 15:00:36 2017 +0100
+++ b/tests/src/rule-info-command/main.cpp	Thu Dec 14 21:45:32 2017 +0100
@@ -96,13 +96,15 @@
 BOOST_AUTO_TEST_CASE(invalid_index_1)
 {
     boost::system::error_code result;
+    nlohmann::json message;
 
     ctl_->send({
         { "command",    "rule-info" },
         { "index",      -100        }
     });
-    ctl_->recv([&] (auto code, auto) {
-        result = code;
+    ctl_->recv([&] (auto rresult, auto rmessage) {
+        result = rresult;
+        message = rmessage;
     });
 
     wait_for([&] {
@@ -110,18 +112,22 @@
     });
 
     BOOST_ASSERT(result == rule_error::invalid_index);
+    BOOST_ASSERT(message["error"].template get<int>() == rule_error::invalid_index);
+    BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "rule");
 }
 
 BOOST_AUTO_TEST_CASE(invalid_index_2)
 {
     boost::system::error_code result;
+    nlohmann::json message;
 
     ctl_->send({
         { "command",    "rule-info" },
         { "index",      100         }
     });
-    ctl_->recv([&] (auto code, auto) {
-        result = code;
+    ctl_->recv([&] (auto rresult, auto rmessage) {
+        result = rresult;
+        message = rmessage;
     });
 
     wait_for([&] {
@@ -129,18 +135,22 @@
     });
 
     BOOST_ASSERT(result == rule_error::invalid_index);
+    BOOST_ASSERT(message["error"].template get<int>() == rule_error::invalid_index);
+    BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "rule");
 }
 
 BOOST_AUTO_TEST_CASE(invalid_index_3)
 {
     boost::system::error_code result;
+    nlohmann::json message;
 
     ctl_->send({
         { "command",    "rule-info" },
         { "index",      "notaint"   }
     });
-    ctl_->recv([&] (auto code, auto) {
-        result = code;
+    ctl_->recv([&] (auto rresult, auto rmessage) {
+        result = rresult;
+        message = rmessage;
     });
 
     wait_for([&] {
@@ -148,6 +158,8 @@
     });
 
     BOOST_ASSERT(result == rule_error::invalid_index);
+    BOOST_ASSERT(message["error"].template get<int>() == rule_error::invalid_index);
+    BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "rule");
 }
 
 BOOST_AUTO_TEST_SUITE_END()