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