diff options
-rw-r--r-- | tests/querytest.cpp | 76 |
1 files changed, 26 insertions, 50 deletions
diff --git a/tests/querytest.cpp b/tests/querytest.cpp index 65004b6..72eca86 100644 --- a/tests/querytest.cpp +++ b/tests/querytest.cpp | |||
@@ -98,10 +98,7 @@ private slots: | |||
98 | void testSingle() | 98 | void testSingle() |
99 | { | 99 | { |
100 | // Setup | 100 | // Setup |
101 | { | 101 | VERIFYEXEC(Sink::Store::create<Mail>(Mail("sink.dummy.instance1"))); |
102 | Mail mail("sink.dummy.instance1"); | ||
103 | VERIFYEXEC(Sink::Store::create<Mail>(mail)); | ||
104 | } | ||
105 | 102 | ||
106 | // Test | 103 | // Test |
107 | Sink::Query query; | 104 | Sink::Query query; |
@@ -116,10 +113,7 @@ private slots: | |||
116 | void testSingleWithDelay() | 113 | void testSingleWithDelay() |
117 | { | 114 | { |
118 | // Setup | 115 | // Setup |
119 | { | 116 | VERIFYEXEC(Sink::Store::create<Mail>(Mail("sink.dummy.instance1"))); |
120 | Mail mail("sink.dummy.instance1"); | ||
121 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | ||
122 | } | ||
123 | 117 | ||
124 | // Test | 118 | // Test |
125 | Sink::Query query; | 119 | Sink::Query query; |
@@ -142,13 +136,13 @@ private slots: | |||
142 | Mail mail("sink.dummy.instance1"); | 136 | Mail mail("sink.dummy.instance1"); |
143 | mail.setExtractedMessageId("test1"); | 137 | mail.setExtractedMessageId("test1"); |
144 | mail.setFolder("folder1"); | 138 | mail.setFolder("folder1"); |
145 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 139 | VERIFYEXEC(Sink::Store::create<Mail>(mail)); |
146 | } | 140 | } |
147 | { | 141 | { |
148 | Mail mail("sink.dummy.instance1"); | 142 | Mail mail("sink.dummy.instance1"); |
149 | mail.setExtractedMessageId("test2"); | 143 | mail.setExtractedMessageId("test2"); |
150 | mail.setFolder("folder2"); | 144 | mail.setFolder("folder2"); |
151 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 145 | VERIFYEXEC(Sink::Store::create<Mail>(mail)); |
152 | } | 146 | } |
153 | 147 | ||
154 | // Test | 148 | // Test |
@@ -164,13 +158,13 @@ private slots: | |||
164 | auto mail = model->index(0, 0, QModelIndex()).data(Sink::Store::DomainObjectRole).value<Mail::Ptr>(); | 158 | auto mail = model->index(0, 0, QModelIndex()).data(Sink::Store::DomainObjectRole).value<Mail::Ptr>(); |
165 | { | 159 | { |
166 | mail->setFolder("folder2"); | 160 | mail->setFolder("folder2"); |
167 | Sink::Store::modify<Mail>(*mail).exec().waitForFinished(); | 161 | VERIFYEXEC(Sink::Store::modify<Mail>(*mail)); |
168 | } | 162 | } |
169 | QTRY_COMPARE(model->rowCount(), 0); | 163 | QTRY_COMPARE(model->rowCount(), 0); |
170 | 164 | ||
171 | { | 165 | { |
172 | mail->setFolder("folder1"); | 166 | mail->setFolder("folder1"); |
173 | Sink::Store::modify<Mail>(*mail).exec().waitForFinished(); | 167 | VERIFYEXEC(Sink::Store::modify<Mail>(*mail)); |
174 | } | 168 | } |
175 | QTRY_COMPARE(model->rowCount(), 1); | 169 | QTRY_COMPARE(model->rowCount(), 1); |
176 | } | 170 | } |
@@ -181,8 +175,8 @@ private slots: | |||
181 | // Setup | 175 | // Setup |
182 | { | 176 | { |
183 | Mail mail("sink.dummy.instance1"); | 177 | Mail mail("sink.dummy.instance1"); |
184 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 178 | VERIFYEXEC(Sink::Store::create<Mail>(mail)); |
185 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 179 | VERIFYEXEC(Sink::Store::create<Mail>(mail)); |
186 | 180 | ||
187 | Sink::Query query; | 181 | Sink::Query query; |
188 | query.resourceFilter("sink.dummy.instance1"); | 182 | query.resourceFilter("sink.dummy.instance1"); |
@@ -211,7 +205,7 @@ private slots: | |||
211 | // Setup | 205 | // Setup |
212 | { | 206 | { |
213 | Folder folder("sink.dummy.instance1"); | 207 | Folder folder("sink.dummy.instance1"); |
214 | Sink::Store::create<Folder>(folder).exec().waitForFinished(); | 208 | VERIFYEXEC(Sink::Store::create<Folder>(folder)); |
215 | } | 209 | } |
216 | 210 | ||
217 | // Test | 211 | // Test |
@@ -622,20 +616,14 @@ private slots: | |||
622 | resource2.setResourceType("sink.dummy"); | 616 | resource2.setResourceType("sink.dummy"); |
623 | VERIFYEXEC(Store::create(resource2)); | 617 | VERIFYEXEC(Store::create(resource2)); |
624 | 618 | ||
625 | Folder folder1(resource1.identifier()); | 619 | VERIFYEXEC(Sink::Store::create<Folder>(Folder{resource1.identifier()})); |
626 | VERIFYEXEC(Sink::Store::create<Folder>(folder1)); | 620 | VERIFYEXEC(Sink::Store::create<Folder>(Folder{resource2.identifier()})); |
627 | Folder folder2(resource2.identifier()); | ||
628 | VERIFYEXEC(Sink::Store::create<Folder>(folder2)); | ||
629 | 621 | ||
630 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << resource1.identifier())); | 622 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(resource1.identifier())); |
631 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << resource2.identifier())); | 623 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(resource2.identifier())); |
632 | |||
633 | // Test | ||
634 | Sink::Query query; | ||
635 | query.resourceContainsFilter<SinkResource::Capabilities>("cap1"); | ||
636 | 624 | ||
637 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data | 625 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data |
638 | auto folders = Sink::Store::read<Folder>(query); | 626 | auto folders = Sink::Store::read<Folder>(Sink::Query{}.resourceContainsFilter<SinkResource::Capabilities>("cap1")); |
639 | QCOMPARE(folders.size(), 1); | 627 | QCOMPARE(folders.size(), 1); |
640 | } | 628 | } |
641 | 629 | ||
@@ -1063,30 +1051,18 @@ private slots: | |||
1063 | QDateTime now{QDate{2017, 2, 3}, QTime{10, 0, 0}}; | 1051 | QDateTime now{QDate{2017, 2, 3}, QTime{10, 0, 0}}; |
1064 | QDateTime later{QDate{2017, 2, 3}, QTime{11, 0, 0}}; | 1052 | QDateTime later{QDate{2017, 2, 3}, QTime{11, 0, 0}}; |
1065 | 1053 | ||
1066 | { | 1054 | auto createMail = [] (const QByteArray &messageid, const Folder &folder, const QDateTime &date, bool important) { |
1067 | auto mail1 = Mail::createEntity<Mail>("sink.dummy.instance1"); | 1055 | auto mail = Mail::createEntity<Mail>("sink.dummy.instance1"); |
1068 | mail1.setExtractedMessageId("mail1"); | 1056 | mail.setExtractedMessageId(messageid); |
1069 | mail1.setFolder(folder1); | 1057 | mail.setFolder(folder); |
1070 | mail1.setExtractedDate(now); | 1058 | mail.setExtractedDate(date); |
1071 | mail1.setImportant(false); | 1059 | mail.setImportant(important); |
1072 | VERIFYEXEC(Sink::Store::create(mail1)); | 1060 | return mail; |
1073 | } | 1061 | }; |
1074 | { | 1062 | |
1075 | auto mail2 = Mail::createEntity<Mail>("sink.dummy.instance1"); | 1063 | VERIFYEXEC(Sink::Store::create(createMail("mail1", folder1, now, false))); |
1076 | mail2.setExtractedMessageId("mail2"); | 1064 | VERIFYEXEC(Sink::Store::create(createMail("mail2", folder1, earlier, false))); |
1077 | mail2.setFolder(folder1); | 1065 | VERIFYEXEC(Sink::Store::create(createMail("mail3", folder1, later, true))); |
1078 | mail2.setExtractedDate(earlier); | ||
1079 | mail2.setImportant(false); | ||
1080 | VERIFYEXEC(Sink::Store::create(mail2)); | ||
1081 | } | ||
1082 | { | ||
1083 | auto mail3 = Mail::createEntity<Mail>("sink.dummy.instance1"); | ||
1084 | mail3.setExtractedMessageId("mail3"); | ||
1085 | mail3.setFolder(folder1); | ||
1086 | mail3.setExtractedDate(later); | ||
1087 | mail3.setImportant(true); | ||
1088 | VERIFYEXEC(Sink::Store::create(mail3)); | ||
1089 | } | ||
1090 | 1066 | ||
1091 | // Ensure all local data is processed | 1067 | // Ensure all local data is processed |
1092 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1")); | 1068 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1")); |