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 }