Mercurial > irccd
comparison tests/src/libirccd/command-rule-info/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 |
---|---|
57 | 57 |
58 BOOST_FIXTURE_TEST_SUITE(rule_info_test_suite, rule_info_test) | 58 BOOST_FIXTURE_TEST_SUITE(rule_info_test_suite, rule_info_test) |
59 | 59 |
60 BOOST_AUTO_TEST_CASE(basic) | 60 BOOST_AUTO_TEST_CASE(basic) |
61 { | 61 { |
62 nlohmann::json result; | 62 const auto result = request({ |
63 | |
64 ctl_->send({ | |
65 { "command", "rule-info" }, | 63 { "command", "rule-info" }, |
66 { "index", 0 } | 64 { "index", 0 } |
67 }); | 65 }); |
68 ctl_->recv([&] (auto, auto msg) { | |
69 result = msg; | |
70 }); | |
71 | 66 |
72 wait_for([&] () { | 67 auto servers = result.first["servers"]; |
73 return result.is_object(); | 68 auto channels = result.first["channels"]; |
74 }); | 69 auto plugins = result.first["plugins"]; |
75 | 70 auto events = result.first["events"]; |
76 BOOST_TEST(result.is_object()); | |
77 | |
78 auto servers = result["servers"]; | |
79 auto channels = result["channels"]; | |
80 auto plugins = result["plugins"]; | |
81 auto events = result["events"]; | |
82 | 71 |
83 BOOST_TEST(json_util::contains(servers, "s1")); | 72 BOOST_TEST(json_util::contains(servers, "s1")); |
84 BOOST_TEST(json_util::contains(servers, "s2")); | 73 BOOST_TEST(json_util::contains(servers, "s2")); |
85 BOOST_TEST(json_util::contains(channels, "c1")); | 74 BOOST_TEST(json_util::contains(channels, "c1")); |
86 BOOST_TEST(json_util::contains(channels, "c2")); | 75 BOOST_TEST(json_util::contains(channels, "c2")); |
87 BOOST_TEST(json_util::contains(plugins, "p1")); | 76 BOOST_TEST(json_util::contains(plugins, "p1")); |
88 BOOST_TEST(json_util::contains(plugins, "p2")); | 77 BOOST_TEST(json_util::contains(plugins, "p2")); |
89 BOOST_TEST(json_util::contains(events, "onMessage")); | 78 BOOST_TEST(json_util::contains(events, "onMessage")); |
90 BOOST_TEST(json_util::contains(events, "onCommand")); | 79 BOOST_TEST(json_util::contains(events, "onCommand")); |
91 BOOST_TEST(result["action"].get<std::string>() == "drop"); | 80 BOOST_TEST(result.first["action"].get<std::string>() == "drop"); |
92 } | 81 } |
93 | 82 |
94 BOOST_AUTO_TEST_SUITE(errors) | 83 BOOST_AUTO_TEST_SUITE(errors) |
95 | 84 |
96 BOOST_AUTO_TEST_CASE(invalid_index_1) | 85 BOOST_AUTO_TEST_CASE(invalid_index_1) |
97 { | 86 { |
98 boost::system::error_code result; | 87 const auto result = request({ |
99 nlohmann::json message; | |
100 | |
101 ctl_->send({ | |
102 { "command", "rule-info" }, | 88 { "command", "rule-info" }, |
103 { "index", -100 } | 89 { "index", -100 } |
104 }); | 90 }); |
105 ctl_->recv([&] (auto rresult, auto rmessage) { | |
106 result = rresult; | |
107 message = rmessage; | |
108 }); | |
109 | 91 |
110 wait_for([&] { | 92 BOOST_TEST(result.second == rule_error::invalid_index); |
111 return result; | 93 BOOST_TEST(result.first["error"].template get<int>() == rule_error::invalid_index); |
112 }); | 94 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "rule"); |
113 | |
114 BOOST_TEST(result == rule_error::invalid_index); | |
115 BOOST_TEST(message["error"].template get<int>() == rule_error::invalid_index); | |
116 BOOST_TEST(message["errorCategory"].template get<std::string>() == "rule"); | |
117 } | 95 } |
118 | 96 |
119 BOOST_AUTO_TEST_CASE(invalid_index_2) | 97 BOOST_AUTO_TEST_CASE(invalid_index_2) |
120 { | 98 { |
121 boost::system::error_code result; | 99 const auto result = request({ |
122 nlohmann::json message; | |
123 | |
124 ctl_->send({ | |
125 { "command", "rule-info" }, | 100 { "command", "rule-info" }, |
126 { "index", 100 } | 101 { "index", 100 } |
127 }); | 102 }); |
128 ctl_->recv([&] (auto rresult, auto rmessage) { | |
129 result = rresult; | |
130 message = rmessage; | |
131 }); | |
132 | 103 |
133 wait_for([&] { | 104 BOOST_TEST(result.second == rule_error::invalid_index); |
134 return result; | 105 BOOST_TEST(result.first["error"].template get<int>() == rule_error::invalid_index); |
135 }); | 106 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "rule"); |
136 | |
137 BOOST_TEST(result == rule_error::invalid_index); | |
138 BOOST_TEST(message["error"].template get<int>() == rule_error::invalid_index); | |
139 BOOST_TEST(message["errorCategory"].template get<std::string>() == "rule"); | |
140 } | 107 } |
141 | 108 |
142 BOOST_AUTO_TEST_CASE(invalid_index_3) | 109 BOOST_AUTO_TEST_CASE(invalid_index_3) |
143 { | 110 { |
144 boost::system::error_code result; | 111 const auto result = request({ |
145 nlohmann::json message; | |
146 | |
147 ctl_->send({ | |
148 { "command", "rule-info" }, | 112 { "command", "rule-info" }, |
149 { "index", "notaint" } | 113 { "index", "notaint" } |
150 }); | 114 }); |
151 ctl_->recv([&] (auto rresult, auto rmessage) { | |
152 result = rresult; | |
153 message = rmessage; | |
154 }); | |
155 | 115 |
156 wait_for([&] { | 116 BOOST_TEST(result.second == rule_error::invalid_index); |
157 return result; | 117 BOOST_TEST(result.first["error"].template get<int>() == rule_error::invalid_index); |
158 }); | 118 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "rule"); |
159 | |
160 BOOST_TEST(result == rule_error::invalid_index); | |
161 BOOST_TEST(message["error"].template get<int>() == rule_error::invalid_index); | |
162 BOOST_TEST(message["errorCategory"].template get<std::string>() == "rule"); | |
163 } | 119 } |
164 | 120 |
165 BOOST_AUTO_TEST_SUITE_END() | 121 BOOST_AUTO_TEST_SUITE_END() |
166 | 122 |
167 BOOST_AUTO_TEST_SUITE_END() | 123 BOOST_AUTO_TEST_SUITE_END() |