24 void TestJson::QMJsonArray_create(
void)
26 auto list1 = QList<QMPointer<QMJsonValue> >();
27 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
28 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(4));
29 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(8));
30 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(15));
32 list1 << value1 << value2 << value3;
33 array1->append(value1);
34 array1->append(value2);
35 array1->append(value3);
37 auto array2 = QMPointer<QMJsonArray>(
new QMJsonArray(list1));
39 QVERIFY(array1->toDouble(0) == array2->toDouble(0));
40 QVERIFY(array1->toDouble(1) == array2->toDouble(1));
41 QVERIFY(array1->toDouble(2) == array2->toDouble(2));
44 void TestJson::QMJsonArray_prepend(
void)
46 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue());
47 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
48 auto array2 = QMPointer<QMJsonArray>(
new QMJsonArray());
49 auto object1 = QMPointer<QMJsonObject>(
new QMJsonObject());
55 QVERIFY(array1->front().isNull() ==
false);
56 QVERIFY(array1->front()->isNull() ==
true);
58 array1->prepend(QMPointer<QMJsonValue>());
59 QVERIFY(array1->front().isNull() ==
false);
60 QVERIFY(array1->front()->isNull() ==
true);
62 array1->prepend(value1);
63 QVERIFY(array1->front().isNull() ==
false);
64 QVERIFY(array1->front()->isNull() ==
true);
66 array1->prepend(rawValue1);
67 QVERIFY(array1->front().isNull() ==
false);
68 QVERIFY(array1->front()->isNull() ==
true);
71 QVERIFY(array1->front().isNull() ==
false);
72 QVERIFY(array1->front()->isArray() ==
true);
74 array1->prepend(QMPointer<QMJsonArray>());
75 QVERIFY(array1->front().isNull() ==
false);
76 QVERIFY(array1->front()->isArray() ==
true);
78 array1->prepend(array2);
79 QVERIFY(array1->front().isNull() ==
false);
80 QVERIFY(array1->front()->isArray() ==
true);
82 array1->prepend(rawArray1);
83 QVERIFY(array1->front().isNull() ==
false);
84 QVERIFY(array1->front()->isArray() ==
true);
87 QVERIFY(array1->front().isNull() ==
false);
88 QVERIFY(array1->front()->isObject() ==
true);
90 array1->prepend(QMPointer<QMJsonObject>());
91 QVERIFY(array1->front().isNull() ==
false);
92 QVERIFY(array1->front()->isObject() ==
true);
94 array1->prepend(object1);
95 QVERIFY(array1->front().isNull() ==
false);
96 QVERIFY(array1->front()->isObject() ==
true);
98 array1->prepend(rawObject1);
99 QVERIFY(array1->front().isNull() ==
false);
100 QVERIFY(array1->front()->isObject() ==
true);
102 array1->prepend(QMPointer<QMJsonValue>());
103 QVERIFY(array1->front().isNull() ==
false);
104 QVERIFY(array1->front()->isNull() ==
true);
106 array1->prepend(4.8);
107 QVERIFY(array1->front().isNull() ==
false);
108 QVERIFY(array1->front()->isDouble() ==
true);
110 array1->prepend(
"Hello World");
111 QVERIFY(array1->front().isNull() ==
false);
112 QVERIFY(array1->front()->isString() ==
true);
114 array1->prepend(QString(
"Hello World"));
115 QVERIFY(array1->front().isNull() ==
false);
116 QVERIFY(array1->front()->isString() ==
true);
119 QVERIFY(array1->front().isNull() ==
false);
120 QVERIFY(array1->front()->isDouble() ==
true);
123 QVERIFY(array1->front().isNull() ==
false);
124 QVERIFY(array1->front()->isString() ==
true);
126 array1->prepend(
new QMJsonValue(QString(
"Hello World")));
127 QVERIFY(array1->front().isNull() ==
false);
128 QVERIFY(array1->front()->isString() ==
true);
130 array1->prepend(QMPointer<QMJsonValue>(
new QMJsonValue(4.8)));
131 QVERIFY(array1->front().isNull() ==
false);
132 QVERIFY(array1->front()->isDouble() ==
true);
134 array1->prepend(QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World")));
135 QVERIFY(array1->front().isNull() ==
false);
136 QVERIFY(array1->front()->isString() ==
true);
138 array1->prepend(QMPointer<QMJsonValue>(
new QMJsonValue(QString(
"Hello World"))));
139 QVERIFY(array1->front().isNull() ==
false);
140 QVERIFY(array1->front()->isString() ==
true);
143 void TestJson::QMJsonArray_append(
void)
145 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue());
146 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
147 auto array2 = QMPointer<QMJsonArray>(
new QMJsonArray());
148 auto object1 = QMPointer<QMJsonObject>(
new QMJsonObject());
154 QVERIFY(array1->back().isNull() ==
false);
155 QVERIFY(array1->back()->isNull() ==
true);
157 array1->append(QMPointer<QMJsonValue>());
158 QVERIFY(array1->back().isNull() ==
false);
159 QVERIFY(array1->back()->isNull() ==
true);
161 array1->append(value1);
162 QVERIFY(array1->back().isNull() ==
false);
163 QVERIFY(array1->back()->isNull() ==
true);
165 array1->append(rawValue1);
166 QVERIFY(array1->back().isNull() ==
false);
167 QVERIFY(array1->back()->isNull() ==
true);
170 QVERIFY(array1->back().isNull() ==
false);
171 QVERIFY(array1->back()->isArray() ==
true);
173 array1->append(QMPointer<QMJsonArray>());
174 QVERIFY(array1->back().isNull() ==
false);
175 QVERIFY(array1->back()->isArray() ==
true);
177 array1->append(array2);
178 QVERIFY(array1->back().isNull() ==
false);
179 QVERIFY(array1->back()->isArray() ==
true);
181 array1->append(rawArray1);
182 QVERIFY(array1->back().isNull() ==
false);
183 QVERIFY(array1->back()->isArray() ==
true);
186 QVERIFY(array1->back().isNull() ==
false);
187 QVERIFY(array1->back()->isObject() ==
true);
189 array1->append(QMPointer<QMJsonObject>());
190 QVERIFY(array1->back().isNull() ==
false);
191 QVERIFY(array1->back()->isObject() ==
true);
193 array1->append(object1);
194 QVERIFY(array1->back().isNull() ==
false);
195 QVERIFY(array1->back()->isObject() ==
true);
197 array1->append(rawObject1);
198 QVERIFY(array1->back().isNull() ==
false);
199 QVERIFY(array1->back()->isObject() ==
true);
201 array1->append(QMPointer<QMJsonValue>());
202 QVERIFY(array1->back().isNull() ==
false);
203 QVERIFY(array1->back()->isNull() ==
true);
206 QVERIFY(array1->back().isNull() ==
false);
207 QVERIFY(array1->back()->isDouble() ==
true);
209 array1->append(
"Hello World");
210 QVERIFY(array1->back().isNull() ==
false);
211 QVERIFY(array1->back()->isString() ==
true);
213 array1->append(QString(
"Hello World"));
214 QVERIFY(array1->back().isNull() ==
false);
215 QVERIFY(array1->back()->isString() ==
true);
218 QVERIFY(array1->back().isNull() ==
false);
219 QVERIFY(array1->back()->isDouble() ==
true);
222 QVERIFY(array1->back().isNull() ==
false);
223 QVERIFY(array1->back()->isString() ==
true);
225 array1->append(
new QMJsonValue(QString(
"Hello World")));
226 QVERIFY(array1->back().isNull() ==
false);
227 QVERIFY(array1->back()->isString() ==
true);
229 array1->append(QMPointer<QMJsonValue>(
new QMJsonValue(4.8)));
230 QVERIFY(array1->back().isNull() ==
false);
231 QVERIFY(array1->back()->isDouble() ==
true);
233 array1->append(QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World")));
234 QVERIFY(array1->back().isNull() ==
false);
235 QVERIFY(array1->back()->isString() ==
true);
237 array1->append(QMPointer<QMJsonValue>(
new QMJsonValue(QString(
"Hello World"))));
238 QVERIFY(array1->back().isNull() ==
false);
239 QVERIFY(array1->back()->isString() ==
true);
242 void TestJson::QMJsonArray_insert(
void)
244 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue());
245 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
246 auto array2 = QMPointer<QMJsonArray>(
new QMJsonArray());
247 auto object1 = QMPointer<QMJsonObject>(
new QMJsonObject());
253 QVERIFY(array1->front().isNull() ==
false);
254 QVERIFY(array1->front()->isNull() ==
true);
256 array1->insert(0, QMPointer<QMJsonValue>());
257 QVERIFY(array1->front().isNull() ==
false);
258 QVERIFY(array1->front()->isNull() ==
true);
260 array1->insert(0, value1);
261 QVERIFY(array1->front().isNull() ==
false);
262 QVERIFY(array1->front()->isNull() ==
true);
264 array1->insert(0, rawValue1);
265 QVERIFY(array1->front().isNull() ==
false);
266 QVERIFY(array1->front()->isNull() ==
true);
269 QVERIFY(array1->front().isNull() ==
false);
270 QVERIFY(array1->front()->isArray() ==
true);
272 array1->insert(0, QMPointer<QMJsonArray>());
273 QVERIFY(array1->front().isNull() ==
false);
274 QVERIFY(array1->front()->isArray() ==
true);
276 array1->insert(0, array2);
277 QVERIFY(array1->front().isNull() ==
false);
278 QVERIFY(array1->front()->isArray() ==
true);
280 array1->insert(0, rawArray1);
281 QVERIFY(array1->front().isNull() ==
false);
282 QVERIFY(array1->front()->isArray() ==
true);
285 QVERIFY(array1->front().isNull() ==
false);
286 QVERIFY(array1->front()->isObject() ==
true);
288 array1->insert(0, QMPointer<QMJsonObject>());
289 QVERIFY(array1->front().isNull() ==
false);
290 QVERIFY(array1->front()->isObject() ==
true);
292 array1->insert(0, object1);
293 QVERIFY(array1->front().isNull() ==
false);
294 QVERIFY(array1->front()->isObject() ==
true);
296 array1->insert(0, rawObject1);
297 QVERIFY(array1->front().isNull() ==
false);
298 QVERIFY(array1->front()->isObject() ==
true);
300 array1->insert(0, QMPointer<QMJsonValue>());
301 QVERIFY(array1->front().isNull() ==
false);
302 QVERIFY(array1->front()->isNull() ==
true);
304 array1->insert(0, 4.8);
305 QVERIFY(array1->front().isNull() ==
false);
306 QVERIFY(array1->front()->isDouble() ==
true);
308 array1->insert(0,
"Hello World");
309 QVERIFY(array1->front().isNull() ==
false);
310 QVERIFY(array1->front()->isString() ==
true);
312 array1->insert(0, QString(
"Hello World"));
313 QVERIFY(array1->front().isNull() ==
false);
314 QVERIFY(array1->front()->isString() ==
true);
317 QVERIFY(array1->front().isNull() ==
false);
318 QVERIFY(array1->front()->isDouble() ==
true);
321 QVERIFY(array1->front().isNull() ==
false);
322 QVERIFY(array1->front()->isString() ==
true);
324 array1->insert(0,
new QMJsonValue(QString(
"Hello World")));
325 QVERIFY(array1->front().isNull() ==
false);
326 QVERIFY(array1->front()->isString() ==
true);
328 array1->insert(0, QMPointer<QMJsonValue>(
new QMJsonValue(4.8)));
329 QVERIFY(array1->front().isNull() ==
false);
330 QVERIFY(array1->front()->isDouble() ==
true);
332 array1->insert(0, QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World")));
333 QVERIFY(array1->front().isNull() ==
false);
334 QVERIFY(array1->front()->isString() ==
true);
336 array1->insert(0, QMPointer<QMJsonValue>(
new QMJsonValue(QString(
"Hello World"))));
337 QVERIFY(array1->front().isNull() ==
false);
338 QVERIFY(array1->front()->isString() ==
true);
341 void TestJson::QMJsonArray_indexOf(
void)
343 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
344 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
345 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
346 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
349 auto value6 = QMPointer<QMJsonValue>(
new QMJsonValue(15.16));
350 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
352 array1->append(value0);
353 array1->append(value1);
354 array1->append(value2);
355 array1->append(value3);
356 array1->append(value4);
357 array1->append(value5);
358 array1->append(value5);
359 array1->append(value5);
361 QVERIFY(array1->indexOf(value0) == 0);
362 QVERIFY(array1->indexOf(value1) == 1);
363 QVERIFY(array1->indexOf(value2) == 2);
364 QVERIFY(array1->indexOf(value3) == 3);
365 QVERIFY(array1->indexOf(value4) == 4);
366 QVERIFY(array1->indexOf(value5) == 5);
367 QVERIFY(array1->indexOf(value6) == -1);
370 void TestJson::QMJsonArray_lastIndexOf(
void)
372 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
373 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
374 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
375 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
378 auto value6 = QMPointer<QMJsonValue>(
new QMJsonValue(15.16));
379 auto value7 = QMPointer<QMJsonValue>(
new QMJsonValue(QRect()));
380 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
382 array1->append(value0);
383 array1->append(value1);
384 array1->append(value2);
385 array1->append(value3);
386 array1->append(value4);
387 array1->append(value5);
388 array1->append(value5);
389 array1->append(value5);
391 QVERIFY(array1->lastIndexOf(value0) == 0);
392 QVERIFY(array1->lastIndexOf(value1) == 1);
393 QVERIFY(array1->lastIndexOf(value2) == 2);
394 QVERIFY(array1->lastIndexOf(value3) == 3);
395 QVERIFY(array1->lastIndexOf(value4) == 4);
396 QVERIFY(array1->lastIndexOf(value5) == 7);
397 QVERIFY(array1->lastIndexOf(value6) == -1);
398 QVERIFY(array1->lastIndexOf(value0, -1) == 0);
399 QVERIFY(array1->lastIndexOf(value1, -1) == 1);
400 QVERIFY(array1->lastIndexOf(value2, -1) == 2);
401 QVERIFY(array1->lastIndexOf(value3, -1) == 3);
402 QVERIFY(array1->lastIndexOf(value4, -1) == 4);
403 QVERIFY(array1->lastIndexOf(value5, -1) == 7);
404 QVERIFY(array1->lastIndexOf(value6, -1) == -1);
405 QVERIFY(array1->lastIndexOf(value5, 7) == 7);
406 QVERIFY(array1->lastIndexOf(value5, 6) == 6);
407 QVERIFY(array1->lastIndexOf(value5, 5) == 5);
408 QVERIFY(array1->lastIndexOf(value5, 4) == -1);
410 QVERIFY(array1->lastIndexOf(value1, -2) == 1);
411 QVERIFY(array1->lastIndexOf(value1, 100) == 1);
414 void TestJson::QMJsonArray_contains(
void)
416 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
417 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
418 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
419 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
422 auto value6 = QMPointer<QMJsonValue>(
new QMJsonValue(15.16));
423 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
425 array1->append(value0);
426 array1->append(value1);
427 array1->append(value2);
428 array1->append(value3);
429 array1->append(value4);
430 array1->append(value5);
431 array1->append(value5);
432 array1->append(value5);
434 QVERIFY(array1->contains(value0) ==
true);
435 QVERIFY(array1->contains(value1) ==
true);
436 QVERIFY(array1->contains(value2) ==
true);
437 QVERIFY(array1->contains(value3) ==
true);
438 QVERIFY(array1->contains(value4) ==
true);
439 QVERIFY(array1->contains(value5) ==
true);
440 QVERIFY(array1->contains(value6) ==
false);
443 void TestJson::QMJsonArray_unite(
void)
445 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
446 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
447 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
448 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
449 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
450 auto array2 = QMPointer<QMJsonArray>(
new QMJsonArray());
451 auto array3 = QMPointer<QMJsonArray>(
new QMJsonArray());
452 auto array4 = QMPointer<QMJsonArray>(
new QMJsonArray());
454 array1->append(value0);
455 array1->append(value1);
456 array2->append(value2);
457 array2->append(value3);
465 QVERIFY(array3->value(0)->isDouble() ==
true);
466 QVERIFY(array3->value(1)->isString() ==
true);
467 QVERIFY(array3->value(2)->isBool() ==
true);
468 QVERIFY(array3->value(3)->isNull() ==
true);
470 QVERIFY(array4->value(0)->isNull() ==
true);
471 QVERIFY(array4->value(1)->isBool() ==
true);
472 QVERIFY(array4->value(2)->isString() ==
true);
473 QVERIFY(array4->value(3)->isDouble() ==
true);
476 void TestJson::QMJsonArray_count(
void)
478 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
479 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
480 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
481 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
482 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
484 QVERIFY(array1->count() == 0);
485 QVERIFY(array1->length() == 0);
486 QVERIFY(array1->size() == 0);
488 array1->append(value0);
489 QVERIFY(array1->count() == 1);
490 QVERIFY(array1->length() == 1);
491 QVERIFY(array1->size() == 1);
493 array1->append(value1);
494 QVERIFY(array1->count() == 2);
495 QVERIFY(array1->length() == 2);
496 QVERIFY(array1->size() == 2);
498 array1->append(value2);
499 QVERIFY(array1->count() == 3);
500 QVERIFY(array1->length() == 3);
501 QVERIFY(array1->size() == 3);
503 array1->append(value3);
504 QVERIFY(array1->count() == 4);
505 QVERIFY(array1->length() == 4);
506 QVERIFY(array1->size() == 4);
509 QVERIFY(array1->count() == 0);
510 QVERIFY(array1->length() == 0);
511 QVERIFY(array1->size() == 0);
514 void TestJson::QMJsonArray_clear(
void)
516 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
517 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
518 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
519 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
520 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
521 auto array2 = QMPointer<QMJsonArray>(
new QMJsonArray());
522 auto object1 = QMPointer<QMJsonObject>(
new QMJsonObject());
523 auto document1 = QMPointer<QMJsonValue>(
new QMJsonValue(array1));
524 auto document2 = QMPointer<QMJsonValue>(
new QMJsonValue(array2));
525 auto document3 = QMPointer<QMJsonValue>(
new QMJsonValue(object1));
527 array1->append(value0);
528 array1->append(value1);
529 object1->insert(
"key2", value2);
530 object1->insert(
"key3", value3);
531 array2->append(array1);
532 array2->append(object1);
536 QVERIFY(document1->toJson() ==
"[]");
537 QVERIFY(document2->toJson() ==
"[]");
538 QVERIFY(document3->toJson() ==
"{}");
541 void TestJson::QMJsonArray_empty(
void)
543 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
544 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
545 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
546 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
547 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
549 QVERIFY(array1->isEmpty() ==
true);
550 QVERIFY(array1->empty() ==
true);
552 array1->append(value0);
553 array1->append(value1);
554 array1->append(value2);
555 array1->append(value3);
557 QVERIFY(array1->isEmpty() ==
false);
558 QVERIFY(array1->empty() ==
false);
562 QVERIFY(array1->isEmpty() ==
true);
563 QVERIFY(array1->empty() ==
true);
566 void TestJson::QMJsonArray_with(
void)
568 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
569 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
570 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
571 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
572 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
574 QVERIFY(array1->startsWith(value0) ==
false);
575 QVERIFY(array1->endsWith(value3) ==
false);
577 array1->append(value0);
578 array1->append(value1);
579 array1->append(value2);
580 array1->append(value3);
582 QVERIFY(array1->startsWith(value0) ==
true);
583 QVERIFY(array1->endsWith(value3) ==
true);
587 QVERIFY(array1->startsWith(value0) ==
false);
588 QVERIFY(array1->endsWith(value3) ==
false);
591 void TestJson::QMJsonArray_remove(
void)
593 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
594 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
595 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
596 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
599 auto value6 = QMPointer<QMJsonValue>(
new QMJsonValue(15.16));
600 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
602 array1->append(value0);
603 array1->append(value1);
604 array1->append(value2);
605 array1->append(value3);
606 array1->append(value4);
607 array1->append(value5);
608 array1->append(value5);
609 array1->append(value5);
611 array1->removeAll(value6);
612 QVERIFY(array1->count() == 8);
613 QVERIFY(array1->contains(value6) ==
false);
615 array1->removeAll(value0);
616 QVERIFY(array1->count() == 7);
617 QVERIFY(array1->contains(value0) ==
false);
619 array1->removeAll(value1);
620 QVERIFY(array1->count() == 6);
621 QVERIFY(array1->contains(value1) ==
false);
623 array1->removeAll(value2);
624 QVERIFY(array1->count() == 5);
625 QVERIFY(array1->contains(value2) ==
false);
627 array1->removeAll(value3);
628 QVERIFY(array1->count() == 4);
629 QVERIFY(array1->contains(value3) ==
false);
631 array1->removeAll(value4);
632 QVERIFY(array1->count() == 3);
633 QVERIFY(array1->contains(value4) ==
false);
635 array1->removeAll(value5);
636 QVERIFY(array1->count() == 0);
637 QVERIFY(array1->contains(value5) ==
false);
639 array1->removeAll(QMPointer<QMJsonValue>());
640 QVERIFY(array1->count() == 0);
642 array1->append(value0);
643 array1->append(value1);
644 array1->append(value2);
645 array1->append(value3);
646 array1->append(value4);
647 array1->append(value5);
648 array1->append(value5);
649 array1->append(value5);
651 array1->removeOne(value6);
652 QVERIFY(array1->count() == 8);
653 QVERIFY(array1->contains(value6) ==
false);
655 array1->removeOne(value0);
656 QVERIFY(array1->count() == 7);
657 QVERIFY(array1->contains(value0) ==
false);
659 array1->removeOne(value1);
660 QVERIFY(array1->count() == 6);
661 QVERIFY(array1->contains(value1) ==
false);
663 array1->removeOne(value2);
664 QVERIFY(array1->count() == 5);
665 QVERIFY(array1->contains(value2) ==
false);
667 array1->removeOne(value3);
668 QVERIFY(array1->count() == 4);
669 QVERIFY(array1->contains(value3) ==
false);
671 array1->removeOne(value4);
672 QVERIFY(array1->count() == 3);
673 QVERIFY(array1->contains(value4) ==
false);
675 array1->removeOne(value5);
676 QVERIFY(array1->count() == 2);
677 QVERIFY(array1->contains(value5) ==
true);
679 array1->removeOne(value5);
680 QVERIFY(array1->count() == 1);
681 QVERIFY(array1->contains(value5) ==
true);
683 array1->removeOne(value5);
684 QVERIFY(array1->count() == 0);
685 QVERIFY(array1->contains(value5) ==
false);
687 array1->removeOne(QMPointer<QMJsonValue>());
688 QVERIFY(array1->count() == 0);
690 array1->append(value0);
691 array1->append(value1);
692 array1->append(value2);
693 array1->append(value3);
694 array1->append(value4);
695 array1->append(value5);
696 array1->append(value5);
697 array1->append(value5);
700 QVERIFY(array1->count() == 7);
701 QVERIFY(array1->contains(value1) ==
false);
704 QVERIFY(array1->count() == 6);
705 QVERIFY(array1->contains(value2) ==
false);
708 QVERIFY(array1->count() == 5);
709 QVERIFY(array1->contains(value3) ==
false);
712 QVERIFY(array1->count() == 4);
713 QVERIFY(array1->contains(value4) ==
false);
716 QVERIFY(array1->count() == 3);
717 QVERIFY(array1->contains(value5) ==
true);
720 QVERIFY(array1->count() == 2);
721 QVERIFY(array1->contains(value5) ==
true);
724 QVERIFY(array1->count() == 1);
725 QVERIFY(array1->contains(value5) ==
false);
728 QVERIFY(array1->count() == 0);
729 QVERIFY(array1->contains(value0) ==
false);
731 array1->removeAt(-1);
733 array1->removeAt(100);
734 QVERIFY(array1->count() == 0);
736 array1->append(value0);
737 array1->append(value1);
738 array1->append(value2);
739 array1->append(value3);
740 array1->append(value4);
741 array1->append(value5);
742 array1->append(value5);
743 array1->append(value5);
745 array1->removeFirst();
746 QVERIFY(array1->count() == 7);
747 QVERIFY(array1->contains(value0) ==
false);
749 array1->removeFirst();
750 QVERIFY(array1->count() == 6);
751 QVERIFY(array1->contains(value1) ==
false);
753 array1->removeFirst();
754 QVERIFY(array1->count() == 5);
755 QVERIFY(array1->contains(value2) ==
false);
757 array1->removeFirst();
758 QVERIFY(array1->count() == 4);
759 QVERIFY(array1->contains(value3) ==
false);
761 array1->removeFirst();
762 QVERIFY(array1->count() == 3);
763 QVERIFY(array1->contains(value4) ==
false);
765 array1->removeFirst();
766 QVERIFY(array1->count() == 2);
767 QVERIFY(array1->contains(value5) ==
true);
769 array1->removeFirst();
770 QVERIFY(array1->count() == 1);
771 QVERIFY(array1->contains(value5) ==
true);
773 array1->removeFirst();
774 QVERIFY(array1->count() == 0);
775 QVERIFY(array1->contains(value5) ==
false);
777 array1->removeFirst();
778 QVERIFY(array1->count() == 0);
780 array1->append(value0);
781 array1->append(value1);
782 array1->append(value2);
783 array1->append(value3);
784 array1->append(value4);
785 array1->append(value5);
786 array1->append(value5);
787 array1->append(value5);
789 array1->removeLast();
790 QVERIFY(array1->count() == 7);
791 QVERIFY(array1->contains(value5) ==
true);
793 array1->removeLast();
794 QVERIFY(array1->count() == 6);
795 QVERIFY(array1->contains(value5) ==
true);
797 array1->removeLast();
798 QVERIFY(array1->count() == 5);
799 QVERIFY(array1->contains(value5) ==
false);
801 array1->removeLast();
802 QVERIFY(array1->count() == 4);
803 QVERIFY(array1->contains(value4) ==
false);
805 array1->removeLast();
806 QVERIFY(array1->count() == 3);
807 QVERIFY(array1->contains(value3) ==
false);
809 array1->removeLast();
810 QVERIFY(array1->count() == 2);
811 QVERIFY(array1->contains(value2) ==
false);
813 array1->removeLast();
814 QVERIFY(array1->count() == 1);
815 QVERIFY(array1->contains(value1) ==
false);
817 array1->removeLast();
818 QVERIFY(array1->count() == 0);
819 QVERIFY(array1->contains(value0) ==
false);
821 array1->removeLast();
822 QVERIFY(array1->count() == 0);
825 void TestJson::QMJsonArray_take(
void)
827 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
828 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
829 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
830 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
833 auto value6 = QMPointer<QMJsonValue>(
new QMJsonValue(15.16));
834 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
836 array1->append(value0);
837 array1->append(value1);
838 array1->append(value2);
839 array1->append(value3);
840 array1->append(value4);
841 array1->append(value5);
842 array1->append(value5);
843 array1->append(value5);
845 QVERIFY(array1->takeAt(1) == value1);
846 QVERIFY(array1->count() == 7);
847 QVERIFY(array1->contains(value1) ==
false);
849 QVERIFY(array1->takeAt(1) == value2);
850 QVERIFY(array1->count() == 6);
851 QVERIFY(array1->contains(value2) ==
false);
853 QVERIFY(array1->takeAt(1) == value3);
854 QVERIFY(array1->count() == 5);
855 QVERIFY(array1->contains(value3) ==
false);
857 QVERIFY(array1->takeAt(1) == value4);
858 QVERIFY(array1->count() == 4);
859 QVERIFY(array1->contains(value4) ==
false);
861 QVERIFY(array1->takeAt(1) == value5);
862 QVERIFY(array1->count() == 3);
863 QVERIFY(array1->contains(value5) ==
true);
865 QVERIFY(array1->takeAt(1) == value5);
866 QVERIFY(array1->count() == 2);
867 QVERIFY(array1->contains(value5) ==
true);
869 QVERIFY(array1->takeAt(1) == value5);
870 QVERIFY(array1->count() == 1);
871 QVERIFY(array1->contains(value5) ==
false);
873 QVERIFY(array1->takeAt(0) == value0);
874 QVERIFY(array1->count() == 0);
875 QVERIFY(array1->contains(value0) ==
false);
877 QVERIFY(array1->takeAt(-1).isNull() ==
false);
878 QVERIFY(array1->takeAt(0).isNull() ==
false);
879 QVERIFY(array1->takeAt(100).isNull() ==
false);
880 QVERIFY(array1->count() == 0);
882 array1->append(value0);
883 array1->append(value1);
884 array1->append(value2);
885 array1->append(value3);
886 array1->append(value4);
887 array1->append(value5);
888 array1->append(value5);
889 array1->append(value5);
891 QVERIFY(array1->takeAt(1, value0) == value1);
892 QVERIFY(array1->count() == 7);
893 QVERIFY(array1->contains(value1) ==
false);
895 QVERIFY(array1->takeAt(1, value0) == value2);
896 QVERIFY(array1->count() == 6);
897 QVERIFY(array1->contains(value2) ==
false);
899 QVERIFY(array1->takeAt(1, value0) == value3);
900 QVERIFY(array1->count() == 5);
901 QVERIFY(array1->contains(value3) ==
false);
903 QVERIFY(array1->takeAt(1, value0) == value4);
904 QVERIFY(array1->count() == 4);
905 QVERIFY(array1->contains(value4) ==
false);
907 QVERIFY(array1->takeAt(1, value0) == value5);
908 QVERIFY(array1->count() == 3);
909 QVERIFY(array1->contains(value5) ==
true);
911 QVERIFY(array1->takeAt(1, value0) == value5);
912 QVERIFY(array1->count() == 2);
913 QVERIFY(array1->contains(value5) ==
true);
915 QVERIFY(array1->takeAt(1, value0) == value5);
916 QVERIFY(array1->count() == 1);
917 QVERIFY(array1->contains(value5) ==
false);
919 QVERIFY(array1->takeAt(0, value1) == value0);
920 QVERIFY(array1->count() == 0);
921 QVERIFY(array1->contains(value0) ==
false);
923 QVERIFY(array1->takeAt(-1, value0) == value0);
924 QVERIFY(array1->takeAt(0, value0) == value0);
925 QVERIFY(array1->takeAt(100, value0) == value0);
926 QVERIFY(array1->count() == 0);
928 array1->append(value0);
929 array1->append(value1);
930 array1->append(value2);
931 array1->append(value3);
932 array1->append(value4);
933 array1->append(value5);
934 array1->append(value5);
935 array1->append(value5);
937 QVERIFY(array1->takeAt(1,
false) == value1);
938 QVERIFY(array1->count() == 7);
939 QVERIFY(array1->contains(value1) ==
false);
941 QVERIFY(array1->takeAt(1,
"World Hello") == value2);
942 QVERIFY(array1->count() == 6);
943 QVERIFY(array1->contains(value2) ==
false);
945 QVERIFY(array1->takeAt(1, 15.16) == value3);
946 QVERIFY(array1->count() == 5);
947 QVERIFY(array1->contains(value3) ==
false);
949 QVERIFY(array1->takeAt(1, QMPointer<QMJsonArray>()) == value4);
950 QVERIFY(array1->count() == 4);
951 QVERIFY(array1->contains(value4) ==
false);
953 QVERIFY(array1->takeAt(1, QMPointer<QMJsonObject>()) == value5);
954 QVERIFY(array1->count() == 3);
955 QVERIFY(array1->contains(value5) ==
true);
957 QVERIFY(array1->takeAt(1, QMPointer<QMJsonObject>()) == value5);
958 QVERIFY(array1->count() == 2);
959 QVERIFY(array1->contains(value5) ==
true);
961 QVERIFY(array1->takeAt(1, QMPointer<QMJsonObject>()) == value5);
962 QVERIFY(array1->count() == 1);
963 QVERIFY(array1->contains(value5) ==
false);
965 QVERIFY(array1->takeAt(0, QMPointer<QMJsonValue>()) == value0);
966 QVERIFY(array1->count() == 0);
967 QVERIFY(array1->contains(value0) ==
false);
969 QVERIFY(array1->takeAt(-1, QMPointer<QMJsonValue>()).isNull() ==
true);
970 QVERIFY(array1->takeAt(0, QMPointer<QMJsonValue>()).isNull() ==
true);
971 QVERIFY(array1->takeAt(100, QMPointer<QMJsonValue>()).isNull() ==
true);
972 QVERIFY(array1->count() == 0);
974 array1->append(value0);
975 array1->append(value1);
976 array1->append(value2);
977 array1->append(value3);
978 array1->append(value4);
979 array1->append(value5);
980 array1->append(value5);
981 array1->append(value5);
983 QVERIFY(array1->takeFirst() == value0);
984 QVERIFY(array1->count() == 7);
985 QVERIFY(array1->contains(value0) ==
false);
987 QVERIFY(array1->takeFirst() == value1);
988 QVERIFY(array1->count() == 6);
989 QVERIFY(array1->contains(value1) ==
false);
991 QVERIFY(array1->takeFirst() == value2);
992 QVERIFY(array1->count() == 5);
993 QVERIFY(array1->contains(value2) ==
false);
995 QVERIFY(array1->takeFirst() == value3);
996 QVERIFY(array1->count() == 4);
997 QVERIFY(array1->contains(value3) ==
false);
999 QVERIFY(array1->takeFirst() == value4);
1000 QVERIFY(array1->count() == 3);
1001 QVERIFY(array1->contains(value4) ==
false);
1003 QVERIFY(array1->takeFirst() == value5);
1004 QVERIFY(array1->count() == 2);
1005 QVERIFY(array1->contains(value5) ==
true);
1007 QVERIFY(array1->takeFirst() == value5);
1008 QVERIFY(array1->count() == 1);
1009 QVERIFY(array1->contains(value5) ==
true);
1011 QVERIFY(array1->takeFirst() == value5);
1012 QVERIFY(array1->count() == 0);
1013 QVERIFY(array1->contains(value5) ==
false);
1015 array1->takeFirst();
1016 QVERIFY(array1->count() == 0);
1018 array1->append(value0);
1019 array1->append(value1);
1020 array1->append(value2);
1021 array1->append(value3);
1022 array1->append(value4);
1023 array1->append(value5);
1024 array1->append(value5);
1025 array1->append(value5);
1027 QVERIFY(array1->takeLast() == value5);
1028 QVERIFY(array1->count() == 7);
1029 QVERIFY(array1->contains(value5) ==
true);
1031 QVERIFY(array1->takeLast() == value5);
1032 QVERIFY(array1->count() == 6);
1033 QVERIFY(array1->contains(value5) ==
true);
1035 QVERIFY(array1->takeLast() == value5);
1036 QVERIFY(array1->count() == 5);
1037 QVERIFY(array1->contains(value5) ==
false);
1039 QVERIFY(array1->takeLast() == value4);
1040 QVERIFY(array1->count() == 4);
1041 QVERIFY(array1->contains(value4) ==
false);
1043 QVERIFY(array1->takeLast() == value3);
1044 QVERIFY(array1->count() == 3);
1045 QVERIFY(array1->contains(value3) ==
false);
1047 QVERIFY(array1->takeLast() == value2);
1048 QVERIFY(array1->count() == 2);
1049 QVERIFY(array1->contains(value2) ==
false);
1051 QVERIFY(array1->takeLast() == value1);
1052 QVERIFY(array1->count() == 1);
1053 QVERIFY(array1->contains(value1) ==
false);
1055 QVERIFY(array1->takeLast() == value0);
1056 QVERIFY(array1->count() == 0);
1057 QVERIFY(array1->contains(value0) ==
false);
1060 QVERIFY(array1->count() == 0);
1063 void TestJson::QMJsonArray_value(
void)
1065 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
1066 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
1067 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
1068 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
1069 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1071 QVERIFY(array1->front().isNull() ==
false);
1072 QVERIFY(array1->back().isNull() ==
false);
1074 array1->append(value0);
1075 array1->append(value1);
1076 array1->append(value2);
1077 array1->append(value3);
1079 QVERIFY(array1->front() == value0);
1080 QVERIFY(array1->back() == value3);
1082 QVERIFY(array1->value(-1).isNull() ==
false);
1083 QVERIFY(array1->value(100).isNull() ==
false);
1084 QVERIFY(array1->value(0) == value0);
1085 QVERIFY(array1->value(1) == value1);
1086 QVERIFY(array1->value(2) == value2);
1087 QVERIFY(array1->value(3) == value3);
1089 QVERIFY(array1->value(-1, value1) == value1);
1090 QVERIFY(array1->value(100, value1) == value1);
1091 QVERIFY(array1->value(0, value1) == value0);
1092 QVERIFY(array1->value(1, value0) == value1);
1093 QVERIFY(array1->value(2, value1) == value2);
1094 QVERIFY(array1->value(3, value1) == value3);
1096 QVERIFY(array1->value(-1, 15.16).isNull() ==
false);
1097 QVERIFY(array1->value(100, 15.16).isNull() ==
false);
1098 QVERIFY(array1->value(0, 15.16) == value0);
1099 QVERIFY(array1->value(1, 15.16) == value1);
1100 QVERIFY(array1->value(2, 15.16) == value2);
1101 QVERIFY(array1->value(3, 15.16) == value3);
1104 void TestJson::QMJsonArray_values(
void)
1106 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
1107 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
1108 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
1109 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
1110 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1112 QVERIFY(array1->values() == QList<QMPointer<QMJsonValue> >());
1114 array1->append(value0);
1115 array1->append(value1);
1116 array1->append(value2);
1117 array1->append(value3);
1119 QVERIFY(array1->values() == QList<QMPointer<QMJsonValue> >() << value0 << value1 << value2 << value3);
1120 QVERIFY(array1->mid(-1, 100) == QList<QMPointer<QMJsonValue> >() << value0 << value1 << value2 << value3);
1121 QVERIFY(array1->mid(-1, 4) == QList<QMPointer<QMJsonValue> >() << value0 << value1 << value2 << value3);
1123 QVERIFY(array1->mid(0, 4) == QList<QMPointer<QMJsonValue> >() << value0 << value1 << value2 << value3);
1124 QVERIFY(array1->mid(0, 3) == QList<QMPointer<QMJsonValue> >() << value0 << value1 << value2);
1125 QVERIFY(array1->mid(0, 2) == QList<QMPointer<QMJsonValue> >() << value0 << value1);
1126 QVERIFY(array1->mid(0, 1) == QList<QMPointer<QMJsonValue> >() << value0);
1127 QVERIFY(array1->mid(0, 0) == QList<QMPointer<QMJsonValue> >());
1129 QVERIFY(array1->mid(1, 4) == QList<QMPointer<QMJsonValue> >() << value1 << value2 << value3);
1130 QVERIFY(array1->mid(1, 3) == QList<QMPointer<QMJsonValue> >() << value1 << value2 << value3);
1131 QVERIFY(array1->mid(1, 2) == QList<QMPointer<QMJsonValue> >() << value1 << value2);
1132 QVERIFY(array1->mid(1, 1) == QList<QMPointer<QMJsonValue> >() << value1);
1133 QVERIFY(array1->mid(1, 0) == QList<QMPointer<QMJsonValue> >());
1135 QVERIFY(array1->mid(2, 4) == QList<QMPointer<QMJsonValue> >() << value2 << value3);
1136 QVERIFY(array1->mid(2, 3) == QList<QMPointer<QMJsonValue> >() << value2 << value3);
1137 QVERIFY(array1->mid(2, 2) == QList<QMPointer<QMJsonValue> >() << value2 << value3);
1138 QVERIFY(array1->mid(2, 1) == QList<QMPointer<QMJsonValue> >() << value2);
1139 QVERIFY(array1->mid(2, 0) == QList<QMPointer<QMJsonValue> >());
1141 QVERIFY(array1->mid(3, 4) == QList<QMPointer<QMJsonValue> >() << value3);
1142 QVERIFY(array1->mid(3, 3) == QList<QMPointer<QMJsonValue> >() << value3);
1143 QVERIFY(array1->mid(3, 2) == QList<QMPointer<QMJsonValue> >() << value3);
1144 QVERIFY(array1->mid(3, 1) == QList<QMPointer<QMJsonValue> >() << value3);
1145 QVERIFY(array1->mid(3, 0) == QList<QMPointer<QMJsonValue> >());
1147 QVERIFY(array1->mid(4, 4) == QList<QMPointer<QMJsonValue> >());
1148 QVERIFY(array1->mid(4, 3) == QList<QMPointer<QMJsonValue> >());
1149 QVERIFY(array1->mid(4, 2) == QList<QMPointer<QMJsonValue> >());
1150 QVERIFY(array1->mid(4, 1) == QList<QMPointer<QMJsonValue> >());
1151 QVERIFY(array1->mid(4, 0) == QList<QMPointer<QMJsonValue> >());
1154 void TestJson::QMJsonArray_move(
void)
1156 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
1157 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
1158 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
1159 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
1160 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1162 array1->move(-1, 100);
1166 array1->append(value0);
1167 array1->append(value1);
1168 array1->append(value2);
1169 array1->append(value3);
1171 array1->move(-1, -1);
1172 array1->move(-1, 0);
1173 array1->move(-1, 1);
1174 array1->move(-1, 2);
1175 array1->move(-1, 3);
1176 array1->move(-1, 4);
1178 array1->move(0, -1);
1184 QVERIFY(array1->value(0) == value2);
1185 QVERIFY(array1->value(1) == value1);
1186 QVERIFY(array1->value(2) == value3);
1187 QVERIFY(array1->value(3) == value0);
1189 array1->move(1, -1);
1195 QVERIFY(array1->value(0) == value1);
1196 QVERIFY(array1->value(1) == value2);
1197 QVERIFY(array1->value(2) == value0);
1198 QVERIFY(array1->value(3) == value3);
1200 array1->move(2, -1);
1206 QVERIFY(array1->value(0) == value0);
1207 QVERIFY(array1->value(1) == value2);
1208 QVERIFY(array1->value(2) == value3);
1209 QVERIFY(array1->value(3) == value1);
1211 array1->move(3, -1);
1217 QVERIFY(array1->value(0) == value1);
1218 QVERIFY(array1->value(1) == value3);
1219 QVERIFY(array1->value(2) == value2);
1220 QVERIFY(array1->value(3) == value0);
1222 array1->move(4, -1);
1228 QVERIFY(array1->value(0) == value1);
1229 QVERIFY(array1->value(1) == value3);
1230 QVERIFY(array1->value(2) == value2);
1231 QVERIFY(array1->value(3) == value0);
1234 void TestJson::QMJsonArray_replace(
void)
1236 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
1237 auto value1 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
1238 auto value2 = QMPointer<QMJsonValue>(
new QMJsonValue(
"Hello World"));
1239 auto value3 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
1240 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1242 array1->replace(-1, QMPointer<QMJsonValue>());
1243 array1->replace(0, QMPointer<QMJsonValue>());
1244 array1->replace(100, QMPointer<QMJsonValue>());
1246 array1->replace(-1, 10);
1247 array1->replace(0,
true);
1248 array1->replace(100,
"Hello");
1250 array1->append(value0);
1251 array1->append(value1);
1253 array1->replace(0, value2);
1254 array1->replace(1, value3);
1255 QVERIFY(array1->value(0) == value2);
1256 QVERIFY(array1->value(1) == value3);
1258 array1->replace(0, QMPointer<QMJsonValue>());
1259 array1->replace(1, QMPointer<QMJsonValue>());
1260 QVERIFY(array1->value(0).isNull() ==
false);
1261 QVERIFY(array1->value(1).isNull() ==
false);
1263 array1->replace(0,
"15.16");
1264 array1->replace(1,
true);
1265 QVERIFY(array1->value(0)->isString() ==
true);
1266 QVERIFY(array1->value(1)->isBool() ==
true);
1269 void TestJson::QMJsonArray_null(
void)
1271 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue());
1272 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1274 array1->append(value0);
1276 QVERIFY(array1->isNull(0) ==
true);
1277 QVERIFY(array1->isBool(0) ==
false);
1278 QVERIFY(array1->isDouble(0) ==
false);
1279 QVERIFY(array1->isString(0) ==
false);
1280 QVERIFY(array1->isArray(0) ==
false);
1281 QVERIFY(array1->isObject(0) ==
false);
1282 QVERIFY(array1->is<QRect>(0) ==
false);
1284 QVERIFY(array1->toBool(0) ==
false);
1285 QVERIFY(array1->toDouble(0) == 0);
1286 QVERIFY(array1->toString(0) ==
"null");
1287 QVERIFY(array1->toArray(0).isNull() ==
false);
1288 QVERIFY(array1->toObject(0).isNull() ==
false);
1290 QVERIFY(array1->toBool(0,
true) ==
true);
1291 QVERIFY(array1->toDouble(0, 4.8) == 4.8);
1292 QVERIFY(array1->toString(0,
"15.16") ==
"15.16");
1293 QVERIFY(array1->toArray(0, QMPointer<QMJsonArray>()).isNull() ==
true);
1294 QVERIFY(array1->toObject(0, QMPointer<QMJsonObject>()).isNull() ==
true);
1295 QVERIFY(array1->to<QRect>(0, QRect()) == QRect());
1296 QVERIFY(array1->from(0, value0) ==
true);
1297 QVERIFY(array1->from<QSize>(0, QSize(15, 16)) ==
false);
1300 void TestJson::QMJsonArray_bool(
void)
1302 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue(
true));
1303 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1305 array1->append(value0);
1307 QVERIFY(array1->isNull(0) ==
false);
1308 QVERIFY(array1->isBool(0) ==
true);
1309 QVERIFY(array1->isDouble(0) ==
false);
1310 QVERIFY(array1->isString(0) ==
false);
1311 QVERIFY(array1->isArray(0) ==
false);
1312 QVERIFY(array1->isObject(0) ==
false);
1313 QVERIFY(array1->is<QRect>(0) ==
false);
1315 QVERIFY(array1->toBool(0) ==
true);
1316 QVERIFY(array1->toDouble(0) == 1);
1317 QVERIFY(array1->toString(0) ==
"true");
1318 QVERIFY(array1->toArray(0).isNull() ==
false);
1319 QVERIFY(array1->toObject(0).isNull() ==
false);
1321 QVERIFY(array1->toBool(0,
false) ==
true);
1322 QVERIFY(array1->toDouble(0, 4.8) == 4.8);
1323 QVERIFY(array1->toString(0,
"15.16") ==
"15.16");
1324 QVERIFY(array1->toArray(0, QMPointer<QMJsonArray>()).isNull() ==
true);
1325 QVERIFY(array1->toObject(0, QMPointer<QMJsonObject>()).isNull() ==
true);
1326 QVERIFY(array1->to<QRect>(0, QRect()) == QRect());
1328 QVERIFY(array1->from(0, value0) ==
true);
1329 QVERIFY(array1->fromBool(0,
false) ==
true);
1330 QVERIFY(array1->fromDouble(0, 4.8) ==
true);
1331 QVERIFY(array1->fromString(0,
"false") ==
true);
1332 QVERIFY(array1->fromArray(0, QMPointer<QMJsonArray>()) ==
false);
1333 QVERIFY(array1->fromObject(0, QMPointer<QMJsonObject>()) ==
false);
1334 QVERIFY(array1->from<QSize>(0, QSize(15, 16)) ==
false);
1337 void TestJson::QMJsonArray_double(
void)
1339 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue(4.8));
1340 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1342 array1->append(value0);
1344 QVERIFY(array1->isNull(0) ==
false);
1345 QVERIFY(array1->isBool(0) ==
false);
1346 QVERIFY(array1->isDouble(0) ==
true);
1347 QVERIFY(array1->isString(0) ==
false);
1348 QVERIFY(array1->isArray(0) ==
false);
1349 QVERIFY(array1->isObject(0) ==
false);
1350 QVERIFY(array1->is<QRect>(0) ==
false);
1352 QVERIFY(array1->toBool(0) ==
true);
1353 QVERIFY(array1->toDouble(0) == 4.8);
1354 QVERIFY(array1->toString(0) ==
"4.8");
1355 QVERIFY(array1->toArray(0).isNull() ==
false);
1356 QVERIFY(array1->toObject(0).isNull() ==
false);
1358 QVERIFY(array1->toBool(0,
false) ==
false);
1359 QVERIFY(array1->toDouble(0, 15.16) == 4.8);
1360 QVERIFY(array1->toString(0,
"15.16") ==
"15.16");
1361 QVERIFY(array1->toArray(0, QMPointer<QMJsonArray>()).isNull() ==
true);
1362 QVERIFY(array1->toObject(0, QMPointer<QMJsonObject>()).isNull() ==
true);
1363 QVERIFY(array1->to<QRect>(0, QRect()) == QRect());
1365 QVERIFY(array1->from(0, value0) ==
true);
1366 QVERIFY(array1->fromBool(0,
false) ==
true);
1367 QVERIFY(array1->fromDouble(0, 15.16) ==
true);
1368 QVERIFY(array1->fromString(0,
"false") ==
false);
1369 QVERIFY(array1->fromArray(0, QMPointer<QMJsonArray>()) ==
false);
1370 QVERIFY(array1->fromObject(0, QMPointer<QMJsonObject>()) ==
false);
1371 QVERIFY(array1->from<QSize>(0, QSize(15, 16)) ==
false);
1374 void TestJson::QMJsonArray_string(
void)
1376 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue(
"test"));
1377 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1379 array1->append(value0);
1381 QVERIFY(array1->isNull(0) ==
false);
1382 QVERIFY(array1->isBool(0) ==
false);
1383 QVERIFY(array1->isDouble(0) ==
false);
1384 QVERIFY(array1->isString(0) ==
true);
1385 QVERIFY(array1->isArray(0) ==
false);
1386 QVERIFY(array1->isObject(0) ==
false);
1387 QVERIFY(array1->is<QRect>(0) ==
false);
1389 QVERIFY(array1->toBool(0) ==
false);
1390 QVERIFY(array1->toDouble(0) == 0);
1391 QVERIFY(array1->toString(0) ==
"test");
1392 QVERIFY(array1->toArray(0).isNull() ==
false);
1393 QVERIFY(array1->toObject(0).isNull() ==
false);
1395 QVERIFY(array1->toBool(0,
true) ==
true);
1396 QVERIFY(array1->toDouble(0, 15.16) == 15.16);
1397 QVERIFY(array1->toString(0,
"15.16") ==
"test");
1398 QVERIFY(array1->toArray(0, QMPointer<QMJsonArray>()).isNull() ==
true);
1399 QVERIFY(array1->toObject(0, QMPointer<QMJsonObject>()).isNull() ==
true);
1400 QVERIFY(array1->to<QRect>(0, QRect()) == QRect());
1402 QVERIFY(array1->from(0, value0) ==
true);
1403 QVERIFY(array1->fromBool(0,
false) ==
true);
1404 QVERIFY(array1->fromDouble(0, 15.16) ==
true);
1405 QVERIFY(array1->fromString(0,
"15.16") ==
true);
1406 QVERIFY(array1->fromArray(0, QMPointer<QMJsonArray>()) ==
false);
1407 QVERIFY(array1->fromObject(0, QMPointer<QMJsonObject>()) ==
false);
1408 QVERIFY(array1->from<QSize>(0, QSize(15, 16)) ==
false);
1411 void TestJson::QMJsonArray_array(
void)
1414 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1416 array1->append(value0);
1418 QVERIFY(array1->isNull(0) ==
false);
1419 QVERIFY(array1->isBool(0) ==
false);
1420 QVERIFY(array1->isDouble(0) ==
false);
1421 QVERIFY(array1->isString(0) ==
false);
1422 QVERIFY(array1->isArray(0) ==
true);
1423 QVERIFY(array1->isObject(0) ==
false);
1424 QVERIFY(array1->is<QRect>(0) ==
false);
1426 QVERIFY(array1->toBool(0) ==
false);
1427 QVERIFY(array1->toDouble(0) == 0);
1428 QVERIFY(array1->toString(0) == QString());
1429 QVERIFY(array1->toArray(0).isNull() ==
false);
1430 QVERIFY(array1->toObject(0).isNull() ==
false);
1432 QVERIFY(array1->toBool(0,
true) ==
true);
1433 QVERIFY(array1->toDouble(0, 15.16) == 15.16);
1434 QVERIFY(array1->toString(0,
"15.16") ==
"15.16");
1435 QVERIFY(array1->toArray(0, QMPointer<QMJsonArray>()).isNull() ==
false);
1436 QVERIFY(array1->toObject(0, QMPointer<QMJsonObject>()).isNull() ==
true);
1437 QVERIFY(array1->to<QRect>(0, QRect()) == QRect());
1439 QVERIFY(array1->from(0, value0) ==
true);
1440 QVERIFY(array1->fromBool(0,
false) ==
false);
1441 QVERIFY(array1->fromDouble(0, 15.16) ==
false);
1442 QVERIFY(array1->fromString(0,
"15.16") ==
false);
1443 QVERIFY(array1->fromArray(0, QMPointer<QMJsonArray>()) ==
true);
1444 QVERIFY(array1->fromObject(0, QMPointer<QMJsonObject>()) ==
false);
1445 QVERIFY(array1->from<QSize>(0, QSize(15, 16)) ==
false);
1448 void TestJson::QMJsonArray_object(
void)
1451 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1453 array1->append(value0);
1455 QVERIFY(array1->isNull(0) ==
false);
1456 QVERIFY(array1->isBool(0) ==
false);
1457 QVERIFY(array1->isDouble(0) ==
false);
1458 QVERIFY(array1->isString(0) ==
false);
1459 QVERIFY(array1->isArray(0) ==
false);
1460 QVERIFY(array1->isObject(0) ==
true);
1461 QVERIFY(array1->is<QRect>(0) ==
false);
1463 QVERIFY(array1->toBool(0) ==
false);
1464 QVERIFY(array1->toDouble(0) == 0);
1465 QVERIFY(array1->toString(0) == QString());
1466 QVERIFY(array1->toArray(0).isNull() ==
false);
1467 QVERIFY(array1->toObject(0).isNull() ==
false);
1469 QVERIFY(array1->toBool(0,
true) ==
true);
1470 QVERIFY(array1->toDouble(0, 15.16) == 15.16);
1471 QVERIFY(array1->toString(0,
"15.16") ==
"15.16");
1472 QVERIFY(array1->toArray(0, QMPointer<QMJsonArray>()).isNull() ==
true);
1473 QVERIFY(array1->toObject(0, QMPointer<QMJsonObject>()).isNull() ==
false);
1474 QVERIFY(array1->to<QRect>(0, QRect()) == QRect());
1476 QVERIFY(array1->from(0, value0) ==
true);
1477 QVERIFY(array1->fromBool(0,
false) ==
false);
1478 QVERIFY(array1->fromDouble(0, 15.16) ==
false);
1479 QVERIFY(array1->fromString(0,
"15.16") ==
false);
1480 QVERIFY(array1->fromArray(0, QMPointer<QMJsonArray>()) ==
false);
1481 QVERIFY(array1->fromObject(0, QMPointer<QMJsonObject>()) ==
true);
1482 QVERIFY(array1->from<QSize>(0, QSize(15, 16)) ==
false);
1485 void TestJson::QMJsonArray_custom(
void)
1487 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue(QSize(4, 8)));
1488 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1490 array1->append(value0);
1492 QVERIFY(array1->isNull(0) ==
false);
1493 QVERIFY(array1->isBool(0) ==
false);
1494 QVERIFY(array1->isDouble(0) ==
false);
1495 QVERIFY(array1->isString(0) ==
false);
1496 QVERIFY(array1->isArray(0) ==
false);
1497 QVERIFY(array1->isObject(0) ==
false);
1498 QVERIFY(array1->is<QSize>(0) ==
true);
1500 QVERIFY(array1->toBool(0) ==
false);
1501 QVERIFY(array1->toDouble(0) == 0);
1502 QVERIFY(array1->toString(0) == QString());
1503 QVERIFY(array1->toArray(0).isNull() ==
false);
1504 QVERIFY(array1->toObject(0).isNull() ==
false);
1506 QVERIFY(array1->toBool(0,
true) ==
true);
1507 QVERIFY(array1->toDouble(0, 15.16) == 15.16);
1508 QVERIFY(array1->toString(0,
"15.16") ==
"15.16");
1509 QVERIFY(array1->toArray(0, QMPointer<QMJsonArray>()).isNull() ==
true);
1510 QVERIFY(array1->toObject(0, QMPointer<QMJsonObject>()).isNull() ==
true);
1511 QVERIFY(array1->to<QSize>(0, QSize()) == QSize(4, 8));
1513 QVERIFY(array1->from(0, value0) ==
false);
1514 QVERIFY(array1->fromBool(0,
false) ==
false);
1515 QVERIFY(array1->fromDouble(0, 15.16) ==
false);
1516 QVERIFY(array1->fromString(0,
"15.16") ==
false);
1517 QVERIFY(array1->fromArray(0, QMPointer<QMJsonArray>()) ==
false);
1518 QVERIFY(array1->fromObject(0, QMPointer<QMJsonObject>()) ==
false);
1519 QVERIFY(array1->from<QSize>(0, QSize(15, 16)) ==
true);
1522 void TestJson::QMJsonArray_signals(
void)
1524 auto value0 = QMPointer<QMJsonValue>(
new QMJsonValue(
"15.16"));
1525 auto array1 = QMPointer<QMJsonArray>(
new QMJsonArray());
1526 auto array2 = QMPointer<QMJsonArray>(
new QMJsonArray());
1534 array1->removeFirst();
1535 array1->removeLast();
1536 QVERIFY(mCount == 0);
1539 array1->removeAt(1);
1540 QVERIFY(mCount == 0);
1543 array1->removeOne(value0);
1544 QVERIFY(mCount == 0);
1547 array1->removeAll(value0);
1548 QVERIFY(mCount == 0);
1552 QVERIFY(mCount == 0);
1555 array1->prepend(value0);
1556 array1->append(value0);
1557 array1->insert(0, value0);
1558 QVERIFY(mCount == 3);
1561 array2->prepend(4.8);
1562 array2->append(15.16);
1563 array2->insert(0, 23.42);
1564 QVERIFY(mCount == 3);
1569 QVERIFY(mCount == 6);
1572 array1->removeFirst();
1573 array1->removeLast();
1574 QVERIFY(mCount == 2);
1577 array1->removeAt(1);
1578 QVERIFY(mCount == 1);
1581 array1->removeOne(value0);
1582 QVERIFY(mCount == 1);
1585 array1->removeAll(value0);
1586 QVERIFY(mCount == 2);
1590 QVERIFY(mCount == 3);
1593 array1->takeFirst();
1595 QVERIFY(mCount == 0);
1599 array1->takeAt(1, value0);
1600 array1->takeAt(1, 15.16);
1601 QVERIFY(mCount == 0);
1604 array1->append(value0);
1605 array1->append(value0);
1606 array1->append(value0);
1607 array1->append(value0);
1608 array1->append(value0);
1609 array1->append(value0);
1610 QVERIFY(mCount == 6);
1614 array1->takeAt(1, value0);
1615 array1->takeAt(1, 15.16);
1616 QVERIFY(mCount == 3);
1619 array1->takeFirst();
1621 QVERIFY(mCount == 2);
1625 QVERIFY(mCount == 1);
1628 array1->append(value0);
1629 QVERIFY(mCount == 1);
1632 array1->replace(0, value0);
1633 QVERIFY(mCount == 2);
1636 array1->replace(0, 15.16);
1637 QVERIFY(mCount == 2);
void itemRemoved(int32_t index, const QMPointer< QMJsonValue > &value)
void itemAdded(int32_t index, const QMPointer< QMJsonValue > &value)