Mercurial > irccd
comparison tests/cmd-server-cmode/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 |
comparison
equal
deleted
inserted
replaced
557:c729f06c6f27 | 558:f1ad428208d3 |
---|---|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
17 */ | 17 */ |
18 | 18 |
19 #include <command.hpp> | 19 #define BOOST_TEST_MODULE "server-cmode" |
20 #include <command-tester.hpp> | 20 #include <boost/test/unit_test.hpp> |
21 #include <server-tester.hpp> | |
22 | 21 |
23 using namespace irccd; | 22 #include <irccd/server_service.hpp> |
23 | |
24 #include <journal_server.hpp> | |
25 #include <command_test.hpp> | |
26 | |
27 namespace irccd { | |
24 | 28 |
25 namespace { | 29 namespace { |
26 | 30 |
27 std::string cmd_channel; | 31 class server_cmode_test : public command_test<server_channel_mode_command> { |
28 std::string cmd_mode; | 32 protected: |
33 std::shared_ptr<journal_server> server_{new journal_server(service_, "test")}; | |
34 | |
35 server_cmode_test() | |
36 { | |
37 daemon_->servers().add(server_); | |
38 } | |
39 }; | |
29 | 40 |
30 } // !namespace | 41 } // !namespace |
31 | 42 |
32 class ServerChannelModeTest : public ServerTester { | 43 BOOST_FIXTURE_TEST_SUITE(server_cmode_test_suite, server_cmode_test) |
33 public: | |
34 void cmode(std::string channel, std::string mode) | |
35 { | |
36 ::cmd_channel = channel; | |
37 ::cmd_mode = mode; | |
38 } | |
39 }; | |
40 | 44 |
41 class ServerChannelModeCommandTest : public CommandTester { | 45 BOOST_AUTO_TEST_CASE(basic) |
42 public: | 46 { |
43 ServerChannelModeCommandTest() | 47 ctl_->send({ |
44 : CommandTester(std::make_unique<server_channel_mode_command>(), | 48 { "command", "server-cmode" }, |
45 std::make_unique<ServerChannelModeTest>()) | 49 { "server", "test" }, |
46 { | 50 { "channel", "#staff" }, |
47 m_irccdctl.client().request({ | 51 { "mode", "+c" } |
48 { "command", "server-cmode" }, | 52 }); |
49 { "server", "test" }, | |
50 { "channel", "#staff" }, | |
51 { "mode", "+c" } | |
52 }); | |
53 } | |
54 }; | |
55 | 53 |
56 TEST_F(ServerChannelModeCommandTest, basic) | 54 wait_for([this] () { |
57 { | 55 return !server_->cqueue().empty(); |
58 try { | 56 }); |
59 poll([&] () { | |
60 return !cmd_channel.empty() && !cmd_mode.empty(); | |
61 }); | |
62 | 57 |
63 ASSERT_EQ("#staff", cmd_channel); | 58 auto cmd = server_->cqueue().back(); |
64 ASSERT_EQ("+c", cmd_mode); | 59 |
65 } catch (const std::exception &ex) { | 60 BOOST_TEST(cmd["command"].get<std::string>() == "cmode"); |
66 FAIL() << ex.what(); | 61 BOOST_TEST(cmd["channel"].get<std::string>() == "#staff"); |
67 } | 62 BOOST_TEST(cmd["mode"].get<std::string>() == "+c"); |
68 } | 63 } |
69 | 64 |
70 int main(int argc, char **argv) | 65 BOOST_AUTO_TEST_SUITE_END() |
71 { | |
72 testing::InitGoogleTest(&argc, argv); | |
73 | 66 |
74 return RUN_ALL_TESTS(); | 67 } // !irccd |
75 } |