summaryrefslogtreecommitdiffstats
path: root/tests/mailtest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mailtest.cpp')
-rw-r--r--tests/mailtest.cpp109
1 files changed, 35 insertions, 74 deletions
diff --git a/tests/mailtest.cpp b/tests/mailtest.cpp
index 6dfe901..bef34fc 100644
--- a/tests/mailtest.cpp
+++ b/tests/mailtest.cpp
@@ -344,37 +344,29 @@ void MailTest::testCreateDraft()
344 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); 344 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
345 345
346 QByteArray folderIdentifier; 346 QByteArray folderIdentifier;
347 auto job = Store::fetchOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << Mail::MimeMessage::name << Mail::Folder::name)) 347
348 .then<void, ApplicationDomain::Mail>([&](const ApplicationDomain::Mail &mail) { 348 auto createdDraft = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail).request<Mail::Folder>());
349 folderIdentifier = mail.getProperty("folder").toByteArray(); 349 folderIdentifier = createdDraft.getFolder();
350 QVERIFY(!folderIdentifier.isEmpty()); 350 QVERIFY(!folderIdentifier.isEmpty());
351 });
352 VERIFYEXEC(job);
353 351
354 //Ensure we can also query by folder 352 //Ensure we can also query by folder
355 { 353 {
356 auto job = Store::fetchAll<ApplicationDomain::Mail>(Query::PropertyFilter("folder", folderIdentifier)) 354 auto mails = Store::read<ApplicationDomain::Mail>(Query::Query().filter<Mail::Folder>(folderIdentifier));
357 .then<void, QList<ApplicationDomain::Mail::Ptr> >([&](const QList<ApplicationDomain::Mail::Ptr> &mails) { 355 bool found = false;
358 bool found = false; 356 for (const auto m : mails) {
359 for (const auto m : mails) { 357 if (m.identifier() == mail.identifier()) {
360 if (m->identifier() == mail.identifier()) { 358 found = true;
361 found = true; 359 }
362 } 360 }
363 } 361 QVERIFY(found);
364 QVERIFY(found);
365 });
366 VERIFYEXEC(job);
367 } 362 }
368 363
369 //Ensure the folder is also existing 364 //Ensure the folder is also existing
370 { 365 {
371 ApplicationDomain::Folder folder; 366 ApplicationDomain::Folder folder;
372 auto job = Store::fetchAll<ApplicationDomain::Folder>(Query::IdentityFilter(folderIdentifier)) 367 auto folders = Store::read<ApplicationDomain::Folder>(Query::IdentityFilter(folderIdentifier));
373 .then<void, QList<ApplicationDomain::Folder::Ptr> >([&](const QList<ApplicationDomain::Folder::Ptr> &folders) { 368 QCOMPARE(folders.size(), 1);
374 QCOMPARE(folders.size(), 1); 369 folder = folders.first();
375 folder = *folders.first();
376 });
377 VERIFYEXEC(job);
378 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true))); 370 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true)));
379 } 371 }
380 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, true))); 372 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, true)));
@@ -402,41 +394,26 @@ void MailTest::testModifyMailToDraft()
402 VERIFYEXEC(Store::create(mail)); 394 VERIFYEXEC(Store::create(mail));
403 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); 395 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
404 396
405 auto modifiedMail = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail).request<Mail::MimeMessage>().request<Mail::Folder>()); 397 auto modifiedMail = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail));
406 // ApplicationDomain::Mail modifiedMail;
407 // {
408 // auto job = Store::fetchOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << Mail::MimeMessage::name << Mail::Folder::name))
409 // .then<void, ApplicationDomain::Mail>([&](const ApplicationDomain::Mail &mail) {
410 // modifiedMail = mail;
411 // });
412 // VERIFYEXEC(job);
413 // }
414 modifiedMail.setDraft(true); 398 modifiedMail.setDraft(true);
415 VERIFYEXEC(Store::modify(modifiedMail)); 399 VERIFYEXEC(Store::modify(modifiedMail));
416 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); 400 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
417 VERIFYEXEC(ResourceControl::flushReplayQueue(QByteArrayList() << mResourceInstanceIdentifier)); 401 VERIFYEXEC(ResourceControl::flushReplayQueue(QByteArrayList() << mResourceInstanceIdentifier));
418 402
419 QByteArray folderIdentifier; 403 QByteArray folderIdentifier;
420 auto job = Store::fetchOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << Mail::MimeMessage::name << Mail::Folder::name)) 404 {
421 .then<void, ApplicationDomain::Mail>([&](const ApplicationDomain::Mail &mail) { 405 auto createdDraft = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail).request<Mail::Folder>());
422 folderIdentifier = mail.getProperty("folder").toByteArray(); 406 folderIdentifier = createdDraft.getFolder();
423 QVERIFY(!folderIdentifier.isEmpty()); 407 QVERIFY(!folderIdentifier.isEmpty());
424 }); 408 }
425 VERIFYEXEC(job);
426 409
427 //Ensure the folder is also existing 410 //Ensure the folder is also existing
428 { 411 {
429 ApplicationDomain::Folder folder; 412 ApplicationDomain::Folder folder;
430 Query query; 413 auto folders = Store::read<ApplicationDomain::Folder>(Query::IdentityFilter(folderIdentifier).request<Folder::SpecialPurpose>());
431 query.ids << folderIdentifier; 414 QCOMPARE(folders.size(), 1);
432 query.request<Folder::SpecialPurpose>(); 415 folder = folders.first();
433 auto job = Store::fetchAll<ApplicationDomain::Folder>(Query::IdentityFilter(folderIdentifier)) 416 QVERIFY(folder.getSpecialPurpose().contains("drafts"));
434 .then<void, QList<ApplicationDomain::Folder::Ptr> >([&](const QList<ApplicationDomain::Folder::Ptr> &folders) {
435 QCOMPARE(folders.size(), 1);
436 folder = *folders.first();
437 QVERIFY(folder.getSpecialPurpose().contains("drafts"));
438 });
439 VERIFYEXEC(job);
440 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true))); 417 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true)));
441 } 418 }
442 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, true))); 419 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, true)));
@@ -464,42 +441,26 @@ void MailTest::testModifyMailToTrash()
464 VERIFYEXEC(Store::create(mail)); 441 VERIFYEXEC(Store::create(mail));
465 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); 442 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
466 443
467 // auto modifiedMail = Store::read<ApplicationDomain::Mail>(Query::IdentityFilter(mail).request<Mail::MimeMessage>().request<Mail::Folder>()).value(); 444 auto modifiedMail = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail));
468
469 ApplicationDomain::Mail modifiedMail;
470 {
471 auto job = Store::fetchOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << Mail::MimeMessage::name << Mail::Folder::name))
472 .then<void, ApplicationDomain::Mail>([&](const ApplicationDomain::Mail &mail) {
473 modifiedMail = mail;
474 });
475 VERIFYEXEC(job);
476 }
477 modifiedMail.setTrash(true); 445 modifiedMail.setTrash(true);
478 VERIFYEXEC(Store::modify(modifiedMail)); 446 VERIFYEXEC(Store::modify(modifiedMail));
479 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); 447 VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier));
480 VERIFYEXEC(ResourceControl::flushReplayQueue(QByteArrayList() << mResourceInstanceIdentifier)); 448 VERIFYEXEC(ResourceControl::flushReplayQueue(QByteArrayList() << mResourceInstanceIdentifier));
481 449
482 QByteArray folderIdentifier; 450 QByteArray folderIdentifier;
483 auto job = Store::fetchOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << Mail::MimeMessage::name << Mail::Folder::name)) 451 {
484 .then<void, ApplicationDomain::Mail>([&](const ApplicationDomain::Mail &mail) { 452 auto createdMail = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail).request<Mail::Folder>());
485 folderIdentifier = mail.getProperty("folder").toByteArray(); 453 folderIdentifier = createdMail.getFolder();
486 QVERIFY(!folderIdentifier.isEmpty()); 454 QVERIFY(!folderIdentifier.isEmpty());
487 }); 455 }
488 VERIFYEXEC(job);
489 456
490 //Ensure the folder is also existing 457 //Ensure the folder is also existing
491 { 458 {
492 ApplicationDomain::Folder folder; 459 ApplicationDomain::Folder folder;
493 Query query; 460 auto folders = Store::read<ApplicationDomain::Folder>(Query::IdentityFilter(folderIdentifier).request<Folder::SpecialPurpose>());
494 query.ids << folderIdentifier; 461 QCOMPARE(folders.size(), 1);
495 query.request<Folder::SpecialPurpose>(); 462 folder = folders.first();
496 auto job = Store::fetchAll<ApplicationDomain::Folder>(Query::IdentityFilter(folderIdentifier)) 463 QVERIFY(folder.getSpecialPurpose().contains("trash"));
497 .then<void, QList<ApplicationDomain::Folder::Ptr> >([&](const QList<ApplicationDomain::Folder::Ptr> &folders) {
498 QCOMPARE(folders.size(), 1);
499 folder = *folders.first();
500 QVERIFY(folder.getSpecialPurpose().contains("trash"));
501 });
502 VERIFYEXEC(job);
503 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true))); 464 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true)));
504 } 465 }
505 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, true))); 466 VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Mail>(ResourceControl::Inspection::ExistenceInspection(mail, true)));