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