diff options
Diffstat (limited to 'tests/querytest.cpp')
-rw-r--r-- | tests/querytest.cpp | 58 |
1 files changed, 56 insertions, 2 deletions
diff --git a/tests/querytest.cpp b/tests/querytest.cpp index 0641c0d..328448f 100644 --- a/tests/querytest.cpp +++ b/tests/querytest.cpp | |||
@@ -731,7 +731,7 @@ private slots: | |||
731 | Query query; | 731 | Query query; |
732 | query.setId("testLivequeryUnmatch"); | 732 | query.setId("testLivequeryUnmatch"); |
733 | query.filter<Mail::Folder>(folder1); | 733 | query.filter<Mail::Folder>(folder1); |
734 | query.reduce<Mail::ThreadId>(Query::Reduce::Selector::max<Mail::Date>()).count("count").collect<Mail::Sender>("senders"); | 734 | query.reduce<Mail::ThreadId>(Query::Reduce::Selector::max<Mail::Date>()).count("count").collect<Mail::Folder>("folders"); |
735 | query.sort<Mail::Date>(); | 735 | query.sort<Mail::Date>(); |
736 | query.setFlags(Query::LiveQuery); | 736 | query.setFlags(Query::LiveQuery); |
737 | query.request<Mail::Unread>(); | 737 | query.request<Mail::Unread>(); |
@@ -747,7 +747,61 @@ private slots: | |||
747 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1")); | 747 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1")); |
748 | QTRY_COMPARE(model->rowCount(), 1); | 748 | QTRY_COMPARE(model->rowCount(), 1); |
749 | auto mail = model->data(model->index(0, 0, QModelIndex{}), Sink::Store::DomainObjectRole).value<Mail::Ptr>(); | 749 | auto mail = model->data(model->index(0, 0, QModelIndex{}), Sink::Store::DomainObjectRole).value<Mail::Ptr>(); |
750 | QCOMPARE(mail->getUnread(), true); | 750 | QTRY_COMPARE(mail->getUnread(), true); |
751 | QCOMPARE(mail->getProperty("count").toInt(), 1); | ||
752 | QCOMPARE(mail->getProperty("folders").toList().size(), 1); | ||
753 | } | ||
754 | |||
755 | void testReductionUpdate() | ||
756 | { | ||
757 | // Setup | ||
758 | auto folder1 = Folder::createEntity<Folder>("sink.dummy.instance1"); | ||
759 | VERIFYEXEC(Sink::Store::create<Folder>(folder1)); | ||
760 | |||
761 | auto folder2 = Folder::createEntity<Folder>("sink.dummy.instance1"); | ||
762 | VERIFYEXEC(Sink::Store::create<Folder>(folder2)); | ||
763 | |||
764 | QDateTime now{QDate{2017, 2, 3}, QTime{10, 0, 0}}; | ||
765 | QDateTime later{QDate{2017, 2, 3}, QTime{11, 0, 0}}; | ||
766 | |||
767 | auto mail1 = Mail::createEntity<Mail>("sink.dummy.instance1"); | ||
768 | mail1.setExtractedMessageId("mail1"); | ||
769 | mail1.setFolder(folder1); | ||
770 | mail1.setUnread(false); | ||
771 | mail1.setExtractedDate(now); | ||
772 | VERIFYEXEC(Sink::Store::create(mail1)); | ||
773 | |||
774 | // Ensure all local data is processed | ||
775 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1")); | ||
776 | |||
777 | Query query; | ||
778 | query.setId("testLivequeryUnmatch"); | ||
779 | query.setFlags(Query::LiveQuery); | ||
780 | query.filter<Mail::Folder>(folder1); | ||
781 | query.reduce<Mail::Folder>(Query::Reduce::Selector::max<Mail::Date>()).count("count").collect<Mail::Folder>("folders"); | ||
782 | query.sort<Mail::Date>(); | ||
783 | query.request<Mail::Unread>(); | ||
784 | query.request<Mail::MessageId>(); | ||
785 | |||
786 | auto model = Sink::Store::loadModel<Mail>(query); | ||
787 | QTRY_COMPARE(model->rowCount(), 1); | ||
788 | |||
789 | //The leader should change to mail2 after the modification | ||
790 | { | ||
791 | auto mail2 = Mail::createEntity<Mail>("sink.dummy.instance1"); | ||
792 | mail2.setExtractedMessageId("mail2"); | ||
793 | mail2.setFolder(folder1); | ||
794 | mail2.setUnread(false); | ||
795 | mail2.setExtractedDate(later); | ||
796 | VERIFYEXEC(Sink::Store::create(mail2)); | ||
797 | } | ||
798 | |||
799 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1")); | ||
800 | QTRY_COMPARE(model->rowCount(), 1); | ||
801 | auto mail = model->data(model->index(0, 0, QModelIndex{}), Sink::Store::DomainObjectRole).value<Mail::Ptr>(); | ||
802 | QTRY_COMPARE(mail->getMessageId(), QByteArray{"mail2"}); | ||
803 | QCOMPARE(mail->getProperty("count").toInt(), 2); | ||
804 | QCOMPARE(mail->getProperty("folders").toList().size(), 2); | ||
751 | } | 805 | } |
752 | 806 | ||
753 | void testBloom() | 807 | void testBloom() |