Mercurial > irccd
comparison tests/src/libirccd/command-rule-list/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_list_test_suite, rule_list_test) | 58 BOOST_FIXTURE_TEST_SUITE(rule_list_test_suite, rule_list_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 | 63 { "command", "rule-list" } |
64 ctl_->send({{"command", "rule-list"}}); | |
65 ctl_->recv([&] (auto, auto msg) { | |
66 result = msg; | |
67 }); | |
68 wait_for([&] () { | |
69 return result.is_object(); | |
70 }); | 64 }); |
71 | 65 |
72 BOOST_TEST(result.is_object()); | 66 BOOST_TEST(result.first.is_object()); |
73 BOOST_TEST(result["list"].is_array()); | 67 BOOST_TEST(result.first["list"].is_array()); |
74 BOOST_TEST(result["list"].size() == 2U); | 68 BOOST_TEST(result.first["list"].size() == 2U); |
75 | 69 |
76 // Rule 0. | 70 // Rule 0. |
77 { | 71 { |
78 auto servers = result["list"][0]["servers"]; | 72 auto servers = result.first["list"][0]["servers"]; |
79 auto channels = result["list"][0]["channels"]; | 73 auto channels = result.first["list"][0]["channels"]; |
80 auto plugins = result["list"][0]["plugins"]; | 74 auto plugins = result.first["list"][0]["plugins"]; |
81 auto events = result["list"][0]["events"]; | 75 auto events = result.first["list"][0]["events"]; |
82 | 76 |
83 BOOST_TEST(json_util::contains(servers, "s1")); | 77 BOOST_TEST(json_util::contains(servers, "s1")); |
84 BOOST_TEST(json_util::contains(servers, "s2")); | 78 BOOST_TEST(json_util::contains(servers, "s2")); |
85 BOOST_TEST(json_util::contains(channels, "c1")); | 79 BOOST_TEST(json_util::contains(channels, "c1")); |
86 BOOST_TEST(json_util::contains(channels, "c2")); | 80 BOOST_TEST(json_util::contains(channels, "c2")); |
87 BOOST_TEST(json_util::contains(plugins, "p1")); | 81 BOOST_TEST(json_util::contains(plugins, "p1")); |
88 BOOST_TEST(json_util::contains(plugins, "p2")); | 82 BOOST_TEST(json_util::contains(plugins, "p2")); |
89 BOOST_TEST(json_util::contains(events, "onMessage")); | 83 BOOST_TEST(json_util::contains(events, "onMessage")); |
90 BOOST_TEST(json_util::contains(events, "onCommand")); | 84 BOOST_TEST(json_util::contains(events, "onCommand")); |
91 BOOST_TEST(result["list"][0]["action"].get<std::string>() == "drop"); | 85 BOOST_TEST(result.first["list"][0]["action"].get<std::string>() == "drop"); |
92 } | 86 } |
93 | 87 |
94 // Rule 1. | 88 // Rule 1. |
95 { | 89 { |
96 auto servers = result["list"][1]["servers"]; | 90 auto servers = result.first["list"][1]["servers"]; |
97 auto channels = result["list"][1]["channels"]; | 91 auto channels = result.first["list"][1]["channels"]; |
98 auto plugins = result["list"][1]["plugins"]; | 92 auto plugins = result.first["list"][1]["plugins"]; |
99 auto events = result["list"][1]["events"]; | 93 auto events = result.first["list"][1]["events"]; |
100 | 94 |
101 BOOST_TEST(json_util::contains(servers, "s1")); | 95 BOOST_TEST(json_util::contains(servers, "s1")); |
102 BOOST_TEST(json_util::contains(channels, "c1")); | 96 BOOST_TEST(json_util::contains(channels, "c1")); |
103 BOOST_TEST(json_util::contains(plugins, "p1")); | 97 BOOST_TEST(json_util::contains(plugins, "p1")); |
104 BOOST_TEST(json_util::contains(events, "onMessage")); | 98 BOOST_TEST(json_util::contains(events, "onMessage")); |
105 BOOST_TEST(result["list"][1]["action"].get<std::string>() == "accept"); | 99 BOOST_TEST(result.first["list"][1]["action"].get<std::string>() == "accept"); |
106 } | 100 } |
107 } | 101 } |
108 | 102 |
109 BOOST_AUTO_TEST_CASE(empty) | 103 BOOST_AUTO_TEST_CASE(empty) |
110 { | 104 { |
111 nlohmann::json result; | |
112 | |
113 daemon_->rules().remove(0); | 105 daemon_->rules().remove(0); |
114 daemon_->rules().remove(0); | 106 daemon_->rules().remove(0); |
115 | 107 |
116 ctl_->send({{"command", "rule-list"}}); | 108 const auto result = request({ |
117 ctl_->recv([&] (auto, auto msg) { | 109 { "command", "rule-list" } |
118 result = msg; | |
119 }); | |
120 wait_for([&] () { | |
121 return result.is_object(); | |
122 }); | 110 }); |
123 | 111 |
124 BOOST_TEST(result.is_object()); | 112 BOOST_TEST(result.first.is_object()); |
125 BOOST_TEST(result["list"].is_array()); | 113 BOOST_TEST(result.first["list"].is_array()); |
126 BOOST_TEST(result["list"].empty()); | 114 BOOST_TEST(result.first["list"].empty()); |
127 } | 115 } |
128 | 116 |
129 BOOST_AUTO_TEST_SUITE_END() | 117 BOOST_AUTO_TEST_SUITE_END() |
130 | 118 |
131 } // !irccd | 119 } // !irccd |