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