diff tests/cmd-server-list/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
line wrap: on
line diff
--- a/tests/cmd-server-list/main.cpp	Sat Nov 25 14:34:20 2017 +0100
+++ b/tests/cmd-server-list/main.cpp	Sat Nov 25 17:00:24 2017 +0100
@@ -16,53 +16,51 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include <command.hpp>
-#include <command-tester.hpp>
-#include <server-tester.hpp>
-#include <service.hpp>
+#define BOOST_TEST_MODULE "server-list"
+#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 {
 
-nlohmann::json result;
+class server_list_test : public command_test<server_list_command> {
+protected:
+    server_list_test()
+    {
+        daemon_->servers().add(std::make_unique<journal_server>(service_, "s1"));
+        daemon_->servers().add(std::make_unique<journal_server>(service_, "s2"));
+    }
+};
 
 } // !namespace
 
-class ServerListCommandTest : public CommandTester {
-public:
-    ServerListCommandTest()
-        : CommandTester(std::make_unique<server_list_command>())
-    {
-        m_irccd.servers().add(std::make_unique<ServerTester>("s1"));
-        m_irccd.servers().add(std::make_unique<ServerTester>("s2"));
-        m_irccdctl.client().request({{ "command", "server-list" }});
-        m_irccdctl.client().onMessage.connect([&] (auto result) {
-            ::result = result;
-        });
-    }
-};
+BOOST_FIXTURE_TEST_SUITE(server_list_test_suite, server_list_test)
+
+BOOST_AUTO_TEST_CASE(basic)
+{
+    nlohmann::json result;
 
-TEST_F(ServerListCommandTest, basic)
-{
-    try {
-        poll([&] () {
-            return result.is_object();
-        });
+    ctl_->send({{"command", "server-list"}});
+    ctl_->recv([&] (auto, auto msg) {
+        result = msg;
+    });
 
-        ASSERT_TRUE(result.is_object());
-        ASSERT_TRUE(result["list"].is_array());
-        ASSERT_EQ(2U, result["list"].size());
-        ASSERT_EQ("s1", result["list"][0]);
-        ASSERT_EQ("s2", result["list"][1]);
-    } catch (const std::exception &ex) {
-        FAIL() << ex.what();
-    }
+    wait_for([&] () {
+        return result.is_object();
+    });
+
+    BOOST_TEST(result.is_object());
+    BOOST_TEST(result["list"].is_array());
+    BOOST_TEST(result["list"].size() == 2U);
+    BOOST_TEST(result["list"][0].get<std::string>() == "s1");
+    BOOST_TEST(result["list"][1].get<std::string>() == "s2");
 }
 
-int main(int argc, char **argv)
-{
-    testing::InitGoogleTest(&argc, argv);
+BOOST_AUTO_TEST_SUITE_END()
 
-    return RUN_ALL_TESTS();
-}
+} // !irccd