comparison tests/src/server-invite-command/main.cpp @ 609:168c0e191eea

Irccd: add more error properties, closes #754 Add two new properties in error messages: - errorMessage: the string message as-is, - errorCategory: the error category (e.g. server, rule). Adapt tests to test against the category.
author David Demelier <markand@malikania.fr>
date Thu, 14 Dec 2017 21:45:32 +0100
parents 9d4da384f5d6
children 22b3cd6f991f
comparison
equal deleted inserted replaced
608:5ee406d8dbe8 609:168c0e191eea
65 BOOST_AUTO_TEST_SUITE(errors) 65 BOOST_AUTO_TEST_SUITE(errors)
66 66
67 BOOST_AUTO_TEST_CASE(invalid_identifier_1) 67 BOOST_AUTO_TEST_CASE(invalid_identifier_1)
68 { 68 {
69 boost::system::error_code result; 69 boost::system::error_code result;
70 nlohmann::json message;
70 71
71 ctl_->send({ 72 ctl_->send({
72 { "command", "server-invite" }, 73 { "command", "server-invite" },
73 { "server", 123456 }, 74 { "server", 123456 },
74 { "target", "francis" }, 75 { "target", "francis" },
75 { "channel", "#music" } 76 { "channel", "#music" }
76 }); 77 });
77 ctl_->recv([&] (auto code, auto) { 78 ctl_->recv([&] (auto rresult, auto rmessage) {
78 result = code; 79 result = rresult;
80 message = rmessage;
79 }); 81 });
80 82
81 wait_for([&] { 83 wait_for([&] {
82 return result; 84 return result;
83 }); 85 });
84 86
85 BOOST_ASSERT(result == server_error::invalid_identifier); 87 BOOST_ASSERT(result == server_error::invalid_identifier);
88 BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_identifier);
89 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
86 } 90 }
87 91
88 BOOST_AUTO_TEST_CASE(invalid_identifier_2) 92 BOOST_AUTO_TEST_CASE(invalid_identifier_2)
89 { 93 {
90 boost::system::error_code result; 94 boost::system::error_code result;
95 nlohmann::json message;
91 96
92 ctl_->send({ 97 ctl_->send({
93 { "command", "server-invite" }, 98 { "command", "server-invite" },
94 { "server", "" }, 99 { "server", "" },
95 { "target", "francis" }, 100 { "target", "francis" },
96 { "channel", "#music" } 101 { "channel", "#music" }
97 }); 102 });
98 ctl_->recv([&] (auto code, auto) { 103 ctl_->recv([&] (auto rresult, auto rmessage) {
99 result = code; 104 result = rresult;
105 message = rmessage;
100 }); 106 });
101 107
102 wait_for([&] { 108 wait_for([&] {
103 return result; 109 return result;
104 }); 110 });
105 111
106 BOOST_ASSERT(result == server_error::invalid_identifier); 112 BOOST_ASSERT(result == server_error::invalid_identifier);
113 BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_identifier);
114 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
107 } 115 }
108 116
109 BOOST_AUTO_TEST_CASE(invalid_nickname_1) 117 BOOST_AUTO_TEST_CASE(invalid_nickname_1)
110 { 118 {
111 boost::system::error_code result; 119 boost::system::error_code result;
120 nlohmann::json message;
112 121
113 ctl_->send({ 122 ctl_->send({
114 { "command", "server-invite" }, 123 { "command", "server-invite" },
115 { "server", "test" }, 124 { "server", "test" },
116 { "target", "" }, 125 { "target", "" },
117 { "channel", "#music" } 126 { "channel", "#music" }
118 }); 127 });
119 ctl_->recv([&] (auto code, auto) { 128 ctl_->recv([&] (auto rresult, auto rmessage) {
120 result = code; 129 result = rresult;
130 message = rmessage;
121 }); 131 });
122 132
123 wait_for([&] { 133 wait_for([&] {
124 return result; 134 return result;
125 }); 135 });
126 136
127 BOOST_ASSERT(result == server_error::invalid_nickname); 137 BOOST_ASSERT(result == server_error::invalid_nickname);
138 BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_nickname);
139 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
128 } 140 }
129 141
130 BOOST_AUTO_TEST_CASE(invalid_nickname_2) 142 BOOST_AUTO_TEST_CASE(invalid_nickname_2)
131 { 143 {
132 boost::system::error_code result; 144 boost::system::error_code result;
145 nlohmann::json message;
133 146
134 ctl_->send({ 147 ctl_->send({
135 { "command", "server-invite" }, 148 { "command", "server-invite" },
136 { "server", "test" }, 149 { "server", "test" },
137 { "target", 123456 }, 150 { "target", 123456 },
138 { "channel", "#music" } 151 { "channel", "#music" }
139 }); 152 });
140 ctl_->recv([&] (auto code, auto) { 153 ctl_->recv([&] (auto rresult, auto rmessage) {
141 result = code; 154 result = rresult;
155 message = rmessage;
142 }); 156 });
143 157
144 wait_for([&] { 158 wait_for([&] {
145 return result; 159 return result;
146 }); 160 });
147 161
148 BOOST_ASSERT(result == server_error::invalid_nickname); 162 BOOST_ASSERT(result == server_error::invalid_nickname);
163 BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_nickname);
164 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
149 } 165 }
150 166
151 BOOST_AUTO_TEST_CASE(invalid_channel_1) 167 BOOST_AUTO_TEST_CASE(invalid_channel_1)
152 { 168 {
153 boost::system::error_code result; 169 boost::system::error_code result;
170 nlohmann::json message;
154 171
155 ctl_->send({ 172 ctl_->send({
156 { "command", "server-invite" }, 173 { "command", "server-invite" },
157 { "server", "test" }, 174 { "server", "test" },
158 { "target", "jean" }, 175 { "target", "jean" },
159 { "channel", "" } 176 { "channel", "" }
160 }); 177 });
161 ctl_->recv([&] (auto code, auto) { 178 ctl_->recv([&] (auto rresult, auto rmessage) {
162 result = code; 179 result = rresult;
180 message = rmessage;
163 }); 181 });
164 182
165 wait_for([&] { 183 wait_for([&] {
166 return result; 184 return result;
167 }); 185 });
168 186
169 BOOST_ASSERT(result == server_error::invalid_channel); 187 BOOST_ASSERT(result == server_error::invalid_channel);
188 BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_channel);
189 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
170 } 190 }
171 191
172 BOOST_AUTO_TEST_CASE(invalid_channel_2) 192 BOOST_AUTO_TEST_CASE(invalid_channel_2)
173 { 193 {
174 boost::system::error_code result; 194 boost::system::error_code result;
195 nlohmann::json message;
175 196
176 ctl_->send({ 197 ctl_->send({
177 { "command", "server-invite" }, 198 { "command", "server-invite" },
178 { "server", "test" }, 199 { "server", "test" },
179 { "target", "jean" }, 200 { "target", "jean" },
180 { "channel", 123456 } 201 { "channel", 123456 }
181 }); 202 });
182 ctl_->recv([&] (auto code, auto) { 203 ctl_->recv([&] (auto rresult, auto rmessage) {
183 result = code; 204 result = rresult;
205 message = rmessage;
184 }); 206 });
185 207
186 wait_for([&] { 208 wait_for([&] {
187 return result; 209 return result;
188 }); 210 });
189 211
190 BOOST_ASSERT(result == server_error::invalid_channel); 212 BOOST_ASSERT(result == server_error::invalid_channel);
213 BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_channel);
214 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
191 } 215 }
192 216
193 BOOST_AUTO_TEST_CASE(not_found) 217 BOOST_AUTO_TEST_CASE(not_found)
194 { 218 {
195 boost::system::error_code result; 219 boost::system::error_code result;
220 nlohmann::json message;
196 221
197 ctl_->send({ 222 ctl_->send({
198 { "command", "server-invite" }, 223 { "command", "server-invite" },
199 { "server", "unknown" }, 224 { "server", "unknown" },
200 { "target", "francis" }, 225 { "target", "francis" },
201 { "channel", "#music" } 226 { "channel", "#music" }
202 }); 227 });
203 ctl_->recv([&] (auto code, auto) { 228 ctl_->recv([&] (auto rresult, auto rmessage) {
204 result = code; 229 result = rresult;
230 message = rmessage;
205 }); 231 });
206 232
207 wait_for([&] { 233 wait_for([&] {
208 return result; 234 return result;
209 }); 235 });
210 236
211 BOOST_ASSERT(result == server_error::not_found); 237 BOOST_ASSERT(result == server_error::not_found);
238 BOOST_ASSERT(message["error"].template get<int>() == server_error::not_found);
239 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
212 } 240 }
213 241
214 BOOST_AUTO_TEST_SUITE_END() 242 BOOST_AUTO_TEST_SUITE_END()
215 243
216 BOOST_AUTO_TEST_SUITE_END() 244 BOOST_AUTO_TEST_SUITE_END()