comparison tests/src/irccdctl/cli-rule-add/main.cpp @ 678:a4082de4e94e

Tests: rework cli_test to spawn irccd daemon in a thread, continue #785 Instead of spawning irccd executable, use the irccd class for better flexibility in test code. For example, for server tests we will need to use journal_server to see if commands have been called instead of checking a real IRC server. While here, add rule-cli-remove test that was forgotten.
author David Demelier <markand@malikania.fr>
date Thu, 12 Apr 2018 20:14:07 +0200
parents 7ed23c858694
children e8c4ba5ed1c6
comparison
equal deleted inserted replaced
677:d24200bdeaf8 678:a4082de4e94e
17 */ 17 */
18 18
19 #define BOOST_TEST_MODULE "irccdctl rule-add" 19 #define BOOST_TEST_MODULE "irccdctl rule-add"
20 #include <boost/test/unit_test.hpp> 20 #include <boost/test/unit_test.hpp>
21 21
22 #include <irccd/test/cli_test.hpp> 22 #include <irccd/test/rule_cli_test.hpp>
23 23
24 namespace irccd { 24 namespace irccd {
25 25
26 BOOST_FIXTURE_TEST_SUITE(rule_add_suite, cli_test) 26 BOOST_FIXTURE_TEST_SUITE(rule_add_suite, rule_cli_test)
27 27
28 BOOST_AUTO_TEST_CASE(all) 28 BOOST_AUTO_TEST_CASE(all)
29 { 29 {
30 run_irccd("irccd-rules.conf"); 30 start();
31 31
32 { 32 {
33 const auto result = run_irccdctl({ "rule-add", 33 const auto result = exec({ "rule-add",
34 "-c tc1", "--add-channel tc2", 34 "-c c1", "--add-channel c2",
35 "-e onMessage", "--add-event onCommand", 35 "-e onMessage", "--add-event onCommand",
36 "-p tp1", "--add-plugin tp2", 36 "-p p1", "--add-plugin p2",
37 "-s ts1", "--add-server ts2", 37 "-s s1", "--add-server s2",
38 "drop" 38 "drop"
39 }); 39 });
40 40
41 BOOST_TEST(result.first.size() == 0U); 41 BOOST_TEST(result.first.size() == 0U);
42 BOOST_TEST(result.second.size() == 0U); 42 BOOST_TEST(result.second.size() == 0U);
43 } 43 }
44 44
45 { 45 {
46 const auto result = run_irccdctl({ "rule-list" }); 46 const auto result = exec({ "rule-list" });
47 47
48 BOOST_TEST(result.first.size() == 15U); 48 BOOST_TEST(result.first.size() == 7U);
49 BOOST_TEST(result.second.size() == 0U); 49 BOOST_TEST(result.second.size() == 0U);
50 BOOST_TEST(result.first[0] == "rule: 0"); 50 BOOST_TEST(result.first[0] == "rule: 0");
51 BOOST_TEST(result.first[1] == "servers: s1 s2 "); 51 BOOST_TEST(result.first[1] == "servers: s1 s2 ");
52 BOOST_TEST(result.first[2] == "channels: c1 c2 "); 52 BOOST_TEST(result.first[2] == "channels: c1 c2 ");
53 BOOST_TEST(result.first[3] == "plugins: p1 p2 "); 53 BOOST_TEST(result.first[3] == "plugins: p1 p2 ");
54 BOOST_TEST(result.first[4] == "events: onCommand onMessage "); 54 BOOST_TEST(result.first[4] == "events: onCommand onMessage ");
55 BOOST_TEST(result.first[5] == "action: drop"); 55 BOOST_TEST(result.first[5] == "action: drop");
56 BOOST_TEST(result.first[6] == "");
57 BOOST_TEST(result.first[7] == "rule: 1");
58 BOOST_TEST(result.first[8] == "servers: ts1 ts2 ");
59 BOOST_TEST(result.first[9] == "channels: tc1 tc2 ");
60 BOOST_TEST(result.first[10] == "plugins: tp1 tp2 ");
61 BOOST_TEST(result.first[11] == "events: onCommand onMessage ");
62 BOOST_TEST(result.first[12] == "action: drop");
63 } 56 }
64 } 57 }
65 58
66 BOOST_AUTO_TEST_CASE(server) 59 BOOST_AUTO_TEST_CASE(server)
67 { 60 {
68 run_irccd("irccd-rules.conf"); 61 start();
69 62
70 { 63 {
71 const auto result = run_irccdctl({ "rule-add", "-s ts1", "--add-server ts2", "drop" }); 64 const auto result = exec({ "rule-add", "-s s1", "--add-server s2", "drop" });
72 65
73 BOOST_TEST(result.first.size() == 0U); 66 BOOST_TEST(result.first.size() == 0U);
74 BOOST_TEST(result.second.size() == 0U); 67 BOOST_TEST(result.second.size() == 0U);
75 } 68 }
76 69
77 { 70 {
78 const auto result = run_irccdctl({ "rule-list" }); 71 const auto result = exec({ "rule-list" });
79 72
80 BOOST_TEST(result.first.size() == 15U); 73 BOOST_TEST(result.first.size() == 7U);
81 BOOST_TEST(result.second.size() == 0U); 74 BOOST_TEST(result.second.size() == 0U);
82 BOOST_TEST(result.first[0] == "rule: 0"); 75 BOOST_TEST(result.first[0] == "rule: 0");
83 BOOST_TEST(result.first[1] == "servers: s1 s2 "); 76 BOOST_TEST(result.first[1] == "servers: s1 s2 ");
84 BOOST_TEST(result.first[2] == "channels: c1 c2 "); 77 BOOST_TEST(result.first[2] == "channels: ");
85 BOOST_TEST(result.first[3] == "plugins: p1 p2 "); 78 BOOST_TEST(result.first[3] == "plugins: ");
86 BOOST_TEST(result.first[4] == "events: onCommand onMessage "); 79 BOOST_TEST(result.first[4] == "events: ");
87 BOOST_TEST(result.first[5] == "action: drop"); 80 BOOST_TEST(result.first[5] == "action: drop");
88 BOOST_TEST(result.first[6] == "");
89 BOOST_TEST(result.first[7] == "rule: 1");
90 BOOST_TEST(result.first[8] == "servers: ts1 ts2 ");
91 BOOST_TEST(result.first[9] == "channels: ");
92 BOOST_TEST(result.first[10] == "plugins: ");
93 BOOST_TEST(result.first[11] == "events: ");
94 BOOST_TEST(result.first[12] == "action: drop");
95 } 81 }
96 } 82 }
97 83
98 BOOST_AUTO_TEST_CASE(channel) 84 BOOST_AUTO_TEST_CASE(channel)
99 { 85 {
100 run_irccd("irccd-rules.conf"); 86 start();
101 87
102 { 88 {
103 const auto result = run_irccdctl({ "rule-add", "-c tc1", "--add-channel tc2", "drop" }); 89 const auto result = exec({ "rule-add", "-c c1", "--add-channel c2", "drop" });
104 90
105 BOOST_TEST(result.first.size() == 0U); 91 BOOST_TEST(result.first.size() == 0U);
106 BOOST_TEST(result.second.size() == 0U); 92 BOOST_TEST(result.second.size() == 0U);
107 } 93 }
108 94
109 { 95 {
110 const auto result = run_irccdctl({ "rule-list" }); 96 const auto result = exec({ "rule-list" });
111 97
112 BOOST_TEST(result.first.size() == 15U); 98 BOOST_TEST(result.first.size() == 7U);
113 BOOST_TEST(result.second.size() == 0U); 99 BOOST_TEST(result.second.size() == 0U);
114 BOOST_TEST(result.first[0] == "rule: 0"); 100 BOOST_TEST(result.first[0] == "rule: 0");
115 BOOST_TEST(result.first[1] == "servers: s1 s2 "); 101 BOOST_TEST(result.first[1] == "servers: ");
116 BOOST_TEST(result.first[2] == "channels: c1 c2 "); 102 BOOST_TEST(result.first[2] == "channels: c1 c2 ");
117 BOOST_TEST(result.first[3] == "plugins: p1 p2 "); 103 BOOST_TEST(result.first[3] == "plugins: ");
118 BOOST_TEST(result.first[4] == "events: onCommand onMessage "); 104 BOOST_TEST(result.first[4] == "events: ");
119 BOOST_TEST(result.first[5] == "action: drop"); 105 BOOST_TEST(result.first[5] == "action: drop");
120 BOOST_TEST(result.first[6] == "");
121 BOOST_TEST(result.first[7] == "rule: 1");
122 BOOST_TEST(result.first[8] == "servers: ");
123 BOOST_TEST(result.first[9] == "channels: tc1 tc2 ");
124 BOOST_TEST(result.first[10] == "plugins: ");
125 BOOST_TEST(result.first[11] == "events: ");
126 BOOST_TEST(result.first[12] == "action: drop");
127 } 106 }
128 } 107 }
129 108
130 BOOST_AUTO_TEST_CASE(plugin) 109 BOOST_AUTO_TEST_CASE(plugin)
131 { 110 {
132 run_irccd("irccd-rules.conf"); 111 start();
133 112
134 { 113 {
135 const auto result = run_irccdctl({ "rule-add", "-p tp1", "--add-plugin tp2", "drop" }); 114 const auto result = exec({ "rule-add", "-p p1", "--add-plugin p2", "drop" });
136 115
137 BOOST_TEST(result.first.size() == 0U); 116 BOOST_TEST(result.first.size() == 0U);
138 BOOST_TEST(result.second.size() == 0U); 117 BOOST_TEST(result.second.size() == 0U);
139 } 118 }
140 119
141 { 120 {
142 const auto result = run_irccdctl({ "rule-list" }); 121 const auto result = exec({ "rule-list" });
143 122
144 BOOST_TEST(result.first.size() == 15U); 123 BOOST_TEST(result.first.size() == 7U);
145 BOOST_TEST(result.second.size() == 0U); 124 BOOST_TEST(result.second.size() == 0U);
146 BOOST_TEST(result.first[0] == "rule: 0"); 125 BOOST_TEST(result.first[0] == "rule: 0");
147 BOOST_TEST(result.first[1] == "servers: s1 s2 "); 126 BOOST_TEST(result.first[1] == "servers: ");
148 BOOST_TEST(result.first[2] == "channels: c1 c2 "); 127 BOOST_TEST(result.first[2] == "channels: ");
149 BOOST_TEST(result.first[3] == "plugins: p1 p2 "); 128 BOOST_TEST(result.first[3] == "plugins: p1 p2 ");
150 BOOST_TEST(result.first[4] == "events: onCommand onMessage "); 129 BOOST_TEST(result.first[4] == "events: ");
151 BOOST_TEST(result.first[5] == "action: drop"); 130 BOOST_TEST(result.first[5] == "action: drop");
152 BOOST_TEST(result.first[6] == "");
153 BOOST_TEST(result.first[7] == "rule: 1");
154 BOOST_TEST(result.first[8] == "servers: ");
155 BOOST_TEST(result.first[9] == "channels: ");
156 BOOST_TEST(result.first[10] == "plugins: tp1 tp2 ");
157 BOOST_TEST(result.first[11] == "events: ");
158 BOOST_TEST(result.first[12] == "action: drop");
159 } 131 }
160 } 132 }
161 133
162 BOOST_AUTO_TEST_CASE(event) 134 BOOST_AUTO_TEST_CASE(event)
163 { 135 {
164 run_irccd("irccd-rules.conf"); 136 start();
165 137
166 { 138 {
167 const auto result = run_irccdctl({ "rule-add", "-e onMessage", "--add-event onCommand", "drop" }); 139 const auto result = exec({ "rule-add", "-e onMessage", "--add-event onCommand", "drop" });
168 140
169 BOOST_TEST(result.first.size() == 0U); 141 BOOST_TEST(result.first.size() == 0U);
170 BOOST_TEST(result.second.size() == 0U); 142 BOOST_TEST(result.second.size() == 0U);
171 } 143 }
172 144
173 { 145 {
174 const auto result = run_irccdctl({ "rule-list" }); 146 const auto result = exec({ "rule-list" });
175 147
176 BOOST_TEST(result.first.size() == 15U); 148 BOOST_TEST(result.first.size() == 7U);
177 BOOST_TEST(result.second.size() == 0U); 149 BOOST_TEST(result.second.size() == 0U);
178 BOOST_TEST(result.first[0] == "rule: 0"); 150 BOOST_TEST(result.first[0] == "rule: 0");
179 BOOST_TEST(result.first[1] == "servers: s1 s2 "); 151 BOOST_TEST(result.first[1] == "servers: ");
180 BOOST_TEST(result.first[2] == "channels: c1 c2 "); 152 BOOST_TEST(result.first[2] == "channels: ");
181 BOOST_TEST(result.first[3] == "plugins: p1 p2 "); 153 BOOST_TEST(result.first[3] == "plugins: ");
182 BOOST_TEST(result.first[4] == "events: onCommand onMessage "); 154 BOOST_TEST(result.first[4] == "events: onCommand onMessage ");
183 BOOST_TEST(result.first[5] == "action: drop"); 155 BOOST_TEST(result.first[5] == "action: drop");
184 BOOST_TEST(result.first[6] == "");
185 BOOST_TEST(result.first[7] == "rule: 1");
186 BOOST_TEST(result.first[8] == "servers: ");
187 BOOST_TEST(result.first[9] == "channels: ");
188 BOOST_TEST(result.first[10] == "plugins: ");
189 BOOST_TEST(result.first[11] == "events: onCommand onMessage ");
190 BOOST_TEST(result.first[12] == "action: drop");
191 } 156 }
192 } 157 }
193 158
194 BOOST_AUTO_TEST_SUITE_END() 159 BOOST_AUTO_TEST_SUITE_END()
195 160