annotate tests/src/libirccd/command-server-list/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
309
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test server-list remote command
2f72a42ba595 Tests: add test for server-list, #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>
309
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
2f72a42ba595 Tests: add test for server-list, #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-list"
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>
309
2f72a42ba595 Tests: add test for server-list, #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 {
309
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 namespace {
2f72a42ba595 Tests: add test for server-list, #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 class server_list_fixture : public command_fixture {
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
29 protected:
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
30 server_list_fixture()
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
31 {
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
32 irccd_.servers().clear();
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
33 irccd_.servers().add(std::make_unique<mock_server>(ctx_, "s1", "localhost"));
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
34 irccd_.servers().add(std::make_unique<mock_server>(ctx_, "s2", "localhost"));
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
35 }
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
36 };
309
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
38 BOOST_FIXTURE_TEST_SUITE(server_list_fixture_suite, server_list_fixture)
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
39
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
40 BOOST_AUTO_TEST_CASE(basic)
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
41 {
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
42 const auto [json, code] = request({
651
1081e45b8628 Tests: use command_test::request helper, closes #784 @1h
David Demelier <markand@malikania.fr>
parents: 631
diff changeset
43 { "command", "server-list" }
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
44 });
309
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
737
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
46 BOOST_TEST(!code);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
47 BOOST_TEST(json.is_object());
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
48 BOOST_TEST(json["list"].is_array());
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
49 BOOST_TEST(json["list"].size() == 2U);
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
50 BOOST_TEST(json["list"][0].get<std::string>() == "s1");
190b16cfa848 Tests: improve command tests readability
David Demelier <markand@malikania.fr>
parents: 735
diff changeset
51 BOOST_TEST(json["list"][1].get<std::string>() == "s2");
309
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 }
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
558
f1ad428208d3 Tests: convert cmd-server-*, #593
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
54 BOOST_AUTO_TEST_SUITE_END()
309
2f72a42ba595 Tests: add test for server-list, #559
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
723
e8c4ba5ed1c6 Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents: 651
diff changeset
56 } // !namespace
e8c4ba5ed1c6 Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents: 651
diff changeset
57
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
58 } // !irccd::test