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