summaryrefslogtreecommitdiffstats
path: root/tests/querytest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/querytest.cpp')
-rw-r--r--tests/querytest.cpp76
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"));