diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-09-29 18:17:10 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-09-29 18:17:10 +0200 |
commit | 48ba18c92eede967afc4cf8894a3b06fd6a3c179 (patch) | |
tree | 523dcf9787b3e298f6b5b886b4aa47288709f6da /tests/querytest.cpp | |
parent | a2c4c1ea5c948aeb66484dd002ae99d6ec4063c5 (diff) | |
download | sink-48ba18c92eede967afc4cf8894a3b06fd6a3c179.tar.gz sink-48ba18c92eede967afc4cf8894a3b06fd6a3c179.zip |
Account filter test
Diffstat (limited to 'tests/querytest.cpp')
-rw-r--r-- | tests/querytest.cpp | 53 |
1 files changed, 50 insertions, 3 deletions
diff --git a/tests/querytest.cpp b/tests/querytest.cpp index be1e0f6..afa8e33 100644 --- a/tests/querytest.cpp +++ b/tests/querytest.cpp | |||
@@ -30,12 +30,12 @@ private slots: | |||
30 | auto factory = Sink::ResourceFactory::load("sink.dummy"); | 30 | auto factory = Sink::ResourceFactory::load("sink.dummy"); |
31 | QVERIFY(factory); | 31 | QVERIFY(factory); |
32 | ResourceConfig::addResource("sink.dummy.instance1", "sink.dummy"); | 32 | ResourceConfig::addResource("sink.dummy.instance1", "sink.dummy"); |
33 | Sink::Store::removeDataFromDisk(QByteArray("sink.dummy.instance1")).exec().waitForFinished(); | 33 | VERIFYEXEC(Sink::Store::removeDataFromDisk(QByteArray("sink.dummy.instance1"))); |
34 | } | 34 | } |
35 | 35 | ||
36 | void cleanup() | 36 | void cleanup() |
37 | { | 37 | { |
38 | Sink::Store::removeDataFromDisk(QByteArray("sink.dummy.instance1")).exec().waitForFinished(); | 38 | VERIFYEXEC(Sink::Store::removeDataFromDisk(QByteArray("sink.dummy.instance1"))); |
39 | } | 39 | } |
40 | 40 | ||
41 | void init() | 41 | void init() |
@@ -408,7 +408,7 @@ private slots: | |||
408 | 408 | ||
409 | // Test | 409 | // Test |
410 | Sink::Query query; | 410 | Sink::Query query; |
411 | query.resources << "sink.dummy.instance1"; | 411 | query.filter(SinkResource("sink.dummy.instance1")); |
412 | query.filter<Mail::Folder>(*folderEntity); | 412 | query.filter<Mail::Folder>(*folderEntity); |
413 | query.sort<Mail::Date>(); | 413 | query.sort<Mail::Date>(); |
414 | query.limit = 1; | 414 | query.limit = 1; |
@@ -445,6 +445,53 @@ private slots: | |||
445 | 445 | ||
446 | VERIFYEXEC(Sink::Store::remove(res)); | 446 | VERIFYEXEC(Sink::Store::remove(res)); |
447 | } | 447 | } |
448 | |||
449 | void testAccountFilter() | ||
450 | { | ||
451 | using namespace Sink; | ||
452 | using namespace Sink::ApplicationDomain; | ||
453 | |||
454 | //Setup | ||
455 | QString accountName("name"); | ||
456 | QString accountIcon("icon"); | ||
457 | auto account1 = ApplicationDomainType::createEntity<SinkAccount>(); | ||
458 | account1.setAccountType("maildir"); | ||
459 | account1.setName(accountName); | ||
460 | account1.setIcon(accountIcon); | ||
461 | VERIFYEXEC(Store::create(account1)); | ||
462 | |||
463 | auto account2 = ApplicationDomainType::createEntity<SinkAccount>(); | ||
464 | account2.setAccountType("maildir"); | ||
465 | account2.setName(accountName); | ||
466 | account2.setIcon(accountIcon); | ||
467 | VERIFYEXEC(Store::create(account2)); | ||
468 | |||
469 | auto resource1 = ApplicationDomainType::createEntity<SinkResource>(); | ||
470 | resource1.setResourceType("sink.dummy"); | ||
471 | resource1.setAccount(account1); | ||
472 | Store::create(resource1).exec().waitForFinished(); | ||
473 | |||
474 | auto resource2 = ApplicationDomainType::createEntity<SinkResource>(); | ||
475 | resource2.setResourceType("sink.dummy"); | ||
476 | resource2.setAccount(account2); | ||
477 | Store::create(resource2).exec().waitForFinished(); | ||
478 | |||
479 | { | ||
480 | Folder folder1(resource1.identifier()); | ||
481 | VERIFYEXEC(Sink::Store::create<Folder>(folder1)); | ||
482 | Folder folder2(resource2.identifier()); | ||
483 | VERIFYEXEC(Sink::Store::create<Folder>(folder2)); | ||
484 | } | ||
485 | |||
486 | // Test | ||
487 | Sink::Query query; | ||
488 | query.filter(account1); | ||
489 | |||
490 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data | ||
491 | auto folders = Sink::Store::read<Folder>(query); | ||
492 | QCOMPARE(folders.size(), 1); | ||
493 | } | ||
494 | |||
448 | }; | 495 | }; |
449 | 496 | ||
450 | QTEST_MAIN(QueryTest) | 497 | QTEST_MAIN(QueryTest) |