Mercurial > irccd
annotate tests/src/libirccd/command-server-nick/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 |
---|---|
301
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * main.cpp -- test server-nick remote command |
b7ad1b65104c
Tests: add test for server-nick, #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> |
301
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
b7ad1b65104c
Tests: add test for server-nick, #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-nick" |
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> |
301
b7ad1b65104c
Tests: add test for server-nick, #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 { |
301
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 namespace { |
b7ad1b65104c
Tests: add test for server-nick, #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_nick_fixture_suite, command_fixture) |
558
f1ad428208d3
Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
29 |
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-nick" }, |
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 { "nickname", "chris" } |
f1ad428208d3
Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
36 }); |
301
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 |
737
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
38 BOOST_TEST(!code); |
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
39 BOOST_TEST(json.is_object()); |
646
e4227aa185c2
Irccd: style (server) #782
David Demelier <markand@malikania.fr>
parents:
631
diff
changeset
|
40 BOOST_TEST(server_->get_nickname() == "chris"); |
578
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
41 } |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
42 |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
43 BOOST_AUTO_TEST_SUITE(errors) |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
44 |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
45 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
|
46 { |
737
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
47 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
|
48 { "command", "server-nick" }, |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
49 { "server", 123456 }, |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
50 { "nickname", "chris" } |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
51 }); |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
52 |
737
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
53 BOOST_TEST(code == server_error::invalid_identifier); |
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
54 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
|
55 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
|
56 } |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
57 |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
58 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
|
59 { |
737
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
60 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
|
61 { "command", "server-nick" }, |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
62 { "server", "" }, |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
63 { "nickname", "chris" } |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
64 }); |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
65 |
737
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
66 BOOST_TEST(code == server_error::invalid_identifier); |
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
67 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
|
68 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
|
69 } |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
70 |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
71 BOOST_AUTO_TEST_CASE(invalid_nickname_1) |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
72 { |
737
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
73 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
|
74 { "command", "server-nick" }, |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
75 { "server", "test" }, |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
76 { "nickname", "" } |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
77 }); |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
78 |
737
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
79 BOOST_TEST(code == server_error::invalid_nickname); |
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
80 BOOST_TEST(json["error"].get<int>() == server_error::invalid_nickname); |
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
81 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
|
82 } |
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 BOOST_AUTO_TEST_CASE(invalid_nickname_2) |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
85 { |
737
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
86 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
|
87 { "command", "server-nick" }, |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
88 { "server", "test" }, |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
89 { "nickname", 123456 } |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
90 }); |
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 BOOST_TEST(code == server_error::invalid_nickname); |
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
93 BOOST_TEST(json["error"].get<int>() == server_error::invalid_nickname); |
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
94 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
|
95 } |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
96 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
|
97 { |
737
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
98 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
|
99 { "command", "server-nick" }, |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
100 { "server", "unknown" }, |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
101 { "nickname", "chris" } |
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 |
737
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
104 BOOST_TEST(code == server_error::not_found); |
190b16cfa848
Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
105 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
|
106 BOOST_TEST(json["errorCategory"].get<std::string>() == "server"); |
301
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 } |
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
558
f1ad428208d3
Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
109 BOOST_AUTO_TEST_SUITE_END() |
301
b7ad1b65104c
Tests: add test for server-nick, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 |
578
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
111 BOOST_AUTO_TEST_SUITE_END() |
a8b892177909
Tests: add error code support in cmd-server-* tests
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
112 |
723
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
651
diff
changeset
|
113 } // !namespace |
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
651
diff
changeset
|
114 |
757
97b356010785
Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents:
754
diff
changeset
|
115 } // !irccd::test |