comparison tests/src/libirccd/command-server-join/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 27896e9bcd9e
children 95ac3ace1610
comparison
equal deleted inserted replaced
650:27896e9bcd9e 651:1081e45b8628
63 BOOST_TEST(cmd["password"].get<std::string>() == "plop"); 63 BOOST_TEST(cmd["password"].get<std::string>() == "plop");
64 } 64 }
65 65
66 BOOST_AUTO_TEST_CASE(nopassword) 66 BOOST_AUTO_TEST_CASE(nopassword)
67 { 67 {
68 ctl_->send({ 68 const auto result = request({
69 { "command", "server-join" }, 69 { "command", "server-join" },
70 { "server", "test" }, 70 { "server", "test" },
71 { "channel", "#music" } 71 { "channel", "#music" }
72 });
73
74 wait_for([this] () {
75 return !server_->cqueue().empty();
76 }); 72 });
77 73
78 auto cmd = server_->cqueue().back(); 74 auto cmd = server_->cqueue().back();
79 75
80 BOOST_TEST(cmd["command"].get<std::string>() == "join"); 76 BOOST_TEST(cmd["command"].get<std::string>() == "join");
84 80
85 BOOST_AUTO_TEST_SUITE(errors) 81 BOOST_AUTO_TEST_SUITE(errors)
86 82
87 BOOST_AUTO_TEST_CASE(invalid_identifier_1) 83 BOOST_AUTO_TEST_CASE(invalid_identifier_1)
88 { 84 {
89 boost::system::error_code result; 85 const auto result = request({
90 nlohmann::json message;
91
92 ctl_->send({
93 { "command", "server-join" }, 86 { "command", "server-join" },
94 { "server", 123456 }, 87 { "server", 123456 },
95 { "channel", "#music" } 88 { "channel", "#music" }
96 }); 89 });
97 ctl_->recv([&] (auto rresult, auto rmessage) {
98 result = rresult;
99 message = rmessage;
100 });
101 90
102 wait_for([&] { 91 BOOST_TEST(result.second == server_error::invalid_identifier);
103 return result; 92 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_identifier);
104 }); 93 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server");
105
106 BOOST_TEST(result == server_error::invalid_identifier);
107 BOOST_TEST(message["error"].template get<int>() == server_error::invalid_identifier);
108 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server");
109 } 94 }
110 95
111 BOOST_AUTO_TEST_CASE(invalid_identifier_2) 96 BOOST_AUTO_TEST_CASE(invalid_identifier_2)
112 { 97 {
113 boost::system::error_code result; 98 const auto result = request({
114 nlohmann::json message;
115
116 ctl_->send({
117 { "command", "server-join" }, 99 { "command", "server-join" },
118 { "server", "" }, 100 { "server", "" },
119 { "channel", "#music" } 101 { "channel", "#music" }
120 }); 102 });
121 ctl_->recv([&] (auto rresult, auto rmessage) {
122 result = rresult;
123 message = rmessage;
124 });
125 103
126 wait_for([&] { 104 BOOST_TEST(result.second == server_error::invalid_identifier);
127 return result; 105 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_identifier);
128 }); 106 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server");
129
130 BOOST_TEST(result == server_error::invalid_identifier);
131 BOOST_TEST(message["error"].template get<int>() == server_error::invalid_identifier);
132 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server");
133 } 107 }
134 108
135 BOOST_AUTO_TEST_CASE(invalid_channel_1) 109 BOOST_AUTO_TEST_CASE(invalid_channel_1)
136 { 110 {
137 boost::system::error_code result; 111 const auto result = request({
138 nlohmann::json message;
139
140 ctl_->send({
141 { "command", "server-join" }, 112 { "command", "server-join" },
142 { "server", "test" }, 113 { "server", "test" },
143 { "channel", "" } 114 { "channel", "" }
144 }); 115 });
145 ctl_->recv([&] (auto rresult, auto rmessage) {
146 result = rresult;
147 message = rmessage;
148 });
149 116
150 wait_for([&] { 117 BOOST_TEST(result.second == server_error::invalid_channel);
151 return result; 118 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_channel);
152 }); 119 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server");
153
154 BOOST_TEST(result == server_error::invalid_channel);
155 BOOST_TEST(message["error"].template get<int>() == server_error::invalid_channel);
156 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server");
157 } 120 }
158 121
159 BOOST_AUTO_TEST_CASE(invalid_channel_2) 122 BOOST_AUTO_TEST_CASE(invalid_channel_2)
160 { 123 {
161 boost::system::error_code result; 124 const auto result = request({
162 nlohmann::json message;
163
164 ctl_->send({
165 { "command", "server-join" }, 125 { "command", "server-join" },
166 { "server", "test" }, 126 { "server", "test" },
167 { "channel", 123456 } 127 { "channel", 123456 }
168 }); 128 });
169 ctl_->recv([&] (auto rresult, auto rmessage) {
170 result = rresult;
171 message = rmessage;
172 });
173 129
174 wait_for([&] { 130 BOOST_TEST(result.second == server_error::invalid_channel);
175 return result; 131 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_channel);
176 }); 132 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server");
177
178 BOOST_TEST(result == server_error::invalid_channel);
179 BOOST_TEST(message["error"].template get<int>() == server_error::invalid_channel);
180 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server");
181 } 133 }
182 134
183 BOOST_AUTO_TEST_CASE(invalid_password) 135 BOOST_AUTO_TEST_CASE(invalid_password)
184 { 136 {
185 boost::system::error_code result; 137 const auto result = request({
186 nlohmann::json message;
187
188 ctl_->send({
189 { "command", "server-join" }, 138 { "command", "server-join" },
190 { "server", "test" }, 139 { "server", "test" },
191 { "channel", "#staff" }, 140 { "channel", "#staff" },
192 { "password", 123456 } 141 { "password", 123456 }
193 }); 142 });
194 ctl_->recv([&] (auto rresult, auto rmessage) {
195 result = rresult;
196 message = rmessage;
197 });
198 143
199 wait_for([&] { 144 BOOST_TEST(result.second == server_error::invalid_password);
200 return result; 145 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_password);
201 }); 146 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server");
202
203 BOOST_TEST(result == server_error::invalid_password);
204 BOOST_TEST(message["error"].template get<int>() == server_error::invalid_password);
205 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server");
206 } 147 }
207 148
208 BOOST_AUTO_TEST_CASE(not_found) 149 BOOST_AUTO_TEST_CASE(not_found)
209 { 150 {
210 boost::system::error_code result; 151 const auto result = request({
211 nlohmann::json message;
212
213 ctl_->send({
214 { "command", "server-join" }, 152 { "command", "server-join" },
215 { "server", "unknown" }, 153 { "server", "unknown" },
216 { "channel", "#music" } 154 { "channel", "#music" }
217 }); 155 });
218 ctl_->recv([&] (auto rresult, auto rmessage) {
219 result = rresult;
220 message = rmessage;
221 });
222 156
223 wait_for([&] { 157 BOOST_TEST(result.second == server_error::not_found);
224 return result; 158 BOOST_TEST(result.first["error"].template get<int>() == server_error::not_found);
225 }); 159 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server");
226
227 BOOST_TEST(result == server_error::not_found);
228 BOOST_TEST(message["error"].template get<int>() == server_error::not_found);
229 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server");
230 } 160 }
231 161
232 BOOST_AUTO_TEST_SUITE_END() 162 BOOST_AUTO_TEST_SUITE_END()
233 163
234 BOOST_AUTO_TEST_SUITE_END() 164 BOOST_AUTO_TEST_SUITE_END()