diff tests/cmd-server-topic/main.cpp @ 578:a8b892177909

Tests: add error code support in cmd-server-* tests
author David Demelier <markand@malikania.fr>
date Fri, 01 Dec 2017 21:34:21 +0100
parents f1ad428208d3
children
line wrap: on
line diff
--- a/tests/cmd-server-topic/main.cpp	Thu Nov 30 13:19:38 2017 +0100
+++ b/tests/cmd-server-topic/main.cpp	Fri Dec 01 21:34:21 2017 +0100
@@ -62,6 +62,115 @@
     BOOST_TEST(cmd["topic"].get<std::string>() == "new version");
 }
 
+BOOST_AUTO_TEST_SUITE(errors)
+
+BOOST_AUTO_TEST_CASE(invalid_identifier_1)
+{
+    boost::system::error_code result;
+
+    ctl_->send({
+        { "command",    "server-topic"  },
+        { "server",     123456          },
+        { "channel",    "#music"        },
+        { "topic",      "plop"          }
+    });
+    ctl_->recv([&] (auto code, auto) {
+        result = code;
+    });
+
+    wait_for([&] {
+        return result;
+    });
+
+    BOOST_ASSERT(result == server_error::invalid_identifier);
+}
+
+BOOST_AUTO_TEST_CASE(invalid_identifier_2)
+{
+    boost::system::error_code result;
+
+    ctl_->send({
+        { "command",    "server-topic"  },
+        { "server",     ""              },
+        { "channel",    "#music"        },
+        { "topic",      "plop"          }
+    });
+    ctl_->recv([&] (auto code, auto) {
+        result = code;
+    });
+
+    wait_for([&] {
+        return result;
+    });
+
+    BOOST_ASSERT(result == server_error::invalid_identifier);
+}
+
+BOOST_AUTO_TEST_CASE(invalid_channel_1)
+{
+    boost::system::error_code result;
+
+    ctl_->send({
+        { "command",    "server-topic"  },
+        { "server",     "test"          },
+        { "channel",    ""              },
+        { "topic",      "plop"          }
+    });
+    ctl_->recv([&] (auto code, auto) {
+        result = code;
+    });
+
+    wait_for([&] {
+        return result;
+    });
+
+    BOOST_ASSERT(result == server_error::invalid_channel);
+}
+
+BOOST_AUTO_TEST_CASE(invalid_channel_2)
+{
+    boost::system::error_code result;
+
+    ctl_->send({
+        { "command",    "server-topic"  },
+        { "server",     "test"          },
+        { "channel",    123456          },
+        { "topic",      "plop"          }
+    });
+    ctl_->recv([&] (auto code, auto) {
+        result = code;
+    });
+
+    wait_for([&] {
+        return result;
+    });
+
+    BOOST_ASSERT(result == server_error::invalid_channel);
+}
+
+BOOST_AUTO_TEST_CASE(not_found)
+{
+    boost::system::error_code result;
+
+    ctl_->send({
+        { "command",    "server-topic"  },
+        { "server",     "unknown"       },
+        { "channel",    "#music"        },
+        { "topic",      "plop"          }
+    });
+    ctl_->recv([&] (auto code, auto) {
+        result = code;
+    });
+
+    wait_for([&] {
+        return result;
+    });
+
+    BOOST_ASSERT(result == server_error::not_found);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
 BOOST_AUTO_TEST_SUITE_END()
 
 } // !irccd