annotate tests/src/libirccd/command-rule-info/main.cpp @ 651:1081e45b8628

Tests: use command_test::request helper, closes #784 @1h
author David Demelier <markand@malikania.fr>
date Tue, 27 Mar 2018 20:12:02 +0200
parents 1fa9e5222e87
children e8c4ba5ed1c6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test rule-info remote command
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
628
27587ff92a64 Misc: update copyrights
David Demelier <markand@malikania.fr>
parents: 626
diff changeset
4 * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr>
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
9968eac538e6 Irccdctl: implement rule-info
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-info"
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
20 #include <boost/test/unit_test.hpp>
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
21
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
22 #include <irccd/json_util.hpp>
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
631
1fa9e5222e87 Irccd: move commands to command folder
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
24 #include <irccd/daemon/command/rule_info_command.hpp>
630
711e0bd01eaf Irccd: move services to service folder
David Demelier <markand@malikania.fr>
parents: 628
diff changeset
25 #include <irccd/daemon/service/rule_service.hpp>
449
9968eac538e6 Irccdctl: implement rule-info
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>
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
29 namespace irccd {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
30
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
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
33 class rule_info_test : public command_test<rule_info_command> {
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
34 public:
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
35 rule_info_test()
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 {
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
37 daemon_->rules().add(rule(
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 { "s1", "s2" },
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 { "c1", "c2" },
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 { "o1", "o2" },
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 { "p1", "p2" },
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 { "onMessage", "onCommand" },
626
c6000e13ab02 Irccd: prefix get_ (rule)
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
43 rule::action::drop
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 ));
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
45 daemon_->rules().add(rule(
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 { "s1", },
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 { "c1", },
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 { "o1", },
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 { "p1", },
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 { "onMessage", },
626
c6000e13ab02 Irccd: prefix get_ (rule)
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
51 rule::action::accept
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 ));
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 }
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 };
9968eac538e6 Irccdctl: implement rule-info
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 } // !namespace
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
57
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
58 BOOST_FIXTURE_TEST_SUITE(rule_info_test_suite, rule_info_test)
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_AUTO_TEST_CASE(basic)
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 {
651
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
62 const auto result = request({
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 { "command", "rule-info" },
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 { "index", 0 }
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 });
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
66
651
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
67 auto servers = result.first["servers"];
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
68 auto channels = result.first["channels"];
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
69 auto plugins = result.first["plugins"];
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
70 auto events = result.first["events"];
557
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(json_util::contains(servers, "s1"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
73 BOOST_TEST(json_util::contains(servers, "s2"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
74 BOOST_TEST(json_util::contains(channels, "c1"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
75 BOOST_TEST(json_util::contains(channels, "c2"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
76 BOOST_TEST(json_util::contains(plugins, "p1"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
77 BOOST_TEST(json_util::contains(plugins, "p2"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
78 BOOST_TEST(json_util::contains(events, "onMessage"));
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
79 BOOST_TEST(json_util::contains(events, "onCommand"));
651
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
80 BOOST_TEST(result.first["action"].get<std::string>() == "drop");
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 }
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
83 BOOST_AUTO_TEST_SUITE(errors)
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
84
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
85 BOOST_AUTO_TEST_CASE(invalid_index_1)
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 {
651
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
87 const auto result = request({
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
88 { "command", "rule-info" },
572
17207a09a6b4 Tests: remove unneeded action
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
89 { "index", -100 }
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
90 });
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
91
651
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
92 BOOST_TEST(result.second == rule_error::invalid_index);
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
93 BOOST_TEST(result.first["error"].template get<int>() == rule_error::invalid_index);
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
94 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "rule");
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
95 }
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
96
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
97 BOOST_AUTO_TEST_CASE(invalid_index_2)
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
98 {
651
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
99 const auto result = request({
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 { "command", "rule-info" },
572
17207a09a6b4 Tests: remove unneeded action
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
101 { "index", 100 }
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 });
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
103
651
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
104 BOOST_TEST(result.second == rule_error::invalid_index);
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
105 BOOST_TEST(result.first["error"].template get<int>() == rule_error::invalid_index);
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
106 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "rule");
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
107 }
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
108
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
109 BOOST_AUTO_TEST_CASE(invalid_index_3)
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
110 {
651
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
111 const auto result = request({
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
112 { "command", "rule-info" },
572
17207a09a6b4 Tests: remove unneeded action
David Demelier <markand@malikania.fr>
parents: 571
diff changeset
113 { "index", "notaint" }
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
114 });
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
115
651
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
116 BOOST_TEST(result.second == rule_error::invalid_index);
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
117 BOOST_TEST(result.first["error"].template get<int>() == rule_error::invalid_index);
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
118 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "rule");
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 }
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
120
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
121 BOOST_AUTO_TEST_SUITE_END()
449
9968eac538e6 Irccdctl: implement rule-info
David Demelier <markand@malikania.fr>
parents:
diff changeset
122
571
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
123 BOOST_AUTO_TEST_SUITE_END()
23fc81b1bd8f Tests: add error code support in cmd-rule-* tests
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
124
557
c729f06c6f27 Tests: convert cmd-rule-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
125 } // !irccd