annotate tests/src/libirccd/command-server-topic/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
304
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test server-topic remote command
04a8c96aeb33 Tests: add test for server-topic, #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>
304
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
04a8c96aeb33 Tests: add test for server-topic, #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-topic"
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>
304
04a8c96aeb33 Tests: add test for server-topic, #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 {
304
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 namespace {
04a8c96aeb33 Tests: add test for server-topic, #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_topic_fixture_suite, command_fixture)
304
04a8c96aeb33 Tests: add test for server-topic, #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)
304
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
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-topic" },
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 { "topic", "new version" }
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
37 });
304
04a8c96aeb33 Tests: add test for server-topic, #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("topic").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]) == "new version");
304
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 }
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
578
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
46 BOOST_AUTO_TEST_SUITE(errors)
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
47
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
48 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
49 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
50 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
51 { "command", "server-topic" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
52 { "server", 123456 },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
53 { "channel", "#music" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
54 { "topic", "plop" }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
55 });
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
56
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
57 BOOST_TEST(code == server_error::invalid_identifier);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
58 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
59 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
60 }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
61
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
62 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
63 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
64 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
65 { "command", "server-topic" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
66 { "server", "" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
67 { "channel", "#music" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
68 { "topic", "plop" }
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_channel_1)
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-topic" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
80 { "server", "test" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
81 { "channel", "" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
82 { "topic", "plop" }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
83 });
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
84
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
85 BOOST_TEST(code == server_error::invalid_channel);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
86 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
87 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
88 }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
89
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
90 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
91 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
92 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
93 { "command", "server-topic" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
94 { "server", "test" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
95 { "channel", 123456 },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
96 { "topic", "plop" }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
97 });
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
98
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
99 BOOST_TEST(code == server_error::invalid_channel);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
100 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
101 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
102 }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
103
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
104 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
105 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
106 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
107 { "command", "server-topic" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
108 { "server", "unknown" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
109 { "channel", "#music" },
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
110 { "topic", "plop" }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
111 });
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
112
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
113 BOOST_TEST(code == server_error::not_found);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
114 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
115 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
116 }
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
117
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
118 BOOST_AUTO_TEST_SUITE_END()
a8b892177909 Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
119
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
120 BOOST_AUTO_TEST_SUITE_END()
304
04a8c96aeb33 Tests: add test for server-topic, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
121
723
e8c4ba5ed1c6 Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents: 670
diff changeset
122 } // !namespace
e8c4ba5ed1c6 Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents: 670
diff changeset
123
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
124 } // !irccd::test