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