annotate tests/cmd-server-join/main.cpp @ 394:c6fbb6e0e06d

Happy new year!
author David Demelier <markand@malikania.fr>
date Sun, 01 Jan 2017 15:29:41 +0100
parents a6c3d73d9641
children 7e273b7f4f92
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
307
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test server-join remote command
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
394
c6fbb6e0e06d Happy new year!
David Demelier <markand@malikania.fr>
parents: 346
diff changeset
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
307
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
346
a6c3d73d9641 Irccd: unify commands
David Demelier <markand@malikania.fr>
parents: 307
diff changeset
19 #include <command.hpp>
307
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <command-tester.hpp>
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #include <server-tester.hpp>
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 using namespace irccd;
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 using namespace irccd::command;
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 namespace {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 std::string channel;
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 std::string password;
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 } // !namespace
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 class ServerJoinTest : public ServerTester {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 public:
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 void join(std::string channel, std::string password) override
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 ::channel = channel;
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 ::password = password;
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 }
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 };
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 class ServerJoinCommandTest : public CommandTester {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 public:
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 ServerJoinCommandTest()
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 : CommandTester(std::make_unique<ServerJoinCommand>(),
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 std::make_unique<ServerJoinTest>())
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 channel.clear();
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 password.clear();
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
50
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 }
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 };
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 TEST_F(ServerJoinCommandTest, basic)
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 try {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 m_irccdctl.client().request({
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 { "command", "server-join" },
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 { "server", "test" },
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 { "channel", "#music" },
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 { "password", "plop" }
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 });
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
64
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 poll([&] () {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 return !channel.empty();
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 });
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 ASSERT_EQ("#music", channel);
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 ASSERT_EQ("plop", password);
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 } catch (const std::exception &ex) {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 FAIL() << ex.what();
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 }
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 }
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
75
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 TEST_F(ServerJoinCommandTest, nopassword)
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 try {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 m_irccdctl.client().request({
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 { "command", "server-join" },
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 { "server", "test" },
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 { "channel", "#music" }
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 });
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
84
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 poll([&] () {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 return !channel.empty();
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 });
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 ASSERT_EQ("#music", channel);
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 ASSERT_EQ("", password);
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 } catch (const std::exception &ex) {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 FAIL() << ex.what();
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 }
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 }
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
95
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 int main(int argc, char **argv)
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 {
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 testing::InitGoogleTest(&argc, argv);
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
99
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 return RUN_ALL_TESTS();
2fa974c03282 Tests: add test for server-join, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 }