summaryrefslogtreecommitdiffstats
path: root/tests/querytest.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-01-04 13:37:02 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-01-04 13:37:02 +0100
commit2cdea00408a48c268c2c74b8c058f984732f75a2 (patch)
treea3ed9a5cc9cea2dda250e320cf80feae65d63769 /tests/querytest.cpp
parenta6c3e00395d40b1daeccd6ca8335e6419c147ee0 (diff)
downloadsink-2cdea00408a48c268c2c74b8c058f984732f75a2.tar.gz
sink-2cdea00408a48c268c2c74b8c058f984732f75a2.zip
Don't turn modifications into creations
Diffstat (limited to 'tests/querytest.cpp')
-rw-r--r--tests/querytest.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/querytest.cpp b/tests/querytest.cpp
index 46181a6..92fc1f7 100644
--- a/tests/querytest.cpp
+++ b/tests/querytest.cpp
@@ -667,6 +667,46 @@ private slots:
667 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1")); 667 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1"));
668 QTRY_COMPARE(model->rowCount(), 0); 668 QTRY_COMPARE(model->rowCount(), 0);
669 } 669 }
670
671 void testLivequeryModifcationUpdateInThread()
672 {
673 // Setup
674 auto folder1 = Folder::createEntity<Folder>("sink.dummy.instance1");
675 VERIFYEXEC(Sink::Store::create<Folder>(folder1));
676
677 auto folder2 = Folder::createEntity<Folder>("sink.dummy.instance1");
678 VERIFYEXEC(Sink::Store::create<Folder>(folder2));
679
680 auto mail1 = Mail::createEntity<Mail>("sink.dummy.instance1");
681 mail1.setUid("mail1");
682 mail1.setFolder(folder1);
683 mail1.setUnread(false);
684 VERIFYEXEC(Sink::Store::create(mail1));
685
686 // Ensure all local data is processed
687 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1"));
688
689 Query query;
690 query.setId("testLivequeryUnmatch");
691 query.filter<Mail::Folder>(folder1);
692 query.reduce<Mail::ThreadId>(Query::Reduce::Selector::max<Mail::Date>()).count("count").collect<Mail::Sender>("senders");
693 query.sort<Mail::Date>();
694 query.setFlags(Query::LiveQuery);
695 query.request<Mail::Unread>();
696
697 auto model = Sink::Store::loadModel<Mail>(query);
698 QTRY_COMPARE(model->rowCount(), 1);
699
700 //After the modifcation the mail should have vanished.
701 {
702 mail1.setUnread(true);
703 VERIFYEXEC(Sink::Store::modify(mail1));
704 }
705 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1"));
706 QTRY_COMPARE(model->rowCount(), 1);
707 auto mail = model->data(model->index(0, 0, QModelIndex{}), Sink::Store::DomainObjectRole).value<Mail::Ptr>();
708 QCOMPARE(mail->getUnread(), true);
709 }
670}; 710};
671 711
672QTEST_MAIN(QueryTest) 712QTEST_MAIN(QueryTest)