comparison tests/src/libirccd/command-rule-list/main.cpp @ 737:190b16cfa848

Tests: improve command tests readability
author David Demelier <markand@malikania.fr>
date Tue, 24 Jul 2018 23:01:00 +0200
parents e8c4ba5ed1c6
children 8876412ba633
comparison
equal deleted inserted replaced
736:49b7c7660a00 737:190b16cfa848
55 55
56 BOOST_FIXTURE_TEST_SUITE(rule_list_test_suite, rule_list_test) 56 BOOST_FIXTURE_TEST_SUITE(rule_list_test_suite, rule_list_test)
57 57
58 BOOST_AUTO_TEST_CASE(basic) 58 BOOST_AUTO_TEST_CASE(basic)
59 { 59 {
60 const auto result = request({ 60 const auto [json, code] = request({{ "command", "rule-list" }});
61 { "command", "rule-list" }
62 });
63 61
64 BOOST_TEST(result.first.is_object()); 62 BOOST_TEST(!code);
65 BOOST_TEST(result.first["list"].is_array()); 63 BOOST_TEST(json.is_object());
66 BOOST_TEST(result.first["list"].size() == 2U); 64 BOOST_TEST(json["list"].is_array());
65 BOOST_TEST(json["list"].size() == 2U);
67 66
68 // Rule 0. 67 // Rule 0.
69 { 68 {
70 auto servers = result.first["list"][0]["servers"]; 69 auto servers = json["list"][0]["servers"];
71 auto channels = result.first["list"][0]["channels"]; 70 auto channels = json["list"][0]["channels"];
72 auto plugins = result.first["list"][0]["plugins"]; 71 auto plugins = json["list"][0]["plugins"];
73 auto events = result.first["list"][0]["events"]; 72 auto events = json["list"][0]["events"];
74 73
75 BOOST_TEST(json_util::contains(servers, "s1")); 74 BOOST_TEST(json_util::contains(servers, "s1"));
76 BOOST_TEST(json_util::contains(servers, "s2")); 75 BOOST_TEST(json_util::contains(servers, "s2"));
77 BOOST_TEST(json_util::contains(channels, "c1")); 76 BOOST_TEST(json_util::contains(channels, "c1"));
78 BOOST_TEST(json_util::contains(channels, "c2")); 77 BOOST_TEST(json_util::contains(channels, "c2"));
79 BOOST_TEST(json_util::contains(plugins, "p1")); 78 BOOST_TEST(json_util::contains(plugins, "p1"));
80 BOOST_TEST(json_util::contains(plugins, "p2")); 79 BOOST_TEST(json_util::contains(plugins, "p2"));
81 BOOST_TEST(json_util::contains(events, "onMessage")); 80 BOOST_TEST(json_util::contains(events, "onMessage"));
82 BOOST_TEST(json_util::contains(events, "onCommand")); 81 BOOST_TEST(json_util::contains(events, "onCommand"));
83 BOOST_TEST(result.first["list"][0]["action"].get<std::string>() == "drop"); 82 BOOST_TEST(json["list"][0]["action"].get<std::string>() == "drop");
84 } 83 }
85 84
86 // Rule 1. 85 // Rule 1.
87 { 86 {
88 auto servers = result.first["list"][1]["servers"]; 87 auto servers = json["list"][1]["servers"];
89 auto channels = result.first["list"][1]["channels"]; 88 auto channels = json["list"][1]["channels"];
90 auto plugins = result.first["list"][1]["plugins"]; 89 auto plugins = json["list"][1]["plugins"];
91 auto events = result.first["list"][1]["events"]; 90 auto events = json["list"][1]["events"];
92 91
93 BOOST_TEST(json_util::contains(servers, "s1")); 92 BOOST_TEST(json_util::contains(servers, "s1"));
94 BOOST_TEST(json_util::contains(channels, "c1")); 93 BOOST_TEST(json_util::contains(channels, "c1"));
95 BOOST_TEST(json_util::contains(plugins, "p1")); 94 BOOST_TEST(json_util::contains(plugins, "p1"));
96 BOOST_TEST(json_util::contains(events, "onMessage")); 95 BOOST_TEST(json_util::contains(events, "onMessage"));
97 BOOST_TEST(result.first["list"][1]["action"].get<std::string>() == "accept"); 96 BOOST_TEST(json["list"][1]["action"].get<std::string>() == "accept");
98 } 97 }
99 } 98 }
100 99
101 BOOST_AUTO_TEST_CASE(empty) 100 BOOST_AUTO_TEST_CASE(empty)
102 { 101 {
103 daemon_->rules().remove(0); 102 daemon_->rules().remove(0);
104 daemon_->rules().remove(0); 103 daemon_->rules().remove(0);
105 104
106 const auto result = request({ 105 const auto [json, code] = request({{ "command", "rule-list" }});
107 { "command", "rule-list" }
108 });
109 106
110 BOOST_TEST(result.first.is_object()); 107 BOOST_TEST(!code);
111 BOOST_TEST(result.first["list"].is_array()); 108 BOOST_TEST(json.is_object());
112 BOOST_TEST(result.first["list"].empty()); 109 BOOST_TEST(json["list"].is_array());
110 BOOST_TEST(json["list"].empty());
113 } 111 }
114 112
115 BOOST_AUTO_TEST_SUITE_END() 113 BOOST_AUTO_TEST_SUITE_END()
116 114
117 } // !namespace 115 } // !namespace