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