annotate tests/cmd-rule-edit/main.cpp @ 488:7e273b7f4f92

Irccd: new coding style, closes #576
author David Demelier <markand@malikania.fr>
date Tue, 26 Sep 2017 17:18:47 +0200
parents acb2d4990249
children c729f06c6f27
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
453
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test rule-info remote command
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <command.hpp>
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <command-tester.hpp>
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #include <service.hpp>
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 using namespace irccd;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 class RuleEditCommandTest : public CommandTester {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 protected:
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 nlohmann::json m_result;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 /*
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 * Rule sets are unordered so use this function to search a string in
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 * the JSON array.
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 */
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 inline bool contains(const nlohmann::json &array, const std::string &str)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 for (const auto &v : array)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 if (v.is_string() && v == str)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 return true;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 return false;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 public:
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 RuleEditCommandTest()
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 453
diff changeset
44 : CommandTester(std::make_unique<rule_edit_command>())
453
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 453
diff changeset
46 m_irccd.commands().add(std::make_unique<rule_info_command>());
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 453
diff changeset
47 m_irccd.rules().add(rule(
453
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 { "s1", "s2" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 { "c1", "c2" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 { "o1", "o2" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 { "p1", "p2" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 { "onMessage", "onCommand" },
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 453
diff changeset
53 rule::action_type::drop
453
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 ));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 m_irccdctl.client().onMessage.connect([&] (auto result) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 m_result = result;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 };
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
60
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 TEST_F(RuleEditCommandTest, addServer)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 { "add-servers", { "new-s3" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
73
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
86
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 ASSERT_TRUE(contains(m_result["servers"], "new-s3"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
103
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 TEST_F(RuleEditCommandTest, addChannel)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 { "add-channels", { "new-c3" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
112
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
116
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
119
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
125
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
129
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 ASSERT_TRUE(contains(m_result["channels"], "new-c3"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
146
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 TEST_F(RuleEditCommandTest, addPlugin)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 { "add-plugins", { "new-p3" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
155
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
159
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
162
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
168
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
172
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 ASSERT_TRUE(contains(m_result["plugins"], "new-p3"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
189
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 TEST_F(RuleEditCommandTest, addEvent)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 { "add-events", { "onQuery" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
198
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
202
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
204 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
205
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
211
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
215
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
219 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 ASSERT_TRUE(contains(m_result["events"], "onQuery"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
230 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
232
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
233 TEST_F(RuleEditCommandTest, addEventAndServer)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
234 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
236 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
237 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 { "add-servers", { "new-s3" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
239 { "add-events", { "onQuery" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
240 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
241 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
242
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
243 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
244 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
245 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
246
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
247 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
248 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
249
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
250 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
251 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
253 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
254 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
255
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
256 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
257 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
258 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
259
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
260 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
261 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
262 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
263 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
264 ASSERT_TRUE(contains(m_result["servers"], "new-s3"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
265 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
266 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
267 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
268 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
269 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
270 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
271 ASSERT_TRUE(contains(m_result["events"], "onQuery"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
272 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
273 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
274 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
275 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
276 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
277
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
278 TEST_F(RuleEditCommandTest, changeAction)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
279 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
280 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
281 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
282 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
283 { "action", "accept" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
285 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
286
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
287 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
288 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
289 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
290
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
291 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
292 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
293
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
294 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
295 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
296 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
297 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
298 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
299
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
300 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
301 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
302 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
303
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
304 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
305 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
306 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
307 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
308 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
309 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
310 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
311 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
312 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
313 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
314 ASSERT_EQ(m_result["action"].get<std::string>(), "accept");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
315 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
316 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
317 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
318 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
319
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
320 TEST_F(RuleEditCommandTest, removeServer)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
321 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
322 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
323 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
324 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
325 { "remove-servers", { "s2" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
326 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
327 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
328
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
329 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
330 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
331 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
332
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
333 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
334 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
335
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
336 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
337 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
338 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
339 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
340 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
341
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
342 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
343 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
344 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
345
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
346 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
347 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
348 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
349 ASSERT_FALSE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
350 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
351 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
352 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
353 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
354 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
355 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
356 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
357 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
358 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
359 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
360 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
361
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
362 TEST_F(RuleEditCommandTest, removeChannel)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
363 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
364 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
365 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
366 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
367 { "remove-channels", { "c2" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
368 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
369 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
370
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
371 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
372 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
373 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
374
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
375 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
376 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
377
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
378 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
379 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
380 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
381 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
382 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
383
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
384 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
385 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
386 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
387
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
388 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
389 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
390 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
391 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
392 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
393 ASSERT_FALSE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
394 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
395 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
396 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
397 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
398 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
399 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
400 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
401 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
402 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
403
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
404 TEST_F(RuleEditCommandTest, removePlugin)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
405 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
406 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
407 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
408 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
409 { "remove-plugins", { "p2" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
410 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
411 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
412
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
413 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
414 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
415 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
416
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
417 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
418 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
419
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
420 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
421 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
422 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
423 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
424 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
425
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
426 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
427 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
428 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
429
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
430 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
431 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
432 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
433 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
434 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
435 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
436 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
437 ASSERT_FALSE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
438 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
439 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
440 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
441 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
442 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
443 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
444 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
445
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
446 TEST_F(RuleEditCommandTest, removeEvent)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
447 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
448 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
449 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
450 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
451 { "remove-events", { "onCommand" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
452 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
453 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
454
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
455 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
456 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
457 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
458
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
459 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
460 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
461
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
462 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
463 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
464 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
465 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
466 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
467
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
468 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
469 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
470 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
471
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
472 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
473 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
474 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
475 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
476 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
477 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
478 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
479 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
480 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
481 ASSERT_FALSE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
482 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
483 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
484 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
485 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
486 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
487
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
488 TEST_F(RuleEditCommandTest, removeEventAndServer)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
489 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
490 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
491 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
492 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
493 { "remove-servers", { "s2" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
494 { "remove-events", { "onCommand" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
495 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
496 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
497
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
498 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
499 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
500 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
501
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
502 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
503 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
504
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
505 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
506 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
507 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
508 { "index", 0 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
509 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
510
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
511 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
512 return m_result.is_object();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
513 });
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
514
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
515 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
516 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
517 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
518 ASSERT_FALSE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
519 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
520 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
521 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
522 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
523 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
524 ASSERT_FALSE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
525 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
526 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
527 FAIL() << ex.what();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
528 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
529 }
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
530
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
531 int main(int argc, char **argv)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
532 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
533 testing::InitGoogleTest(&argc, argv);
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
534
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
535 return RUN_ALL_TESTS();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
536 }