annotate tests/src/rule-add-command/main.cpp @ 604:9d4da384f5d6

Tests: move libirccd-test to test/ folder, closes #750
author David Demelier <markand@malikania.fr>
date Fri, 08 Dec 2017 19:32:10 +0100
parents 35832b7f4f9d
children 168c0e191eea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test rule-add remote command
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
19 #define BOOST_TEST_MODULE "rule-add"
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
20 #include <boost/test/unit_test.hpp>
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
22 #include <irccd/json_util.hpp>
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
23
596
35832b7f4f9d Irccd: move files to daemon folder, closes #731
David Demelier <markand@malikania.fr>
parents: 595
diff changeset
24 #include <irccd/daemon/command.hpp>
35832b7f4f9d Irccd: move files to daemon folder, closes #731
David Demelier <markand@malikania.fr>
parents: 595
diff changeset
25 #include <irccd/daemon/rule_service.hpp>
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
604
9d4da384f5d6 Tests: move libirccd-test to test/ folder, closes #750
David Demelier <markand@malikania.fr>
parents: 596
diff changeset
27 #include <irccd/test/command_test.hpp>
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
28
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
29 namespace irccd {
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
31 namespace {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
32
595
029667d16d12 Tests: add multiple commands in command_test
David Demelier <markand@malikania.fr>
parents: 581
diff changeset
33 using rule_add_test = command_test<rule_add_command, rule_list_command>;
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
35 } // !namespace
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
36
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
37 BOOST_FIXTURE_TEST_SUITE(rule_add_test_suite, rule_add_test)
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
38
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
39 BOOST_AUTO_TEST_CASE(basic)
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 {
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
41 nlohmann::json result;
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
42
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
43 ctl_->send({
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 { "command", "rule-add" },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 { "servers", { "s1", "s2" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 { "channels", { "c1", "c2" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 { "plugins", { "p1", "p2" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 { "events", { "onMessage" } },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 { "action", "accept" },
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 { "index", 0 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 });
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
52 ctl_->recv([&] (auto, auto msg) {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
53 result = msg;
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
54 });
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
56 wait_for([&] () {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
57 return result.is_object();
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
58 });
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
59
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
60 BOOST_TEST(result.is_object());
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
61
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
62 result = nullptr;
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
63 ctl_->send({{"command", "rule-list"}});
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
64 ctl_->recv([&] (auto, auto msg) {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
65 result = msg;
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
66 });
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
67
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
68 wait_for([&] () {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
69 return result.is_object();
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
70 });
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
71
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
72 BOOST_TEST(result.is_object());
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
73
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
74 auto servers = result["list"][0]["servers"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
75 auto channels = result["list"][0]["channels"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
76 auto plugins = result["list"][0]["plugins"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
77 auto events = result["list"][0]["events"];
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
78
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
79 BOOST_TEST(json_util::contains(servers, "s1"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
80 BOOST_TEST(json_util::contains(servers, "s2"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
81 BOOST_TEST(json_util::contains(channels, "c1"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
82 BOOST_TEST(json_util::contains(channels, "c2"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
83 BOOST_TEST(json_util::contains(plugins, "p1"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
84 BOOST_TEST(json_util::contains(plugins, "p2"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
85 BOOST_TEST(json_util::contains(events, "onMessage"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
86 BOOST_TEST(result["list"][0]["action"].get<std::string>() == "accept");
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
87 }
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
88
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
89 BOOST_AUTO_TEST_CASE(append)
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
90 {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
91 nlohmann::json result;
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
93 ctl_->send({
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
94 { "command", "rule-add" },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
95 { "servers", { "s1" } },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
96 { "channels", { "c1" } },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
97 { "plugins", { "p1" } },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
98 { "events", { "onMessage" } },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
99 { "action", "accept" },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
100 { "index", 0 }
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
101 });
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
102 ctl_->recv([&] (auto, auto msg) {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
103 result = msg;
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
104 });
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
105
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
106 wait_for([&] () {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
107 return result.is_object();
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
108 });
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
109
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
110 BOOST_TEST(result.is_object());
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
111
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
112 result = nullptr;
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
113 ctl_->send({
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
114 { "command", "rule-add" },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
115 { "servers", { "s2" } },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
116 { "channels", { "c2" } },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
117 { "plugins", { "p2" } },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
118 { "events", { "onMessage" } },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
119 { "action", "drop" },
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
120 { "index", 1 }
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
121 });
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
122 ctl_->recv([&] (auto, auto msg) {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
123 result = msg;
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
124 });
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
125
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
126 wait_for([&] () {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
127 return result.is_object();
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
128 });
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
129
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
130 BOOST_TEST(result.is_object());
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
131
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
132 result = nullptr;
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
133 ctl_->send({{"command", "rule-list"}});
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
134 ctl_->recv([&] (auto, auto msg) {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
135 result = msg;
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
136 });
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
137
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
138 wait_for([&] () {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
139 return result.is_object();
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
140 });
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
141
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
142 BOOST_TEST(result.is_object());
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
143 BOOST_TEST(result["list"].size() == 2U);
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
144
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
145 // Rule 0.
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
146 {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
147 auto servers = result["list"][0]["servers"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
148 auto channels = result["list"][0]["channels"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
149 auto plugins = result["list"][0]["plugins"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
150 auto events = result["list"][0]["events"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
151
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
152 BOOST_TEST(json_util::contains(servers, "s1"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
153 BOOST_TEST(json_util::contains(channels, "c1"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
154 BOOST_TEST(json_util::contains(plugins, "p1"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
155 BOOST_TEST(json_util::contains(events, "onMessage"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
156 BOOST_TEST(result["list"][0]["action"].get<std::string>() == "accept");
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
157 }
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
158
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
159 // Rule 1.
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
160 {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
161 auto servers = result["list"][1]["servers"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
162 auto channels = result["list"][1]["channels"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
163 auto plugins = result["list"][1]["plugins"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
164 auto events = result["list"][1]["events"];
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
165
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
166 BOOST_TEST(json_util::contains(servers, "s2"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
167 BOOST_TEST(json_util::contains(channels, "c2"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
168 BOOST_TEST(json_util::contains(plugins, "p2"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
169 BOOST_TEST(json_util::contains(events, "onMessage"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
170 BOOST_TEST(result["list"][1]["action"].get<std::string>() == "drop");
452
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 }
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
173
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
174 BOOST_AUTO_TEST_SUITE(errors)
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
175
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
176 BOOST_AUTO_TEST_CASE(invalid_action)
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
177 {
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
178 boost::system::error_code result;
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
179
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
180 ctl_->send({
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
181 { "command", "rule-add" },
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
182 { "action", "unknown" }
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
183 });
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
184 ctl_->recv([&] (auto code, auto) {
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
185 result = code;
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
186 });
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
187
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
188 wait_for([&] {
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
189 return result;
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
190 });
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
191
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
192 BOOST_ASSERT(result == rule_error::invalid_action);
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
193 }
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
194
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
195 BOOST_AUTO_TEST_SUITE_END()
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
196
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
197 BOOST_AUTO_TEST_SUITE_END()
452
2170aa0e38aa Irccdctl: implement rule-add
David Demelier <markand@malikania.fr>
parents:
diff changeset
198
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
199 } // !irccd