Mercurial > irccd
diff tests/cmd-server-part/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-part/main.cpp Sat Nov 25 14:34:20 2017 +0100 +++ b/tests/cmd-server-part/main.cpp Sat Nov 25 17:00:24 2017 +0100 @@ -5,7 +5,7 @@ * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. + * copyright part and this permission part appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF @@ -16,83 +16,71 @@ * 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-part" +#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 cmd_channel; -std::string cmd_reason; +class server_part_test : public command_test<server_part_command> { +protected: + std::shared_ptr<journal_server> server_{new journal_server(service_, "test")}; -} // !namespace - -class ServerPartTest : public ServerTester { -public: - void part(std::string channel, std::string reason) override + server_part_test() { - ::cmd_channel = channel; - ::cmd_reason = reason; - } -}; - -class ServerPartCommandTest : public CommandTester { -public: - ServerPartCommandTest() - : CommandTester(std::make_unique<server_part_command>(), - std::make_unique<ServerPartTest>()) - { - cmd_channel.clear(); - cmd_reason.clear(); + daemon_->servers().add(server_); } }; -TEST_F(ServerPartCommandTest, basic) -{ - try { - m_irccdctl.client().request({ - { "command", "server-part" }, - { "server", "test" }, - { "channel", "#staff" }, - { "reason", "too noisy" } - }); +} // !namespace + +BOOST_FIXTURE_TEST_SUITE(server_part_test_suite, server_part_test) - poll([&] () { - return !cmd_channel.empty(); - }); +BOOST_AUTO_TEST_CASE(basic) +{ + ctl_->send({ + { "command", "server-part" }, + { "server", "test" }, + { "channel", "#staff" }, + { "reason", "too noisy" } + }); - ASSERT_EQ("#staff", cmd_channel); - ASSERT_EQ("too noisy", cmd_reason); - } catch (const std::exception &ex) { - FAIL() << ex.what(); - } + wait_for([this] () { + return !server_->cqueue().empty(); + }); + + auto cmd = server_->cqueue().back(); + + BOOST_TEST(cmd["command"].get<std::string>() == "part"); + BOOST_TEST(cmd["channel"].get<std::string>() == "#staff"); + BOOST_TEST(cmd["reason"].get<std::string>() == "too noisy"); } -TEST_F(ServerPartCommandTest, noreason) +BOOST_AUTO_TEST_CASE(noreason) { - try { - m_irccdctl.client().request({ - { "command", "server-part" }, - { "server", "test" }, - { "channel", "#staff" } - }); + ctl_->send({ + { "command", "server-part" }, + { "server", "test" }, + { "channel", "#staff" } + }); - poll([&] () { - return !cmd_channel.empty(); - }); + wait_for([this] () { + return !server_->cqueue().empty(); + }); - ASSERT_EQ("#staff", cmd_channel); - ASSERT_TRUE(cmd_reason.empty()); - } catch (const std::exception &ex) { - FAIL() << ex.what(); - } + auto cmd = server_->cqueue().back(); + + BOOST_TEST(cmd["command"].get<std::string>() == "part"); + BOOST_TEST(cmd["channel"].get<std::string>() == "#staff"); + BOOST_TEST(cmd["reason"].get<std::string>() == ""); } -int main(int argc, char **argv) -{ - testing::InitGoogleTest(&argc, argv); +BOOST_AUTO_TEST_SUITE_END() - return RUN_ALL_TESTS(); -} +} // !irccd