Mercurial > irccd
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() |