annotate tests/src/libirccd/command-server-part/main.cpp @ 757:97b356010785

Irccd: create (command|jsapi)::registry Make two list of constructor functions to initialize all command and all Javascript modules to avoid duplicating efforts in case of change. While here, update test fixtures to load all of them for simplicity.
author David Demelier <markand@malikania.fr>
date Mon, 06 Aug 2018 21:27:00 +0200
parents c216d148558d
children 35c1517d705d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test server-part remote command
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
628
27587ff92a64 Misc: update copyrights
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
4 * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr>
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
8 * copyright part and this permission part appear in all copies.
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
19 #define BOOST_TEST_MODULE "server-part"
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
20 #include <boost/test/unit_test.hpp>
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
21
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
22 #include <irccd/test/command_fixture.hpp>
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
24 namespace irccd::test {
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 namespace {
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
28 BOOST_FIXTURE_TEST_SUITE(server_part_fixture_suite, command_fixture)
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
30 BOOST_AUTO_TEST_CASE(basic)
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
31 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
32 const auto [json, code] = request({
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
33 { "command", "server-part" },
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
34 { "server", "test" },
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
35 { "channel", "#staff" },
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
36 { "reason", "too noisy" }
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
37 });
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
735
64839725f346 Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents: 733
diff changeset
39 const auto cmd = server_->find("part").back();
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
40
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
41 BOOST_TEST(!code);
735
64839725f346 Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents: 733
diff changeset
42 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#staff");
64839725f346 Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents: 733
diff changeset
43 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "too noisy");
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 }
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
46 BOOST_AUTO_TEST_CASE(noreason)
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
48 const auto [json, code] = request({
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
49 { "command", "server-part" },
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
50 { "server", "test" },
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
51 { "channel", "#staff" }
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
52 });
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
735
64839725f346 Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents: 733
diff changeset
54 const auto cmd = server_->find("part").back();
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
56 BOOST_TEST(!code);
735
64839725f346 Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents: 733
diff changeset
57 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#staff");
64839725f346 Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents: 733
diff changeset
58 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "");
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 }
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
60
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
61 BOOST_AUTO_TEST_SUITE(errors)
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
62
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
63 BOOST_AUTO_TEST_CASE(invalid_identifier_1)
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
64 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
65 const auto [json, code] = request({
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
66 { "command", "server-part" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
67 { "server", 123456 },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
68 { "channel", "#music" }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
69 });
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
70
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
71 BOOST_TEST(code == server_error::invalid_identifier);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
72 BOOST_TEST(json["error"].get<int>() == server_error::invalid_identifier);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
73 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
74 }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
75
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
76 BOOST_AUTO_TEST_CASE(invalid_identifier_2)
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
77 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
78 const auto [json, code] = request({
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
79 { "command", "server-part" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
80 { "server", "" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
81 { "channel", "#music" }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
82 });
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
83
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
84 BOOST_TEST(code == server_error::invalid_identifier);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
85 BOOST_TEST(json["error"].get<int>() == server_error::invalid_identifier);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
86 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
87 }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
88
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
89 BOOST_AUTO_TEST_CASE(invalid_channel_1)
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
90 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
91 const auto [json, code] = request({
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
92 { "command", "server-part" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
93 { "server", "test" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
94 { "channel", "" }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
95 });
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
96
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
97 BOOST_TEST(code == server_error::invalid_channel);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
98 BOOST_TEST(json["error"].get<int>() == server_error::invalid_channel);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
99 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
100 }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
101
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
102 BOOST_AUTO_TEST_CASE(invalid_channel_2)
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
103 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
104 const auto [json, code] = request({
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
105 { "command", "server-part" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
106 { "server", "test" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
107 { "channel", 123456 }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
108 });
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
109
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
110 BOOST_TEST(code == server_error::invalid_channel);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
111 BOOST_TEST(json["error"].get<int>() == server_error::invalid_channel);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
112 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
113 }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
114
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
115 BOOST_AUTO_TEST_CASE(not_found)
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
116 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
117 const auto [json, code] = request({
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
118 { "command", "server-part" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
119 { "server", "unknown" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
120 { "channel", "#music" }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
121 });
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
122
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
123 BOOST_TEST(code == server_error::not_found);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
124 BOOST_TEST(json["error"].get<int>() == server_error::not_found);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
125 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
126 }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
127
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
128 BOOST_AUTO_TEST_SUITE_END()
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
129
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
130 BOOST_AUTO_TEST_SUITE_END()
303
ca5bc0624fb5 Tests: add test for server-part, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
131
723
e8c4ba5ed1c6 Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents: 670
diff changeset
132 } // !namespace
e8c4ba5ed1c6 Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents: 670
diff changeset
133
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
134 } // !irccd::test