comparison tests/cmd-server-me/main.cpp @ 413:9bc2da03dbe1 stable-2

Merge from default
author David Demelier <markand@malikania.fr>
date Wed, 01 Feb 2017 11:41:18 +0100
parents c6fbb6e0e06d
children 7e273b7f4f92
comparison
equal deleted inserted replaced
287:e27204f923e9 413:9bc2da03dbe1
1 /*
2 * main.cpp -- test server-me remote command
3 *
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
5 *
6 * Permission to use, copy, modify, and/or distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
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
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19 #include <command.hpp>
20 #include <command-tester.hpp>
21 #include <server-tester.hpp>
22
23 using namespace irccd;
24 using namespace irccd::command;
25
26 namespace {
27
28 std::string target;
29 std::string message;
30
31 } // !namespace
32
33 class ServerMeTest : public ServerTester {
34 public:
35 void me(std::string target, std::string message) override
36 {
37 ::target = target;
38 ::message = message;
39 }
40 };
41
42 class ServerMeCommandTest : public CommandTester {
43 public:
44 ServerMeCommandTest()
45 : CommandTester(std::make_unique<ServerMeCommand>(),
46 std::make_unique<ServerMeTest>())
47 {
48 m_irccdctl.client().request({
49 { "command", "server-me" },
50 { "server", "test" },
51 { "target", "jean" },
52 { "message", "hello!" }
53 });
54 }
55 };
56
57 TEST_F(ServerMeCommandTest, basic)
58 {
59 try {
60 poll([&] () {
61 return !target.empty() && !message.empty();
62 });
63
64 ASSERT_EQ("jean", target);
65 ASSERT_EQ("hello!", message);
66 } catch (const std::exception &ex) {
67 FAIL() << ex.what();
68 }
69 }
70
71 int main(int argc, char **argv)
72 {
73 testing::InitGoogleTest(&argc, argv);
74
75 return RUN_ALL_TESTS();
76 }