diff tests/src/server-notice-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/server-notice-command/main.cpp	Mon Dec 11 15:00:36 2017 +0100
+++ b/tests/src/server-notice-command/main.cpp	Thu Dec 14 21:45:32 2017 +0100
@@ -67,6 +67,7 @@
 BOOST_AUTO_TEST_CASE(invalid_identifier_1)
 {
     boost::system::error_code result;
+    nlohmann::json message;
 
     ctl_->send({
         { "command",    "server-notice" },
@@ -74,8 +75,9 @@
         { "target",     "#music"        },
         { "message",    "quiet!"        }
     });
-    ctl_->recv([&] (auto code, auto) {
-        result = code;
+    ctl_->recv([&] (auto rresult, auto rmessage) {
+        result = rresult;
+        message = rmessage;
     });
 
     wait_for([&] {
@@ -83,11 +85,14 @@
     });
 
     BOOST_ASSERT(result == server_error::invalid_identifier);
+    BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_identifier);
+    BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
 }
 
 BOOST_AUTO_TEST_CASE(invalid_identifier_2)
 {
     boost::system::error_code result;
+    nlohmann::json message;
 
     ctl_->send({
         { "command",    "server-notice" },
@@ -95,8 +100,9 @@
         { "target",     "#music"        },
         { "message",    "quiet!"        }
     });
-    ctl_->recv([&] (auto code, auto) {
-        result = code;
+    ctl_->recv([&] (auto rresult, auto rmessage) {
+        result = rresult;
+        message = rmessage;
     });
 
     wait_for([&] {
@@ -104,11 +110,14 @@
     });
 
     BOOST_ASSERT(result == server_error::invalid_identifier);
+    BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_identifier);
+    BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
 }
 
 BOOST_AUTO_TEST_CASE(invalid_channel_1)
 {
     boost::system::error_code result;
+    nlohmann::json message;
 
     ctl_->send({
         { "command",    "server-notice" },
@@ -116,8 +125,9 @@
         { "target",     ""              },
         { "message",    "quiet!"        }
     });
-    ctl_->recv([&] (auto code, auto) {
-        result = code;
+    ctl_->recv([&] (auto rresult, auto rmessage) {
+        result = rresult;
+        message = rmessage;
     });
 
     wait_for([&] {
@@ -125,11 +135,14 @@
     });
 
     BOOST_ASSERT(result == server_error::invalid_channel);
+    BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_channel);
+    BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
 }
 
 BOOST_AUTO_TEST_CASE(invalid_channel_2)
 {
     boost::system::error_code result;
+    nlohmann::json message;
 
     ctl_->send({
         { "command",    "server-notice" },
@@ -137,8 +150,9 @@
         { "target",     123456          },
         { "message",    "quiet!"        }
     });
-    ctl_->recv([&] (auto code, auto) {
-        result = code;
+    ctl_->recv([&] (auto rresult, auto rmessage) {
+        result = rresult;
+        message = rmessage;
     });
 
     wait_for([&] {
@@ -146,11 +160,14 @@
     });
 
     BOOST_ASSERT(result == server_error::invalid_channel);
+    BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_channel);
+    BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
 }
 
 BOOST_AUTO_TEST_CASE(not_found)
 {
     boost::system::error_code result;
+    nlohmann::json message;
 
     ctl_->send({
         { "command",    "server-notice" },
@@ -158,8 +175,9 @@
         { "target",     "#music"        },
         { "message",    "quiet!"        }
     });
-    ctl_->recv([&] (auto code, auto) {
-        result = code;
+    ctl_->recv([&] (auto rresult, auto rmessage) {
+        result = rresult;
+        message = rmessage;
     });
 
     wait_for([&] {
@@ -167,6 +185,8 @@
     });
 
     BOOST_ASSERT(result == server_error::not_found);
+    BOOST_ASSERT(message["error"].template get<int>() == server_error::not_found);
+    BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
 }
 
 BOOST_AUTO_TEST_SUITE_END()