diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-10-05 20:07:53 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-10-05 20:07:53 +0200 |
commit | 94829f17066dcbbeb9f641a4870dd88aa916ba24 (patch) | |
tree | cef0fef888e999cc840bbe90a9c155eae1b0890c /tests/mailsynctest.cpp | |
parent | e470f65cad943f8a3065c6f5f6287adcc704627e (diff) | |
download | sink-94829f17066dcbbeb9f641a4870dd88aa916ba24.tar.gz sink-94829f17066dcbbeb9f641a4870dd88aa916ba24.zip |
A better resource filter api
Diffstat (limited to 'tests/mailsynctest.cpp')
-rw-r--r-- | tests/mailsynctest.cpp | 68 |
1 files changed, 34 insertions, 34 deletions
diff --git a/tests/mailsynctest.cpp b/tests/mailsynctest.cpp index 8260978..98ac685 100644 --- a/tests/mailsynctest.cpp +++ b/tests/mailsynctest.cpp | |||
@@ -81,12 +81,12 @@ void MailSyncTest::testListFolders() | |||
81 | } | 81 | } |
82 | 82 | ||
83 | Sink::Query query; | 83 | Sink::Query query; |
84 | query.resources << mResourceInstanceIdentifier; | 84 | query.resourceFilter(mResourceInstanceIdentifier); |
85 | query.request<Folder::Name>().request<Folder::SpecialPurpose>(); | 85 | query.request<Folder::Name>().request<Folder::SpecialPurpose>(); |
86 | 86 | ||
87 | // Ensure all local data is processed | 87 | // Ensure all local data is processed |
88 | VERIFYEXEC(Store::synchronize(query)); | 88 | VERIFYEXEC(Store::synchronize(query)); |
89 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 89 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
90 | 90 | ||
91 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { | 91 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { |
92 | QStringList names; | 92 | QStringList names; |
@@ -121,14 +121,14 @@ void MailSyncTest::testListFolders() | |||
121 | void MailSyncTest::testListNewFolder() | 121 | void MailSyncTest::testListNewFolder() |
122 | { | 122 | { |
123 | Sink::Query query; | 123 | Sink::Query query; |
124 | query.resources << mResourceInstanceIdentifier; | 124 | query.resourceFilter(mResourceInstanceIdentifier); |
125 | query.request<Folder::Name>(); | 125 | query.request<Folder::Name>(); |
126 | 126 | ||
127 | createFolder(QStringList() << "test2"); | 127 | createFolder(QStringList() << "test2"); |
128 | 128 | ||
129 | // Ensure all local data is processed | 129 | // Ensure all local data is processed |
130 | VERIFYEXEC(Store::synchronize(query)); | 130 | VERIFYEXEC(Store::synchronize(query)); |
131 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 131 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
132 | 132 | ||
133 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { | 133 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { |
134 | QStringList names; | 134 | QStringList names; |
@@ -143,17 +143,17 @@ void MailSyncTest::testListNewFolder() | |||
143 | void MailSyncTest::testListRemovedFolder() | 143 | void MailSyncTest::testListRemovedFolder() |
144 | { | 144 | { |
145 | Sink::Query query; | 145 | Sink::Query query; |
146 | query.resources << mResourceInstanceIdentifier; | 146 | query.resourceFilter(mResourceInstanceIdentifier); |
147 | query.request<Folder::Name>(); | 147 | query.request<Folder::Name>(); |
148 | 148 | ||
149 | VERIFYEXEC(Store::synchronize(query)); | 149 | VERIFYEXEC(Store::synchronize(query)); |
150 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 150 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
151 | 151 | ||
152 | removeFolder(QStringList() << "test2"); | 152 | removeFolder(QStringList() << "test2"); |
153 | 153 | ||
154 | // Ensure all local data is processed | 154 | // Ensure all local data is processed |
155 | VERIFYEXEC(Store::synchronize(query)); | 155 | VERIFYEXEC(Store::synchronize(query)); |
156 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 156 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
157 | 157 | ||
158 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { | 158 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { |
159 | QStringList names; | 159 | QStringList names; |
@@ -171,14 +171,14 @@ void MailSyncTest::testListFolderHierarchy() | |||
171 | QSKIP("Missing capability folder.hierarchy"); | 171 | QSKIP("Missing capability folder.hierarchy"); |
172 | } | 172 | } |
173 | Sink::Query query; | 173 | Sink::Query query; |
174 | query.resources << mResourceInstanceIdentifier; | 174 | query.resourceFilter(mResourceInstanceIdentifier); |
175 | query.request<Folder::Name>().request<Folder::Parent>(); | 175 | query.request<Folder::Name>().request<Folder::Parent>(); |
176 | 176 | ||
177 | createFolder(QStringList() << "test" << "sub"); | 177 | createFolder(QStringList() << "test" << "sub"); |
178 | 178 | ||
179 | // Ensure all local data is processed | 179 | // Ensure all local data is processed |
180 | VERIFYEXEC(Store::synchronize(query)); | 180 | VERIFYEXEC(Store::synchronize(query)); |
181 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 181 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
182 | 182 | ||
183 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { | 183 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { |
184 | QHash<QString, Folder::Ptr> map; | 184 | QHash<QString, Folder::Ptr> map; |
@@ -214,14 +214,14 @@ void MailSyncTest::testListNewSubFolder() | |||
214 | QSKIP("Missing capability mail.folderhierarchy"); | 214 | QSKIP("Missing capability mail.folderhierarchy"); |
215 | } | 215 | } |
216 | Sink::Query query; | 216 | Sink::Query query; |
217 | query.resources << mResourceInstanceIdentifier; | 217 | query.resourceFilter(mResourceInstanceIdentifier); |
218 | query.request<Folder::Name>(); | 218 | query.request<Folder::Name>(); |
219 | 219 | ||
220 | createFolder(QStringList() << "test" << "sub1"); | 220 | createFolder(QStringList() << "test" << "sub1"); |
221 | 221 | ||
222 | // Ensure all local data is processed | 222 | // Ensure all local data is processed |
223 | VERIFYEXEC(Store::synchronize(query)); | 223 | VERIFYEXEC(Store::synchronize(query)); |
224 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 224 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
225 | 225 | ||
226 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { | 226 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { |
227 | QStringList names; | 227 | QStringList names; |
@@ -239,17 +239,17 @@ void MailSyncTest::testListRemovedSubFolder() | |||
239 | QSKIP("Missing capability folder.hierarchy"); | 239 | QSKIP("Missing capability folder.hierarchy"); |
240 | } | 240 | } |
241 | Sink::Query query; | 241 | Sink::Query query; |
242 | query.resources << mResourceInstanceIdentifier; | 242 | query.resourceFilter(mResourceInstanceIdentifier); |
243 | query.request<Folder::Name>(); | 243 | query.request<Folder::Name>(); |
244 | 244 | ||
245 | VERIFYEXEC(Store::synchronize(query)); | 245 | VERIFYEXEC(Store::synchronize(query)); |
246 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 246 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
247 | 247 | ||
248 | removeFolder(QStringList() << "test" << "sub1"); | 248 | removeFolder(QStringList() << "test" << "sub1"); |
249 | 249 | ||
250 | // Ensure all local data is processed | 250 | // Ensure all local data is processed |
251 | VERIFYEXEC(Store::synchronize(query)); | 251 | VERIFYEXEC(Store::synchronize(query)); |
252 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 252 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
253 | 253 | ||
254 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { | 254 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { |
255 | QStringList names; | 255 | QStringList names; |
@@ -264,12 +264,12 @@ void MailSyncTest::testListRemovedSubFolder() | |||
264 | void MailSyncTest::testListMails() | 264 | void MailSyncTest::testListMails() |
265 | { | 265 | { |
266 | Sink::Query query; | 266 | Sink::Query query; |
267 | query.resources << mResourceInstanceIdentifier; | 267 | query.resourceFilter(mResourceInstanceIdentifier); |
268 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); | 268 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); |
269 | 269 | ||
270 | // Ensure all local data is processed | 270 | // Ensure all local data is processed |
271 | VERIFYEXEC(Store::synchronize(query)); | 271 | VERIFYEXEC(Store::synchronize(query)); |
272 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 272 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
273 | 273 | ||
274 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 274 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
275 | QCOMPARE(mails.size(), 1); | 275 | QCOMPARE(mails.size(), 1); |
@@ -290,15 +290,15 @@ void MailSyncTest::testListMails() | |||
290 | void MailSyncTest::testResyncMails() | 290 | void MailSyncTest::testResyncMails() |
291 | { | 291 | { |
292 | Sink::Query query; | 292 | Sink::Query query; |
293 | query.resources << mResourceInstanceIdentifier; | 293 | query.resourceFilter(mResourceInstanceIdentifier); |
294 | 294 | ||
295 | // Ensure all local data is processed | 295 | // Ensure all local data is processed |
296 | VERIFYEXEC(Store::synchronize(query)); | 296 | VERIFYEXEC(Store::synchronize(query)); |
297 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 297 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
298 | 298 | ||
299 | // Ensure all local data is processed | 299 | // Ensure all local data is processed |
300 | VERIFYEXEC(Store::synchronize(query)); | 300 | VERIFYEXEC(Store::synchronize(query)); |
301 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 301 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
302 | 302 | ||
303 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 303 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
304 | QCOMPARE(mails.size(), 1); | 304 | QCOMPARE(mails.size(), 1); |
@@ -309,20 +309,20 @@ void MailSyncTest::testResyncMails() | |||
309 | void MailSyncTest::testFetchNewRemovedMessages() | 309 | void MailSyncTest::testFetchNewRemovedMessages() |
310 | { | 310 | { |
311 | Sink::Query query; | 311 | Sink::Query query; |
312 | query.resources << mResourceInstanceIdentifier; | 312 | query.resourceFilter(mResourceInstanceIdentifier); |
313 | query.request<Mail::Subject>().request<Mail::MimeMessage>(); | 313 | query.request<Mail::Subject>().request<Mail::MimeMessage>(); |
314 | 314 | ||
315 | // Ensure all local data is processed | 315 | // Ensure all local data is processed |
316 | VERIFYEXEC(Store::synchronize(query)); | 316 | VERIFYEXEC(Store::synchronize(query)); |
317 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 317 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
318 | 318 | ||
319 | auto msg = KMime::Message::Ptr::create(); | 319 | auto msg = KMime::Message::Ptr::create(); |
320 | msg->subject(true)->fromUnicodeString("Foobar", "utf8"); | 320 | msg->subject(true)->fromUnicodeString("Foobar", "utf8"); |
321 | msg->assemble(); | 321 | msg->assemble(); |
322 | auto messageIdentifier = createMessage(QStringList() << "test", msg->encodedContent(true)); | 322 | auto messageIdentifier = createMessage(QStringList() << "test", msg->encodedContent(true)); |
323 | 323 | ||
324 | Store::synchronize(query).exec().waitForFinished(); | 324 | VERIFYEXEC(Store::synchronize(query)); |
325 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 325 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
326 | 326 | ||
327 | { | 327 | { |
328 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 328 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
@@ -333,8 +333,8 @@ void MailSyncTest::testFetchNewRemovedMessages() | |||
333 | 333 | ||
334 | removeMessage(QStringList() << "test", messageIdentifier); | 334 | removeMessage(QStringList() << "test", messageIdentifier); |
335 | 335 | ||
336 | Store::synchronize(query).exec().waitForFinished(); | 336 | VERIFYEXEC(Store::synchronize(query)); |
337 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 337 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
338 | 338 | ||
339 | { | 339 | { |
340 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 340 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
@@ -347,7 +347,8 @@ void MailSyncTest::testFetchNewRemovedMessages() | |||
347 | void MailSyncTest::testFlagChange() | 347 | void MailSyncTest::testFlagChange() |
348 | { | 348 | { |
349 | Sink::Query query; | 349 | Sink::Query query; |
350 | query.resources << mResourceInstanceIdentifier; | 350 | query.resourceFilter(mResourceInstanceIdentifier); |
351 | query.filter<Mail::Important>(true); | ||
351 | query.request<Mail::Subject>().request<Mail::Important>(); | 352 | query.request<Mail::Subject>().request<Mail::Important>(); |
352 | 353 | ||
353 | auto msg = KMime::Message::Ptr::create(); | 354 | auto msg = KMime::Message::Ptr::create(); |
@@ -355,13 +356,12 @@ void MailSyncTest::testFlagChange() | |||
355 | msg->assemble(); | 356 | msg->assemble(); |
356 | auto messageIdentifier = createMessage(QStringList() << "test", msg->encodedContent(true)); | 357 | auto messageIdentifier = createMessage(QStringList() << "test", msg->encodedContent(true)); |
357 | 358 | ||
358 | Store::synchronize(query).exec().waitForFinished(); | 359 | VERIFYEXEC(Store::synchronize(query)); |
359 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 360 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
360 | 361 | ||
361 | { | 362 | { |
362 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 363 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
363 | QCOMPARE(mails.size(), 2); | 364 | QCOMPARE(mails.size(), 0); |
364 | QVERIFY(!mails.at(1)->getImportant()); | ||
365 | }); | 365 | }); |
366 | VERIFYEXEC(job); | 366 | VERIFYEXEC(job); |
367 | } | 367 | } |
@@ -370,12 +370,12 @@ void MailSyncTest::testFlagChange() | |||
370 | 370 | ||
371 | // Ensure all local data is processed | 371 | // Ensure all local data is processed |
372 | VERIFYEXEC(Store::synchronize(query)); | 372 | VERIFYEXEC(Store::synchronize(query)); |
373 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 373 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
374 | 374 | ||
375 | { | 375 | { |
376 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 376 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
377 | QCOMPARE(mails.size(), 2); | 377 | QCOMPARE(mails.size(), 1); |
378 | QVERIFY(mails.at(1)->getImportant()); | 378 | QVERIFY(mails.first()->getImportant()); |
379 | }); | 379 | }); |
380 | VERIFYEXEC(job); | 380 | VERIFYEXEC(job); |
381 | } | 381 | } |
@@ -389,7 +389,7 @@ void MailSyncTest::testFailingSync() | |||
389 | VERIFYEXEC(Store::create(resource)); | 389 | VERIFYEXEC(Store::create(resource)); |
390 | 390 | ||
391 | Sink::Query query; | 391 | Sink::Query query; |
392 | query.resources << resource.identifier(); | 392 | query.resourceFilter(resource.identifier()); |
393 | 393 | ||
394 | // Ensure sync fails if resource is misconfigured | 394 | // Ensure sync fails if resource is misconfigured |
395 | auto future = Store::synchronize(query).exec(); | 395 | auto future = Store::synchronize(query).exec(); |