Mercurial > irccd
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 |
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 |