annotate tests/cmd-rule-add/main.cpp @ 452:2170aa0e38aa

Irccdctl: implement rule-add
author David Demelier <markand@malikania.fr>
date Thu, 20 Jul 2017 22:56:34 +0200
parents
children 7e273b7f4f92
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test rule-add remote command
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <command.hpp>
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <command-tester.hpp>
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #include <service.hpp>
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 using namespace irccd;
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 using namespace irccd::command;
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 class RuleAddCommandTest : public CommandTester {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 protected:
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 nlohmann::json m_result;
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 /*
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 * Rule sets are unordered so use this function to search a string in
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 * the JSON array.
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 */
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 inline bool contains(const nlohmann::json &array, const std::string &str)
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 for (const auto &v : array)
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 if (v.is_string() && v == str)
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 return true;
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 return false;
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 public:
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 RuleAddCommandTest()
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 : CommandTester(std::make_unique<RuleAddCommand>())
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 m_irccd.commands().add(std::make_unique<RuleListCommand>());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 m_irccdctl.client().onMessage.connect([&] (auto result) {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 m_result = result;
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 });
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 };
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 TEST_F(RuleAddCommandTest, basic)
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 m_irccdctl.client().request({
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 { "command", "rule-add" },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 { "servers", { "s1", "s2" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 { "channels", { "c1", "c2" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 { "plugins", { "p1", "p2" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 { "events", { "onMessage" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 { "action", "accept" },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 { "index", 0 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 });
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
65
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 try {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 poll([&] () {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 return m_result.is_object();
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 });
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 ASSERT_TRUE(m_result.is_object());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 ASSERT_TRUE(m_result["status"].get<bool>());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
73
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 m_result = nullptr;
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 m_irccdctl.client().request({{ "command", "rule-list" }});
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 poll([&] () {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 return m_result.is_object();
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 });
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
80
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 ASSERT_TRUE(m_result.is_object());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 ASSERT_TRUE(m_result["status"].get<bool>());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
83
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 auto servers = m_result["list"][0]["servers"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 auto channels = m_result["list"][0]["channels"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 auto plugins = m_result["list"][0]["plugins"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 auto events = m_result["list"][0]["events"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 ASSERT_TRUE(contains(servers, "s1"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 ASSERT_TRUE(contains(servers, "s2"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 ASSERT_TRUE(contains(channels, "c1"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 ASSERT_TRUE(contains(channels, "c2"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 ASSERT_TRUE(contains(plugins, "p1"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 ASSERT_TRUE(contains(plugins, "p2"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 ASSERT_TRUE(contains(events, "onMessage"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 ASSERT_EQ("accept", m_result["list"][0]["action"]);
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 } catch (const std::exception &ex) {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 FAIL() << ex.what();
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
101
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 TEST_F(RuleAddCommandTest, append)
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 try {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 m_irccdctl.client().request({
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 { "command", "rule-add" },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 { "servers", { "s1" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 { "channels", { "c1" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 { "plugins", { "p1" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 { "events", { "onMessage" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 { "action", "accept" },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 { "index", 0 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 });
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
114
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 poll([&] () {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 return m_result.is_object();
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 });
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
118
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 ASSERT_TRUE(m_result.is_object());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 ASSERT_TRUE(m_result["status"].get<bool>());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
121
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 m_result = nullptr;
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 m_irccdctl.client().request({
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 { "command", "rule-add" },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 { "servers", { "s2" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 { "channels", { "c2" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 { "plugins", { "p2" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 { "events", { "onMessage" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 { "action", "drop" },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 { "index", 1 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 });
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
132
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 poll([&] () {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 return m_result.is_object();
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 });
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
136
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 ASSERT_TRUE(m_result.is_object());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 ASSERT_TRUE(m_result["status"].get<bool>());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
139
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 m_result = nullptr;
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 m_irccdctl.client().request({{ "command", "rule-list" }});
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
142
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 poll([&] () {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 return m_result.is_object();
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 });
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
146
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 ASSERT_TRUE(m_result.is_object());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 ASSERT_TRUE(m_result["status"].get<bool>());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 ASSERT_EQ(2U, m_result["list"].size());
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
150
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 // Rule 0.
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 auto servers = m_result["list"][0]["servers"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 auto channels = m_result["list"][0]["channels"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 auto plugins = m_result["list"][0]["plugins"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 auto events = m_result["list"][0]["events"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
157
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 ASSERT_TRUE(contains(servers, "s1"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 ASSERT_TRUE(contains(channels, "c1"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 ASSERT_TRUE(contains(plugins, "p1"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 ASSERT_TRUE(contains(events, "onMessage"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 ASSERT_EQ("accept", m_result["list"][0]["action"]);
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
164
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 // Rule 1.
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 auto servers = m_result["list"][1]["servers"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 auto channels = m_result["list"][1]["channels"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 auto plugins = m_result["list"][1]["plugins"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 auto events = m_result["list"][1]["events"];
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
171
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 ASSERT_TRUE(contains(servers, "s2"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 ASSERT_TRUE(contains(channels, "c2"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 ASSERT_TRUE(contains(plugins, "p2"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 ASSERT_TRUE(contains(events, "onMessage"));
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 ASSERT_EQ("drop", m_result["list"][1]["action"]);
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 } catch (const std::exception &ex) {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 FAIL() << ex.what();
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
182
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 int main(int argc, char **argv)
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 {
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 testing::InitGoogleTest(&argc, argv);
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
186
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 return RUN_ALL_TESTS();
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 }