diff tests/src/irccdctl/cli-server-nick/main.cpp @ 771:aa231a1bf3b7

Irccd: server::set_nickname is no longer virtual Instead, it calls send() or just update nickname depending on the connection state. Also make state_ variable protected to allow derived objects modifying it.
author David Demelier <markand@malikania.fr>
date Mon, 13 Aug 2018 21:32:00 +0200
parents 445c071e8efb
children 8c44bbcbbab9
line wrap: on
line diff
--- a/tests/src/irccdctl/cli-server-nick/main.cpp	Mon Aug 13 20:15:00 2018 +0200
+++ b/tests/src/irccdctl/cli-server-nick/main.cpp	Mon Aug 13 21:32:00 2018 +0200
@@ -29,15 +29,41 @@
 
 BOOST_FIXTURE_TEST_SUITE(server_nick_suite, cli_fixture)
 
-BOOST_AUTO_TEST_CASE(basic)
+BOOST_AUTO_TEST_CASE(not_connected)
 {
     start();
-    /*
-     * TODO: we will make server::set_nickname call raw() instead of being
-     * virtual.
-     */
+    server_->disconnect();
+
+    const auto [code, out, err] = exec({ "server-nick", "test", "new" });
+
+    BOOST_TEST(!code);
+    BOOST_TEST(out.size() == 0U);
+    BOOST_TEST(err.size() == 0U);
+
+    const auto cmd = server_->find("raw");
+
+    BOOST_TEST(cmd.size() == 0U);
+    BOOST_TEST(server_->get_nickname() == "new");
 }
 
+BOOST_AUTO_TEST_CASE(connected)
+{
+    start();
+    server_->connect([] (auto) {});
+
+    const auto [code, out, err] = exec({ "server-nick", "test", "new" });
+
+    BOOST_TEST(!code);
+    BOOST_TEST(out.size() == 0U);
+    BOOST_TEST(err.size() == 0U);
+
+    const auto cmd = server_->find("send");
+
+    BOOST_TEST(cmd.size() == 1U);
+    BOOST_TEST(std::any_cast<std::string>(cmd[0][0]) == "NICK new");
+}
+
+
 BOOST_AUTO_TEST_SUITE(errors)
 
 BOOST_AUTO_TEST_CASE(invalid_identifier_1)