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