@@ -167,25 +167,19 bool QBarSeries::removeBarSets(QList<QBarSet* > sets) | |||||
167 | { |
|
167 | { | |
168 | Q_D(QBarSeries); |
|
168 | Q_D(QBarSeries); | |
169 |
|
169 | |||
170 | foreach (QBarSet* set, sets) { |
|
170 | bool setsRemoved = false; | |
171 | if ((set == 0) || (!d->m_barSets.contains(set))) { |
|
|||
172 | // Fail if any of the sets is null or isn't in m_barSets |
|
|||
173 | return false; |
|
|||
174 | } |
|
|||
175 | if (sets.count(set) != 1) { |
|
|||
176 | // Also fail if same set is more than once in given list. |
|
|||
177 | return false; |
|
|||
178 | } |
|
|||
179 | } |
|
|||
180 |
|
||||
181 | foreach (QBarSet* set, sets) { |
|
171 | foreach (QBarSet* set, sets) { | |
182 | if (d->m_barSets.contains(set)) { |
|
172 | if (d->m_barSets.contains(set)) { | |
183 | d->m_barSets.removeOne(set); |
|
173 | d->m_barSets.removeOne(set); | |
184 | QObject::disconnect(set->d_ptr.data(), SIGNAL(updatedBars()), d, SLOT(barsetChanged())); |
|
174 | QObject::disconnect(set->d_ptr.data(), SIGNAL(updatedBars()), d, SLOT(barsetChanged())); | |
|
175 | setsRemoved = true; | |||
185 | } |
|
176 | } | |
186 | } |
|
177 | } | |
|
178 | ||||
|
179 | if (setsRemoved) { | |||
187 | emit d->restructuredBars(); |
|
180 | emit d->restructuredBars(); | |
188 | return true; |
|
181 | } | |
|
182 | return setsRemoved; | |||
189 | } |
|
183 | } | |
190 |
|
184 | |||
191 | /*! |
|
185 | /*! |
@@ -167,15 +167,32 void tst_QBarSeries::appendBarSet() | |||||
167 | { |
|
167 | { | |
168 | QVERIFY(m_barseries->barsetCount() == 0); |
|
168 | QVERIFY(m_barseries->barsetCount() == 0); | |
169 |
|
169 | |||
|
170 | bool ret = false; | |||
|
171 | ||||
|
172 | // Try adding barset | |||
170 | QBarSet *barset = new QBarSet("testset"); |
|
173 | QBarSet *barset = new QBarSet("testset"); | |
171 | m_barseries->appendBarSet(barset); |
|
174 | ret = m_barseries->appendBarSet(barset); | |
172 |
|
175 | |||
|
176 | QVERIFY(ret == true); | |||
173 | QVERIFY(m_barseries->barsetCount() == 1); |
|
177 | QVERIFY(m_barseries->barsetCount() == 1); | |
174 |
|
178 | |||
|
179 | // Try adding another set | |||
175 | QBarSet *barset2 = new QBarSet("testset2"); |
|
180 | QBarSet *barset2 = new QBarSet("testset2"); | |
176 | m_barseries->appendBarSet(barset2); |
|
181 | ret = m_barseries->appendBarSet(barset2); | |
|
182 | ||||
|
183 | QVERIFY(ret == true); | |||
|
184 | QVERIFY(m_barseries->barsetCount() == 2); | |||
177 |
|
185 | |||
|
186 | // Try adding same set again | |||
|
187 | ret = m_barseries->appendBarSet(barset2); | |||
|
188 | QVERIFY(ret == false); | |||
178 | QVERIFY(m_barseries->barsetCount() == 2); |
|
189 | QVERIFY(m_barseries->barsetCount() == 2); | |
|
190 | ||||
|
191 | // Try adding null set | |||
|
192 | ret = m_barseries->appendBarSet(0); | |||
|
193 | QVERIFY(ret == false); | |||
|
194 | QVERIFY(m_barseries->barsetCount() == 2); | |||
|
195 | ||||
179 | } |
|
196 | } | |
180 |
|
197 | |||
181 | void tst_QBarSeries::removeBarSet_data() |
|
198 | void tst_QBarSeries::removeBarSet_data() | |
@@ -187,10 +204,24 void tst_QBarSeries::removeBarSet() | |||||
187 | int count = m_testSets.count(); |
|
204 | int count = m_testSets.count(); | |
188 | QVERIFY(m_barseries_with_sets->barsetCount() == count); |
|
205 | QVERIFY(m_barseries_with_sets->barsetCount() == count); | |
189 |
|
206 | |||
|
207 | // Try to remove null pointer (should not remove, should not crash) | |||
|
208 | bool ret = false; | |||
|
209 | ret = m_barseries_with_sets->removeBarSet(0); | |||
|
210 | QVERIFY(ret == false); | |||
|
211 | QVERIFY(m_barseries_with_sets->barsetCount() == count); | |||
|
212 | ||||
|
213 | // Try to remove invalid pointer (should not remove, should not crash) | |||
|
214 | ret = m_barseries_with_sets->removeBarSet((QBarSet*) (m_testSets.at(0) + 1) ); | |||
|
215 | QVERIFY(ret == false); | |||
|
216 | QVERIFY(m_barseries_with_sets->barsetCount() == count); | |||
|
217 | ||||
190 | // remove some sets |
|
218 | // remove some sets | |
191 | m_barseries_with_sets->removeBarSet(m_testSets.at(2)); |
|
219 | ret = m_barseries_with_sets->removeBarSet(m_testSets.at(2)); | |
192 | m_barseries_with_sets->removeBarSet(m_testSets.at(3)); |
|
220 | QVERIFY(ret == true); | |
193 |
m_barseries_with_sets->removeBarSet(m_testSets.at( |
|
221 | ret = m_barseries_with_sets->removeBarSet(m_testSets.at(3)); | |
|
222 | QVERIFY(ret == true); | |||
|
223 | ret = m_barseries_with_sets->removeBarSet(m_testSets.at(4)); | |||
|
224 | QVERIFY(ret == true); | |||
194 |
|
225 | |||
195 | QVERIFY(m_barseries_with_sets->barsetCount() == 2); |
|
226 | QVERIFY(m_barseries_with_sets->barsetCount() == 2); | |
196 |
|
227 | |||
@@ -199,11 +230,13 void tst_QBarSeries::removeBarSet() | |||||
199 | QVERIFY(verifysets.at(0) == m_testSets.at(0)); |
|
230 | QVERIFY(verifysets.at(0) == m_testSets.at(0)); | |
200 | QVERIFY(verifysets.at(1) == m_testSets.at(1)); |
|
231 | QVERIFY(verifysets.at(1) == m_testSets.at(1)); | |
201 |
|
232 | |||
202 | // Try removing all sets again |
|
233 | // Try removing all sets again (should be ok, even if some sets have already been removed) | |
|
234 | ret = false; | |||
203 | for (int i=0; i<count; i++) { |
|
235 | for (int i=0; i<count; i++) { | |
204 | m_barseries_with_sets->removeBarSet(m_testSets.at(i)); |
|
236 | ret |= m_barseries_with_sets->removeBarSet(m_testSets.at(i)); | |
205 | } |
|
237 | } | |
206 |
|
238 | |||
|
239 | QVERIFY(ret == true); | |||
207 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); |
|
240 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); | |
208 | } |
|
241 | } | |
209 |
|
242 | |||
@@ -222,7 +255,37 void tst_QBarSeries::appendBarSets() | |||||
222 | sets.append(new QBarSet("testset")); |
|
255 | sets.append(new QBarSet("testset")); | |
223 | } |
|
256 | } | |
224 |
|
257 | |||
225 | m_barseries->appendBarSets(sets); |
|
258 | // Append new sets (should succeed, count should match the count of sets) | |
|
259 | bool ret = false; | |||
|
260 | ret = m_barseries->appendBarSets(sets); | |||
|
261 | QVERIFY(ret == true); | |||
|
262 | QVERIFY(m_barseries->barsetCount() == count); | |||
|
263 | ||||
|
264 | // Append same sets again (should fail, count should remain same) | |||
|
265 | ret = m_barseries->appendBarSets(sets); | |||
|
266 | QVERIFY(ret == false); | |||
|
267 | QVERIFY(m_barseries->barsetCount() == count); | |||
|
268 | ||||
|
269 | // Try append empty list (should succeed, but count should remain same) | |||
|
270 | QList<QBarSet*> invalidList; | |||
|
271 | ret = m_barseries->appendBarSets(invalidList); | |||
|
272 | QVERIFY(ret == true); | |||
|
273 | QVERIFY(m_barseries->barsetCount() == count); | |||
|
274 | ||||
|
275 | // Try append list with one new and one existing set (should fail, count remains same) | |||
|
276 | invalidList.append(new QBarSet("ok set")); | |||
|
277 | invalidList.append(sets.at(0)); | |||
|
278 | ret = m_barseries->appendBarSets(invalidList); | |||
|
279 | QVERIFY(ret == false); | |||
|
280 | QVERIFY(m_barseries->barsetCount() == count); | |||
|
281 | ||||
|
282 | // Try append list with null pointers (should fail, count remains same) | |||
|
283 | QList<QBarSet*> invalidList2; | |||
|
284 | invalidList2.append(0); | |||
|
285 | invalidList2.append(0); | |||
|
286 | invalidList2.append(0); | |||
|
287 | ret = m_barseries->appendBarSets(invalidList2); | |||
|
288 | QVERIFY(ret == false); | |||
226 | QVERIFY(m_barseries->barsetCount() == count); |
|
289 | QVERIFY(m_barseries->barsetCount() == count); | |
227 | } |
|
290 | } | |
228 |
|
291 | |||
@@ -236,21 +299,36 void tst_QBarSeries::removeBarSets() | |||||
236 | int count = m_testSets.count(); |
|
299 | int count = m_testSets.count(); | |
237 | QVERIFY(m_barseries_with_sets->barsetCount() == count); |
|
300 | QVERIFY(m_barseries_with_sets->barsetCount() == count); | |
238 |
|
301 | |||
239 | // Try removing empty list of sets |
|
302 | // Try removing empty list of sets (should return false, since no barsets were removed) | |
240 | QList<QBarSet*> empty; |
|
303 | bool ret = false; | |
241 | m_barseries_with_sets->removeBarSets(empty); |
|
304 | QList<QBarSet*> invalidList; | |
|
305 | ret = m_barseries_with_sets->removeBarSets(invalidList); | |||
|
306 | QVERIFY(ret == false); | |||
|
307 | QVERIFY(m_barseries_with_sets->barsetCount() == count); | |||
|
308 | ||||
|
309 | // Add some null pointers to list | |||
|
310 | invalidList.append(0); | |||
|
311 | invalidList.append(0); | |||
|
312 | invalidList.append(0); | |||
|
313 | ||||
|
314 | // Try removing null pointers from list (should return false, should not crash, should not remove anything) | |||
|
315 | ret = m_barseries_with_sets->removeBarSets(invalidList); | |||
|
316 | QVERIFY(ret == false); | |||
242 | QVERIFY(m_barseries_with_sets->barsetCount() == count); |
|
317 | QVERIFY(m_barseries_with_sets->barsetCount() == count); | |
243 |
|
318 | |||
244 | // remove all sets |
|
319 | // remove all sets (should return true, since sets were removed) | |
245 | m_barseries_with_sets->removeBarSets(m_testSets); |
|
320 | ret = m_barseries_with_sets->removeBarSets(m_testSets); | |
|
321 | QVERIFY(ret == true); | |||
246 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); |
|
322 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); | |
247 |
|
323 | |||
248 | // Try removing empty list again |
|
324 | // Try removing invalid list again (should return false, since no barsets were removed) | |
249 |
m_barseries_with_sets->removeBarSets( |
|
325 | ret = m_barseries_with_sets->removeBarSets(invalidList); | |
|
326 | QVERIFY(ret == false); | |||
250 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); |
|
327 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); | |
251 |
|
328 | |||
252 | // remove all sets again |
|
329 | // remove all sets again (should return false, since barsets were already removed) | |
253 | m_barseries_with_sets->removeBarSets(m_testSets); |
|
330 | ret = m_barseries_with_sets->removeBarSets(m_testSets); | |
|
331 | QVERIFY(ret == false); | |||
254 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); |
|
332 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); | |
255 | } |
|
333 | } | |
256 |
|
334 |
General Comments 0
You need to be logged in to leave comments.
Login now