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