diff options
Diffstat (limited to 'tests/querytest.cpp')
-rw-r--r-- | tests/querytest.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/querytest.cpp b/tests/querytest.cpp index afa8e33..6011a99 100644 --- a/tests/querytest.cpp +++ b/tests/querytest.cpp | |||
@@ -492,6 +492,42 @@ private slots: | |||
492 | QCOMPARE(folders.size(), 1); | 492 | QCOMPARE(folders.size(), 1); |
493 | } | 493 | } |
494 | 494 | ||
495 | void testSubquery() | ||
496 | { | ||
497 | // Setup | ||
498 | auto folder1 = Folder::createEntity<Folder>("sink.dummy.instance1"); | ||
499 | folder1.setSpecialPurpose(QByteArrayList() << "purpose1"); | ||
500 | VERIFYEXEC(Sink::Store::create<Folder>(folder1)); | ||
501 | |||
502 | auto folder2 = Folder::createEntity<Folder>("sink.dummy.instance1"); | ||
503 | folder2.setSpecialPurpose(QByteArrayList() << "purpose2"); | ||
504 | VERIFYEXEC(Sink::Store::create<Folder>(folder2)); | ||
505 | |||
506 | { | ||
507 | auto mail = Mail::createEntity<Mail>("sink.dummy.instance1"); | ||
508 | mail.setUid("mail1"); | ||
509 | mail.setFolder(folder1); | ||
510 | VERIFYEXEC(Sink::Store::create(mail)); | ||
511 | } | ||
512 | { | ||
513 | auto mail = Mail::createEntity<Mail>("sink.dummy.instance1"); | ||
514 | mail.setUid("mail2"); | ||
515 | mail.setFolder(folder2); | ||
516 | VERIFYEXEC(Sink::Store::create(mail)); | ||
517 | } | ||
518 | |||
519 | // Ensure all local data is processed | ||
520 | Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1").exec().waitForFinished(); | ||
521 | |||
522 | //Setup two folders with a mail each, ensure we only get the mail from the folder that matches the folder filter. | ||
523 | Query query; | ||
524 | query.filter<Mail::Folder>(Sink::Query().containsFilter<Folder::SpecialPurpose>("purpose1")); | ||
525 | query.request<Mail::Uid>(); | ||
526 | |||
527 | auto mails = Sink::Store::read<Mail>(query); | ||
528 | QCOMPARE(mails.size(), 1); | ||
529 | QCOMPARE(mails.first().getUid().toLatin1(), QByteArray("mail1")); | ||
530 | } | ||
495 | }; | 531 | }; |
496 | 532 | ||
497 | QTEST_MAIN(QueryTest) | 533 | QTEST_MAIN(QueryTest) |