summaryrefslogtreecommitdiffstats
path: root/tests/querytest.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-09-29 18:17:10 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-09-29 18:17:10 +0200
commit48ba18c92eede967afc4cf8894a3b06fd6a3c179 (patch)
tree523dcf9787b3e298f6b5b886b4aa47288709f6da /tests/querytest.cpp
parenta2c4c1ea5c948aeb66484dd002ae99d6ec4063c5 (diff)
downloadsink-48ba18c92eede967afc4cf8894a3b06fd6a3c179.tar.gz
sink-48ba18c92eede967afc4cf8894a3b06fd6a3c179.zip
Account filter test
Diffstat (limited to 'tests/querytest.cpp')
-rw-r--r--tests/querytest.cpp53
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
450QTEST_MAIN(QueryTest) 497QTEST_MAIN(QueryTest)