annotate tests/src/libirccd/command-plugin-info/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
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test plugin-info remote command
d2b02e31478d Tests: add test for plugin-info, #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>
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
555
9b6b0d7d89c6 Tests: convert cmd-plugin-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
19 #define BOOST_TEST_MODULE "plugin-info"
9b6b0d7d89c6 Tests: convert cmd-plugin-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
20 #include <boost/test/unit_test.hpp>
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
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>
313
d2b02e31478d Tests: add test for plugin-info, #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 {
555
9b6b0d7d89c6 Tests: convert cmd-plugin-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
25
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 651
diff changeset
26 namespace {
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 651
diff changeset
27
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
28 BOOST_FIXTURE_TEST_SUITE(plugin_info_test_suite, command_fixture)
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
555
9b6b0d7d89c6 Tests: convert cmd-plugin-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
30 BOOST_AUTO_TEST_CASE(basic)
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
32 const auto [json, code] = request({
555
9b6b0d7d89c6 Tests: convert cmd-plugin-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
33 { "command", "plugin-info" },
9b6b0d7d89c6 Tests: convert cmd-plugin-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
34 { "plugin", "test" },
9b6b0d7d89c6 Tests: convert cmd-plugin-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
35 });
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
37 BOOST_TEST(!code);
738
199f36d4edc8 Tests: add mock_plugin class, closes #898
David Demelier <markand@malikania.fr>
parents: 737
diff changeset
38 BOOST_TEST(json["author"].get<std::string>() == "David Demelier <markand@malikania.fr>");
199f36d4edc8 Tests: add mock_plugin class, closes #898
David Demelier <markand@malikania.fr>
parents: 737
diff changeset
39 BOOST_TEST(json["license"].get<std::string>() == "ISC");
199f36d4edc8 Tests: add mock_plugin class, closes #898
David Demelier <markand@malikania.fr>
parents: 737
diff changeset
40 BOOST_TEST(json["summary"].get<std::string>() == "mock plugin");
199f36d4edc8 Tests: add mock_plugin class, closes #898
David Demelier <markand@malikania.fr>
parents: 737
diff changeset
41 BOOST_TEST(json["version"].get<std::string>() == "1.0");
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 }
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
570
153e84e7b09b Tests: add error code support in cmd-plugin-* tests
David Demelier <markand@malikania.fr>
parents: 555
diff changeset
44 BOOST_AUTO_TEST_SUITE(errors)
153e84e7b09b Tests: add error code support in cmd-plugin-* tests
David Demelier <markand@malikania.fr>
parents: 555
diff changeset
45
641
7e2d0739f37c Irccd: import json_util from code
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
46 BOOST_AUTO_TEST_CASE(invalid_identifier)
7e2d0739f37c Irccd: import json_util from code
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
47 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
48 const auto [json, code] = request({
641
7e2d0739f37c Irccd: import json_util from code
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
49 { "command", "plugin-info" }
7e2d0739f37c Irccd: import json_util from code
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
50 });
7e2d0739f37c Irccd: import json_util from code
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
51
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
52 BOOST_TEST(code == plugin_error::invalid_identifier);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
53 BOOST_TEST(json["error"].get<int>() == plugin_error::invalid_identifier);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
54 BOOST_TEST(json["errorCategory"].get<std::string>() == "plugin");
641
7e2d0739f37c Irccd: import json_util from code
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
55 }
7e2d0739f37c Irccd: import json_util from code
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
56
570
153e84e7b09b Tests: add error code support in cmd-plugin-* tests
David Demelier <markand@malikania.fr>
parents: 555
diff changeset
57 BOOST_AUTO_TEST_CASE(not_found)
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
59 const auto [json, code] = request({
570
153e84e7b09b Tests: add error code support in cmd-plugin-* tests
David Demelier <markand@malikania.fr>
parents: 555
diff changeset
60 { "command", "plugin-info" },
153e84e7b09b Tests: add error code support in cmd-plugin-* tests
David Demelier <markand@malikania.fr>
parents: 555
diff changeset
61 { "plugin", "unknown" }
555
9b6b0d7d89c6 Tests: convert cmd-plugin-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
62 });
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
63
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
64 BOOST_TEST(code == plugin_error::not_found);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
65 BOOST_TEST(json["error"].get<int>() == plugin_error::not_found);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
66 BOOST_TEST(json["errorCategory"].get<std::string>() == "plugin");
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 }
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
555
9b6b0d7d89c6 Tests: convert cmd-plugin-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
69 BOOST_AUTO_TEST_SUITE_END()
313
d2b02e31478d Tests: add test for plugin-info, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
570
153e84e7b09b Tests: add error code support in cmd-plugin-* tests
David Demelier <markand@malikania.fr>
parents: 555
diff changeset
71 BOOST_AUTO_TEST_SUITE_END()
153e84e7b09b Tests: add error code support in cmd-plugin-* tests
David Demelier <markand@malikania.fr>
parents: 555
diff changeset
72
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 651
diff changeset
73 } // !namespace
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 651
diff changeset
74
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
75 } // !irccd::test