diff tests/cmd-server-nick/main.cpp @ 558:f1ad428208d3

Tests: convert cmd-server-*, #593
author David Demelier <markand@malikania.fr>
date Sat, 25 Nov 2017 17:00:24 +0100
parents 7e273b7f4f92
children a8b892177909
line wrap: on
line diff
--- a/tests/cmd-server-nick/main.cpp	Sat Nov 25 14:34:20 2017 +0100
+++ b/tests/cmd-server-nick/main.cpp	Sat Nov 25 17:00:24 2017 +0100
@@ -16,56 +16,53 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include <command.hpp>
-#include <command-tester.hpp>
-#include <server-tester.hpp>
+#define BOOST_TEST_MODULE "server-nick"
+#include <boost/test/unit_test.hpp>
+
+#include <irccd/server_service.hpp>
 
-using namespace irccd;
+#include <journal_server.hpp>
+#include <command_test.hpp>
+
+namespace irccd {
 
 namespace {
 
-std::string nick;
-
-} // !namespace
+class server_nick_test : public command_test<server_nick_command> {
+protected:
+    std::shared_ptr<journal_server> server_{new journal_server(service_, "test")};
 
-class ServerNickTest : public ServerTester {
-public:
-    void set_nickname(std::string nick) override
+    server_nick_test()
     {
-        ::nick = nick;
+        daemon_->servers().add(server_);
     }
 };
 
-class ServerNickCommandTest : public CommandTester {
-public:
-    ServerNickCommandTest()
-        : CommandTester(std::make_unique<server_nick_command>(),
-                        std::make_unique<ServerNickTest>())
-    {
-        m_irccdctl.client().request({
-            { "command",    "server-nick"   },
-            { "server",     "test"          },
-            { "nickname",   "chris"         }
-        });
-    }
-};
+} // !namespace
+
+BOOST_FIXTURE_TEST_SUITE(server_nick_test_suite, server_nick_test)
+
+BOOST_AUTO_TEST_CASE(basic)
+{
+    nlohmann::json result;
 
-TEST_F(ServerNickCommandTest, basic)
-{
-    try {
-        poll([&] () {
-            return !nick.empty();
-        });
+    ctl_->send({
+        { "command",    "server-nick"   },
+        { "server",     "test"          },
+        { "nickname",   "chris"         }
+    });
+    ctl_->recv([&] (auto, auto msg) {
+        result = msg;
+    });
 
-        ASSERT_EQ("chris", nick);
-    } catch (const std::exception &ex) {
-        FAIL() << ex.what();
-    }
+    wait_for([&] () {
+        return result.is_object();
+    });
+
+    BOOST_TEST(result.is_object());
+    BOOST_TEST(result.count("error") == 0U);
 }
 
-int main(int argc, char **argv)
-{
-    testing::InitGoogleTest(&argc, argv);
+BOOST_AUTO_TEST_SUITE_END()
 
-    return RUN_ALL_TESTS();
-}
+} // !irccd