comparison tests/src/server-reconnect-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
79 BOOST_AUTO_TEST_SUITE(errors) 79 BOOST_AUTO_TEST_SUITE(errors)
80 80
81 BOOST_AUTO_TEST_CASE(invalid_identifier_1) 81 BOOST_AUTO_TEST_CASE(invalid_identifier_1)
82 { 82 {
83 boost::system::error_code result; 83 boost::system::error_code result;
84 nlohmann::json message;
84 85
85 ctl_->send({ 86 ctl_->send({
86 { "command", "server-reconnect" }, 87 { "command", "server-reconnect" },
87 { "server", 123456 } 88 { "server", 123456 }
88 }); 89 });
89 ctl_->recv([&] (auto code, auto) { 90 ctl_->recv([&] (auto rresult, auto rmessage) {
90 result = code; 91 result = rresult;
92 message = rmessage;
91 }); 93 });
92 94
93 wait_for([&] { 95 wait_for([&] {
94 return result; 96 return result;
95 }); 97 });
96 98
97 BOOST_ASSERT(result == server_error::invalid_identifier); 99 BOOST_ASSERT(result == server_error::invalid_identifier);
100 BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_identifier);
101 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
98 } 102 }
99 103
100 BOOST_AUTO_TEST_CASE(invalid_identifier_2) 104 BOOST_AUTO_TEST_CASE(invalid_identifier_2)
101 { 105 {
102 boost::system::error_code result; 106 boost::system::error_code result;
107 nlohmann::json message;
103 108
104 ctl_->send({ 109 ctl_->send({
105 { "command", "server-reconnect" }, 110 { "command", "server-reconnect" },
106 { "server", "" } 111 { "server", "" }
107 }); 112 });
108 ctl_->recv([&] (auto code, auto) { 113 ctl_->recv([&] (auto rresult, auto rmessage) {
109 result = code; 114 result = rresult;
115 message = rmessage;
110 }); 116 });
111 117
112 wait_for([&] { 118 wait_for([&] {
113 return result; 119 return result;
114 }); 120 });
115 121
116 BOOST_ASSERT(result == server_error::invalid_identifier); 122 BOOST_ASSERT(result == server_error::invalid_identifier);
123 BOOST_ASSERT(message["error"].template get<int>() == server_error::invalid_identifier);
124 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
117 } 125 }
118 126
119 BOOST_AUTO_TEST_CASE(not_found) 127 BOOST_AUTO_TEST_CASE(not_found)
120 { 128 {
121 boost::system::error_code result; 129 boost::system::error_code result;
130 nlohmann::json message;
122 131
123 ctl_->send({ 132 ctl_->send({
124 { "command", "server-reconnect" }, 133 { "command", "server-reconnect" },
125 { "server", "unknown" } 134 { "server", "unknown" }
126 }); 135 });
127 ctl_->recv([&] (auto code, auto) { 136 ctl_->recv([&] (auto rresult, auto rmessage) {
128 result = code; 137 result = rresult;
138 message = rmessage;
129 }); 139 });
130 140
131 wait_for([&] { 141 wait_for([&] {
132 return result; 142 return result;
133 }); 143 });
134 144
135 BOOST_ASSERT(result == server_error::not_found); 145 BOOST_ASSERT(result == server_error::not_found);
146 BOOST_ASSERT(message["error"].template get<int>() == server_error::not_found);
147 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "server");
136 } 148 }
137 149
138 BOOST_AUTO_TEST_SUITE_END() 150 BOOST_AUTO_TEST_SUITE_END()
139 151
140 BOOST_AUTO_TEST_SUITE_END() 152 BOOST_AUTO_TEST_SUITE_END()