comparison tests/src/libirccd/command-server-me/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_me_test_suite, server_me_test) 44 BOOST_FIXTURE_TEST_SUITE(server_me_test_suite, server_me_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-me" }, 49 { "command", "server-me" },
50 { "server", "test" }, 50 { "server", "test" },
51 { "target", "jean" }, 51 { "target", "jean" },
52 { "message", "hello!" } 52 { "message", "hello!" }
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>() == "me"); 57 BOOST_TEST(cmd["command"].get<std::string>() == "me");
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-me" }, 67 { "command", "server-me" },
75 { "server", 123456 }, 68 { "server", 123456 },
76 { "target", "#music" }, 69 { "target", "#music" },
77 { "message", "hello!" } 70 { "message", "hello!" }
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-me" }, 81 { "command", "server-me" },
100 { "server", "" }, 82 { "server", "" },
101 { "target", "#music" }, 83 { "target", "#music" },
102 { "message", "hello!" } 84 { "message", "hello!" }
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-me" }, 95 { "command", "server-me" },
125 { "server", "test" }, 96 { "server", "test" },
126 { "target", "" }, 97 { "target", "" },
127 { "message", "hello!" } 98 { "message", "hello!" }
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-me" }, 109 { "command", "server-me" },
150 { "server", "test" }, 110 { "server", "test" },
151 { "target", 123456 }, 111 { "target", 123456 },
152 { "message", "hello!" } 112 { "message", "hello!" }
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-me" }, 123 { "command", "server-me" },
175 { "server", "unknown" }, 124 { "server", "unknown" },
176 { "target", "#music" }, 125 { "target", "#music" },
177 { "message", "hello!" } 126 { "message", "hello!" }
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()