annotate tests/cmd-rule-edit/main.cpp @ 453:acb2d4990249

Irccdctl: implement rule-edit
author David Demelier <markand@malikania.fr>
date Thu, 20 Jul 2017 22:55:02 +0200
parents
children 7e273b7f4f92
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 using namespace irccd::command;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 class RuleEditCommandTest : public CommandTester {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 protected:
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 nlohmann::json m_result;
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 /*
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 * 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
32 * the JSON array.
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 */
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 inline bool contains(const nlohmann::json &array, const std::string &str)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 for (const auto &v : array)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 if (v.is_string() && v == str)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 return true;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 return false;
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 public:
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 RuleEditCommandTest()
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 : CommandTester(std::make_unique<RuleEditCommand>())
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 m_irccd.commands().add(std::make_unique<RuleInfoCommand>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 m_irccd.rules().add(Rule(
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 { "s1", "s2" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 { "c1", "c2" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 { "o1", "o2" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 { "p1", "p2" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 { "onMessage", "onCommand" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 RuleAction::Drop
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 ));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 m_irccdctl.client().onMessage.connect([&] (auto result) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 m_result = result;
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 TEST_F(RuleEditCommandTest, addServer)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 { "add-servers", { "new-s3" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 ASSERT_TRUE(contains(m_result["servers"], "new-s3"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 TEST_F(RuleEditCommandTest, addChannel)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 { "add-channels", { "new-c3" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
120
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 ASSERT_TRUE(contains(m_result["channels"], "new-c3"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 TEST_F(RuleEditCommandTest, addPlugin)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 { "add-plugins", { "new-p3" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
163
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 ASSERT_TRUE(contains(m_result["plugins"], "new-p3"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 TEST_F(RuleEditCommandTest, addEvent)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 { "add-events", { "onQuery" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
204 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
205 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
206
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
219 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 ASSERT_TRUE(contains(m_result["events"], "onQuery"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
230 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
234 TEST_F(RuleEditCommandTest, addEventAndServer)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
236 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
237 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
239 { "add-servers", { "new-s3" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
240 { "add-events", { "onQuery" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
241 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
244 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
245 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
248 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
249 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
250
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
251 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
253 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
254 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
257 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
258 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
261 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
262 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
263 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
264 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
265 ASSERT_TRUE(contains(m_result["servers"], "new-s3"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
266 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
267 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
268 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
269 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
270 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
271 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
272 ASSERT_TRUE(contains(m_result["events"], "onQuery"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
273 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
274 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
275 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
279 TEST_F(RuleEditCommandTest, changeAction)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
280 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
281 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
282 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
283 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 { "action", "accept" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
285 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
288 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
289 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
292 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
293 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
294
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
295 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
296 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
297 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
298 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
301 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
302 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
305 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
306 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
307 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
308 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
309 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
310 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
311 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
312 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
313 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
314 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
315 ASSERT_EQ(m_result["action"].get<std::string>(), "accept");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
316 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
317 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
321 TEST_F(RuleEditCommandTest, removeServer)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
322 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
323 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
324 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
325 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
326 { "remove-servers", { "s2" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
327 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
330 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
331 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
334 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
335 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
336
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
337 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
338 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
339 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
340 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
343 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
344 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
347 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
348 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
349 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
350 ASSERT_FALSE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
351 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
352 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
353 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
354 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
355 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
356 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
357 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
358 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
359 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
363 TEST_F(RuleEditCommandTest, removeChannel)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
364 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
365 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
366 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
367 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
368 { "remove-channels", { "c2" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
369 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
372 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
373 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
376 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
377 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
378
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
379 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
380 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
381 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
382 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
385 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
386 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
389 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
390 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
391 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
392 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
393 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
394 ASSERT_FALSE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
395 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
396 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
397 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
398 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
399 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
400 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
401 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
405 TEST_F(RuleEditCommandTest, removePlugin)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
406 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
407 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
408 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
409 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
410 { "remove-plugins", { "p2" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
411 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
414 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
415 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
418 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
419 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
420
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
421 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
422 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
423 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
424 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
427 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
428 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
431 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
432 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
433 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
434 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
435 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
436 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
437 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
438 ASSERT_FALSE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
439 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
440 ASSERT_TRUE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
441 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
442 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
443 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
447 TEST_F(RuleEditCommandTest, removeEvent)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
448 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
449 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
450 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
451 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
452 { "remove-events", { "onCommand" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
453 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
456 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
457 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
460 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
461 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
462
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
463 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
464 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
465 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
466 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
469 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
470 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
473 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
474 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
475 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
476 ASSERT_TRUE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
477 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
478 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
479 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
480 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
481 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
482 ASSERT_FALSE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
483 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
484 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
485 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
489 TEST_F(RuleEditCommandTest, removeEventAndServer)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
490 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
491 try {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
492 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
493 { "command", "rule-edit" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
494 { "remove-servers", { "s2" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
495 { "remove-events", { "onCommand" } },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
496 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
499 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
500 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
503 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
504 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
505
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
506 m_result = nullptr;
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
507 m_irccdctl.client().request({
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
508 { "command", "rule-info" },
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
509 { "index", 0 }
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
512 poll([&] () {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
513 return m_result.is_object();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
516 ASSERT_TRUE(m_result.is_object());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
517 ASSERT_TRUE(m_result["status"].get<bool>());
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
518 ASSERT_TRUE(contains(m_result["servers"], "s1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
519 ASSERT_FALSE(contains(m_result["servers"], "s2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
520 ASSERT_TRUE(contains(m_result["channels"], "c1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
521 ASSERT_TRUE(contains(m_result["channels"], "c2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
522 ASSERT_TRUE(contains(m_result["plugins"], "p1"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
523 ASSERT_TRUE(contains(m_result["plugins"], "p2"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
524 ASSERT_TRUE(contains(m_result["events"], "onMessage"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
525 ASSERT_FALSE(contains(m_result["events"], "onCommand"));
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
526 ASSERT_EQ(m_result["action"].get<std::string>(), "drop");
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
527 } catch (const std::exception &ex) {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
528 FAIL() << ex.what();
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
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
532 int main(int argc, char **argv)
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
533 {
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
534 testing::InitGoogleTest(&argc, argv);
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
535
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
536 return RUN_ALL_TESTS();
acb2d4990249 Irccdctl: implement rule-edit
David Demelier <markand@malikania.fr>
parents:
diff changeset
537 }