comparison tests/src/libirccd/command-server-disconnect/main.cpp @ 651:1081e45b8628

Tests: use command_test::request helper, closes #784 @1h
author David Demelier <markand@malikania.fr>
date Tue, 27 Mar 2018 20:12:02 +0200
parents c07819d1d306
children e8c4ba5ed1c6
comparison
equal deleted inserted replaced
650:27896e9bcd9e 651:1081e45b8628
52 52
53 BOOST_FIXTURE_TEST_SUITE(server_disconnect_test_suite, server_disconnect_test) 53 BOOST_FIXTURE_TEST_SUITE(server_disconnect_test_suite, server_disconnect_test)
54 54
55 BOOST_AUTO_TEST_CASE(one) 55 BOOST_AUTO_TEST_CASE(one)
56 { 56 {
57 nlohmann::json result; 57 const auto result = request({
58
59 ctl_->send({
60 { "command", "server-disconnect" }, 58 { "command", "server-disconnect" },
61 { "server", "s1" } 59 { "server", "s1" }
62 }); 60 });
63 ctl_->recv([&] (auto, auto msg) {
64 result = msg;
65 });
66 61
67 wait_for([&] () { 62 BOOST_TEST(result.first["command"].get<std::string>() == "server-disconnect");
68 return result.is_object();
69 });
70
71 BOOST_TEST(result["command"].get<std::string>() == "server-disconnect");
72 BOOST_TEST(!daemon_->servers().has("s1")); 63 BOOST_TEST(!daemon_->servers().has("s1"));
73 BOOST_TEST(daemon_->servers().has("s2")); 64 BOOST_TEST(daemon_->servers().has("s2"));
74 } 65 }
75 66
76 BOOST_AUTO_TEST_CASE(all) 67 BOOST_AUTO_TEST_CASE(all)
77 { 68 {
78 nlohmann::json result; 69 const auto result = request({
79 70 { "command", "server-disconnect" }
80 ctl_->send({{"command", "server-disconnect"}});
81 ctl_->recv([&] (auto, auto msg) {
82 result = msg;
83 }); 71 });
84 72
85 wait_for([&] () { 73 BOOST_TEST(result.first["command"].get<std::string>() == "server-disconnect");
86 return result.is_object();
87 });
88
89 BOOST_TEST(result["command"].get<std::string>() == "server-disconnect");
90 BOOST_TEST(!daemon_->servers().has("s1")); 74 BOOST_TEST(!daemon_->servers().has("s1"));
91 BOOST_TEST(!daemon_->servers().has("s2")); 75 BOOST_TEST(!daemon_->servers().has("s2"));
92 } 76 }
93 77
94 BOOST_AUTO_TEST_SUITE(errors) 78 BOOST_AUTO_TEST_SUITE(errors)
95 79
96 BOOST_AUTO_TEST_CASE(invalid_identifier) 80 BOOST_AUTO_TEST_CASE(invalid_identifier)
97 { 81 {
98 boost::system::error_code result; 82 const auto result = request({
99 nlohmann::json message;
100
101 ctl_->send({
102 { "command", "server-disconnect" }, 83 { "command", "server-disconnect" },
103 { "server", 123456 } 84 { "server", 123456 }
104 }); 85 });
105 ctl_->recv([&] (auto rresult, auto rmessage) {
106 result = rresult;
107 message = rmessage;
108 });
109 86
110 wait_for([&] { 87 BOOST_TEST(result.second == server_error::invalid_identifier);
111 return result; 88 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_identifier);
112 }); 89 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server");
113
114 BOOST_TEST(result == server_error::invalid_identifier);
115 BOOST_TEST(message["error"].template get<int>() == server_error::invalid_identifier);
116 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server");
117 } 90 }
118 91
119 BOOST_AUTO_TEST_CASE(not_found) 92 BOOST_AUTO_TEST_CASE(not_found)
120 { 93 {
121 boost::system::error_code result; 94 const auto result = request({
122 nlohmann::json message;
123
124 ctl_->send({
125 { "command", "server-disconnect" }, 95 { "command", "server-disconnect" },
126 { "server", "unknown" } 96 { "server", "unknown" }
127 }); 97 });
128 ctl_->recv([&] (auto rresult, auto rmessage) {
129 result = rresult;
130 message = rmessage;
131 });
132 98
133 wait_for([&] { 99 BOOST_TEST(result.second == server_error::not_found);
134 return result; 100 BOOST_TEST(result.first["error"].template get<int>() == server_error::not_found);
135 }); 101 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server");
136
137 BOOST_TEST(result == server_error::not_found);
138 BOOST_TEST(message["error"].template get<int>() == server_error::not_found);
139 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server");
140 } 102 }
141 103
142 BOOST_AUTO_TEST_SUITE_END() 104 BOOST_AUTO_TEST_SUITE_END()
143 105
144 BOOST_AUTO_TEST_SUITE_END() 106 BOOST_AUTO_TEST_SUITE_END()