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