Mercurial > irccd
comparison tests/src/libirccd/command-server-message/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 | 1fa9e5222e87 |
children | e8c4ba5ed1c6 |
comparison
equal
deleted
inserted
replaced
650:27896e9bcd9e | 651:1081e45b8628 |
---|---|
43 | 43 |
44 BOOST_FIXTURE_TEST_SUITE(server_message_test_suite, server_message_test) | 44 BOOST_FIXTURE_TEST_SUITE(server_message_test_suite, server_message_test) |
45 | 45 |
46 BOOST_AUTO_TEST_CASE(basic) | 46 BOOST_AUTO_TEST_CASE(basic) |
47 { | 47 { |
48 ctl_->send({ | 48 const auto result = request({ |
49 { "command", "server-message" }, | 49 { "command", "server-message" }, |
50 { "server", "test" }, | 50 { "server", "test" }, |
51 { "target", "#staff" }, | 51 { "target", "#staff" }, |
52 { "message", "plop!" } | 52 { "message", "plop!" } |
53 }); | |
54 | |
55 wait_for([this] () { | |
56 return !server_->cqueue().empty(); | |
57 }); | 53 }); |
58 | 54 |
59 auto cmd = server_->cqueue().back(); | 55 auto cmd = server_->cqueue().back(); |
60 | 56 |
61 BOOST_TEST(cmd["command"].get<std::string>() == "message"); | 57 BOOST_TEST(cmd["command"].get<std::string>() == "message"); |
65 | 61 |
66 BOOST_AUTO_TEST_SUITE(errors) | 62 BOOST_AUTO_TEST_SUITE(errors) |
67 | 63 |
68 BOOST_AUTO_TEST_CASE(invalid_identifier_1) | 64 BOOST_AUTO_TEST_CASE(invalid_identifier_1) |
69 { | 65 { |
70 boost::system::error_code result; | 66 const auto result = request({ |
71 nlohmann::json message; | |
72 | |
73 ctl_->send({ | |
74 { "command", "server-message" }, | 67 { "command", "server-message" }, |
75 { "server", 123456 }, | 68 { "server", 123456 }, |
76 { "target", "#music" }, | 69 { "target", "#music" }, |
77 { "message", "plop!" } | 70 { "message", "plop!" } |
78 }); | 71 }); |
79 ctl_->recv([&] (auto rresult, auto rmessage) { | |
80 result = rresult; | |
81 message = rmessage; | |
82 }); | |
83 | 72 |
84 wait_for([&] { | 73 BOOST_TEST(result.second == server_error::invalid_identifier); |
85 return result; | 74 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_identifier); |
86 }); | 75 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); |
87 | |
88 BOOST_TEST(result == server_error::invalid_identifier); | |
89 BOOST_TEST(message["error"].template get<int>() == server_error::invalid_identifier); | |
90 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server"); | |
91 } | 76 } |
92 | 77 |
93 BOOST_AUTO_TEST_CASE(invalid_identifier_2) | 78 BOOST_AUTO_TEST_CASE(invalid_identifier_2) |
94 { | 79 { |
95 boost::system::error_code result; | 80 const auto result = request({ |
96 nlohmann::json message; | |
97 | |
98 ctl_->send({ | |
99 { "command", "server-message" }, | 81 { "command", "server-message" }, |
100 { "server", "" }, | 82 { "server", "" }, |
101 { "target", "#music" }, | 83 { "target", "#music" }, |
102 { "message", "plop!" } | 84 { "message", "plop!" } |
103 }); | 85 }); |
104 ctl_->recv([&] (auto rresult, auto rmessage) { | |
105 result = rresult; | |
106 message = rmessage; | |
107 }); | |
108 | 86 |
109 wait_for([&] { | 87 BOOST_TEST(result.second == server_error::invalid_identifier); |
110 return result; | 88 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_identifier); |
111 }); | 89 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); |
112 | |
113 BOOST_TEST(result == server_error::invalid_identifier); | |
114 BOOST_TEST(message["error"].template get<int>() == server_error::invalid_identifier); | |
115 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server"); | |
116 } | 90 } |
117 | 91 |
118 BOOST_AUTO_TEST_CASE(invalid_channel_1) | 92 BOOST_AUTO_TEST_CASE(invalid_channel_1) |
119 { | 93 { |
120 boost::system::error_code result; | 94 const auto result = request({ |
121 nlohmann::json message; | |
122 | |
123 ctl_->send({ | |
124 { "command", "server-message" }, | 95 { "command", "server-message" }, |
125 { "server", "test" }, | 96 { "server", "test" }, |
126 { "target", "" }, | 97 { "target", "" }, |
127 { "message", "plop!" } | 98 { "message", "plop!" } |
128 }); | 99 }); |
129 ctl_->recv([&] (auto rresult, auto rmessage) { | |
130 result = rresult; | |
131 message = rmessage; | |
132 }); | |
133 | 100 |
134 wait_for([&] { | 101 BOOST_TEST(result.second == server_error::invalid_channel); |
135 return result; | 102 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_channel); |
136 }); | 103 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); |
137 | |
138 BOOST_TEST(result == server_error::invalid_channel); | |
139 BOOST_TEST(message["error"].template get<int>() == server_error::invalid_channel); | |
140 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server"); | |
141 } | 104 } |
142 | 105 |
143 BOOST_AUTO_TEST_CASE(invalid_channel_2) | 106 BOOST_AUTO_TEST_CASE(invalid_channel_2) |
144 { | 107 { |
145 boost::system::error_code result; | 108 const auto result = request({ |
146 nlohmann::json message; | |
147 | |
148 ctl_->send({ | |
149 { "command", "server-message" }, | 109 { "command", "server-message" }, |
150 { "server", "test" }, | 110 { "server", "test" }, |
151 { "target", 123456 }, | 111 { "target", 123456 }, |
152 { "message", "plop!" } | 112 { "message", "plop!" } |
153 }); | 113 }); |
154 ctl_->recv([&] (auto rresult, auto rmessage) { | |
155 result = rresult; | |
156 message = rmessage; | |
157 }); | |
158 | 114 |
159 wait_for([&] { | 115 BOOST_TEST(result.second == server_error::invalid_channel); |
160 return result; | 116 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_channel); |
161 }); | 117 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); |
162 | |
163 BOOST_TEST(result == server_error::invalid_channel); | |
164 BOOST_TEST(message["error"].template get<int>() == server_error::invalid_channel); | |
165 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server"); | |
166 } | 118 } |
167 | 119 |
168 BOOST_AUTO_TEST_CASE(not_found) | 120 BOOST_AUTO_TEST_CASE(not_found) |
169 { | 121 { |
170 boost::system::error_code result; | 122 const auto result = request({ |
171 nlohmann::json message; | |
172 | |
173 ctl_->send({ | |
174 { "command", "server-message" }, | 123 { "command", "server-message" }, |
175 { "server", "unknown" }, | 124 { "server", "unknown" }, |
176 { "target", "#music" }, | 125 { "target", "#music" }, |
177 { "message", "plop!" } | 126 { "message", "plop!" } |
178 }); | 127 }); |
179 ctl_->recv([&] (auto rresult, auto rmessage) { | |
180 result = rresult; | |
181 message = rmessage; | |
182 }); | |
183 | 128 |
184 wait_for([&] { | 129 BOOST_TEST(result.second == server_error::not_found); |
185 return result; | 130 BOOST_TEST(result.first["error"].template get<int>() == server_error::not_found); |
186 }); | 131 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); |
187 | |
188 BOOST_TEST(result == server_error::not_found); | |
189 BOOST_TEST(message["error"].template get<int>() == server_error::not_found); | |
190 BOOST_TEST(message["errorCategory"].template get<std::string>() == "server"); | |
191 } | 132 } |
192 | 133 |
193 BOOST_AUTO_TEST_SUITE_END() | 134 BOOST_AUTO_TEST_SUITE_END() |
194 | 135 |
195 BOOST_AUTO_TEST_SUITE_END() | 136 BOOST_AUTO_TEST_SUITE_END() |