Mercurial > irccd
comparison tests/cmd-server-list/main.cpp @ 558:f1ad428208d3
Tests: convert cmd-server-*, #593
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sat, 25 Nov 2017 17:00:24 +0100 |
parents | 7e273b7f4f92 |
children |
comparison
equal
deleted
inserted
replaced
557:c729f06c6f27 | 558:f1ad428208d3 |
---|---|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
17 */ | 17 */ |
18 | 18 |
19 #include <command.hpp> | 19 #define BOOST_TEST_MODULE "server-list" |
20 #include <command-tester.hpp> | 20 #include <boost/test/unit_test.hpp> |
21 #include <server-tester.hpp> | |
22 #include <service.hpp> | |
23 | 21 |
24 using namespace irccd; | 22 #include <irccd/server_service.hpp> |
23 | |
24 #include <journal_server.hpp> | |
25 #include <command_test.hpp> | |
26 | |
27 namespace irccd { | |
25 | 28 |
26 namespace { | 29 namespace { |
27 | 30 |
28 nlohmann::json result; | 31 class server_list_test : public command_test<server_list_command> { |
32 protected: | |
33 server_list_test() | |
34 { | |
35 daemon_->servers().add(std::make_unique<journal_server>(service_, "s1")); | |
36 daemon_->servers().add(std::make_unique<journal_server>(service_, "s2")); | |
37 } | |
38 }; | |
29 | 39 |
30 } // !namespace | 40 } // !namespace |
31 | 41 |
32 class ServerListCommandTest : public CommandTester { | 42 BOOST_FIXTURE_TEST_SUITE(server_list_test_suite, server_list_test) |
33 public: | |
34 ServerListCommandTest() | |
35 : CommandTester(std::make_unique<server_list_command>()) | |
36 { | |
37 m_irccd.servers().add(std::make_unique<ServerTester>("s1")); | |
38 m_irccd.servers().add(std::make_unique<ServerTester>("s2")); | |
39 m_irccdctl.client().request({{ "command", "server-list" }}); | |
40 m_irccdctl.client().onMessage.connect([&] (auto result) { | |
41 ::result = result; | |
42 }); | |
43 } | |
44 }; | |
45 | 43 |
46 TEST_F(ServerListCommandTest, basic) | 44 BOOST_AUTO_TEST_CASE(basic) |
47 { | 45 { |
48 try { | 46 nlohmann::json result; |
49 poll([&] () { | |
50 return result.is_object(); | |
51 }); | |
52 | 47 |
53 ASSERT_TRUE(result.is_object()); | 48 ctl_->send({{"command", "server-list"}}); |
54 ASSERT_TRUE(result["list"].is_array()); | 49 ctl_->recv([&] (auto, auto msg) { |
55 ASSERT_EQ(2U, result["list"].size()); | 50 result = msg; |
56 ASSERT_EQ("s1", result["list"][0]); | 51 }); |
57 ASSERT_EQ("s2", result["list"][1]); | 52 |
58 } catch (const std::exception &ex) { | 53 wait_for([&] () { |
59 FAIL() << ex.what(); | 54 return result.is_object(); |
60 } | 55 }); |
56 | |
57 BOOST_TEST(result.is_object()); | |
58 BOOST_TEST(result["list"].is_array()); | |
59 BOOST_TEST(result["list"].size() == 2U); | |
60 BOOST_TEST(result["list"][0].get<std::string>() == "s1"); | |
61 BOOST_TEST(result["list"][1].get<std::string>() == "s2"); | |
61 } | 62 } |
62 | 63 |
63 int main(int argc, char **argv) | 64 BOOST_AUTO_TEST_SUITE_END() |
64 { | |
65 testing::InitGoogleTest(&argc, argv); | |
66 | 65 |
67 return RUN_ALL_TESTS(); | 66 } // !irccd |
68 } |