Mercurial > irccd
comparison tests/src/rule-info-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 |
---|---|
94 BOOST_AUTO_TEST_SUITE(errors) | 94 BOOST_AUTO_TEST_SUITE(errors) |
95 | 95 |
96 BOOST_AUTO_TEST_CASE(invalid_index_1) | 96 BOOST_AUTO_TEST_CASE(invalid_index_1) |
97 { | 97 { |
98 boost::system::error_code result; | 98 boost::system::error_code result; |
99 nlohmann::json message; | |
99 | 100 |
100 ctl_->send({ | 101 ctl_->send({ |
101 { "command", "rule-info" }, | 102 { "command", "rule-info" }, |
102 { "index", -100 } | 103 { "index", -100 } |
103 }); | 104 }); |
104 ctl_->recv([&] (auto code, auto) { | 105 ctl_->recv([&] (auto rresult, auto rmessage) { |
105 result = code; | 106 result = rresult; |
107 message = rmessage; | |
106 }); | 108 }); |
107 | 109 |
108 wait_for([&] { | 110 wait_for([&] { |
109 return result; | 111 return result; |
110 }); | 112 }); |
111 | 113 |
112 BOOST_ASSERT(result == rule_error::invalid_index); | 114 BOOST_ASSERT(result == rule_error::invalid_index); |
115 BOOST_ASSERT(message["error"].template get<int>() == rule_error::invalid_index); | |
116 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "rule"); | |
113 } | 117 } |
114 | 118 |
115 BOOST_AUTO_TEST_CASE(invalid_index_2) | 119 BOOST_AUTO_TEST_CASE(invalid_index_2) |
116 { | 120 { |
117 boost::system::error_code result; | 121 boost::system::error_code result; |
122 nlohmann::json message; | |
118 | 123 |
119 ctl_->send({ | 124 ctl_->send({ |
120 { "command", "rule-info" }, | 125 { "command", "rule-info" }, |
121 { "index", 100 } | 126 { "index", 100 } |
122 }); | 127 }); |
123 ctl_->recv([&] (auto code, auto) { | 128 ctl_->recv([&] (auto rresult, auto rmessage) { |
124 result = code; | 129 result = rresult; |
130 message = rmessage; | |
125 }); | 131 }); |
126 | 132 |
127 wait_for([&] { | 133 wait_for([&] { |
128 return result; | 134 return result; |
129 }); | 135 }); |
130 | 136 |
131 BOOST_ASSERT(result == rule_error::invalid_index); | 137 BOOST_ASSERT(result == rule_error::invalid_index); |
138 BOOST_ASSERT(message["error"].template get<int>() == rule_error::invalid_index); | |
139 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "rule"); | |
132 } | 140 } |
133 | 141 |
134 BOOST_AUTO_TEST_CASE(invalid_index_3) | 142 BOOST_AUTO_TEST_CASE(invalid_index_3) |
135 { | 143 { |
136 boost::system::error_code result; | 144 boost::system::error_code result; |
145 nlohmann::json message; | |
137 | 146 |
138 ctl_->send({ | 147 ctl_->send({ |
139 { "command", "rule-info" }, | 148 { "command", "rule-info" }, |
140 { "index", "notaint" } | 149 { "index", "notaint" } |
141 }); | 150 }); |
142 ctl_->recv([&] (auto code, auto) { | 151 ctl_->recv([&] (auto rresult, auto rmessage) { |
143 result = code; | 152 result = rresult; |
153 message = rmessage; | |
144 }); | 154 }); |
145 | 155 |
146 wait_for([&] { | 156 wait_for([&] { |
147 return result; | 157 return result; |
148 }); | 158 }); |
149 | 159 |
150 BOOST_ASSERT(result == rule_error::invalid_index); | 160 BOOST_ASSERT(result == rule_error::invalid_index); |
161 BOOST_ASSERT(message["error"].template get<int>() == rule_error::invalid_index); | |
162 BOOST_ASSERT(message["errorCategory"].template get<std::string>() == "rule"); | |
151 } | 163 } |
152 | 164 |
153 BOOST_AUTO_TEST_SUITE_END() | 165 BOOST_AUTO_TEST_SUITE_END() |
154 | 166 |
155 BOOST_AUTO_TEST_SUITE_END() | 167 BOOST_AUTO_TEST_SUITE_END() |