summaryrefslogtreecommitdiffstats
path: root/tests/querytest.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-10-05 20:07:53 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-10-05 20:07:53 +0200
commit94829f17066dcbbeb9f641a4870dd88aa916ba24 (patch)
treecef0fef888e999cc840bbe90a9c155eae1b0890c /tests/querytest.cpp
parente470f65cad943f8a3065c6f5f6287adcc704627e (diff)
downloadsink-94829f17066dcbbeb9f641a4870dd88aa916ba24.tar.gz
sink-94829f17066dcbbeb9f641a4870dd88aa916ba24.zip
A better resource filter api
Diffstat (limited to 'tests/querytest.cpp')
-rw-r--r--tests/querytest.cpp62
1 files changed, 31 insertions, 31 deletions
diff --git a/tests/querytest.cpp b/tests/querytest.cpp
index db17026..e978787 100644
--- a/tests/querytest.cpp
+++ b/tests/querytest.cpp
@@ -49,7 +49,7 @@ private slots:
49 { 49 {
50 // Test 50 // Test
51 Sink::Query query; 51 Sink::Query query;
52 query.resources << "foobar"; 52 query.resourceFilter("foobar");
53 query.liveQuery = true; 53 query.liveQuery = true;
54 54
55 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data 55 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data
@@ -69,7 +69,7 @@ private slots:
69 69
70 // Test 70 // Test
71 Sink::Query query; 71 Sink::Query query;
72 query.resources << "sink.dummy.instance1"; 72 query.resourceFilter("sink.dummy.instance1");
73 query.liveQuery = true; 73 query.liveQuery = true;
74 74
75 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data 75 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data
@@ -87,11 +87,11 @@ private slots:
87 87
88 // Test 88 // Test
89 Sink::Query query; 89 Sink::Query query;
90 query.resources << "sink.dummy.instance1"; 90 query.resourceFilter("sink.dummy.instance1");
91 query.liveQuery = false; 91 query.liveQuery = false;
92 92
93 // Ensure all local data is processed 93 // Ensure all local data is processed
94 Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); 94 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
95 95
96 // We fetch after the data is available and don't rely on the live query mechanism to deliver the actual data 96 // We fetch after the data is available and don't rely on the live query mechanism to deliver the actual data
97 auto model = Sink::Store::loadModel<Mail>(query); 97 auto model = Sink::Store::loadModel<Mail>(query);
@@ -118,7 +118,7 @@ private slots:
118 118
119 // Test 119 // Test
120 Sink::Query query; 120 Sink::Query query;
121 query.resources << "sink.dummy.instance1"; 121 query.resourceFilter("sink.dummy.instance1");
122 query.liveQuery = true; 122 query.liveQuery = true;
123 query.filter<Mail::Folder>("folder1"); 123 query.filter<Mail::Folder>("folder1");
124 124
@@ -150,7 +150,7 @@ private slots:
150 Sink::Store::create<Mail>(mail).exec().waitForFinished(); 150 Sink::Store::create<Mail>(mail).exec().waitForFinished();
151 151
152 Sink::Query query; 152 Sink::Query query;
153 query.resources << "sink.dummy.instance1"; 153 query.resourceFilter("sink.dummy.instance1");
154 154
155 // Ensure all local data is processed 155 // Ensure all local data is processed
156 Sink::Store::synchronize(query).exec().waitForFinished(); 156 Sink::Store::synchronize(query).exec().waitForFinished();
@@ -164,7 +164,7 @@ private slots:
164 164
165 // Test 165 // Test
166 Sink::Query query; 166 Sink::Query query;
167 query.filter(SinkResource("sink.dummy.instance1")); 167 query.resourceFilter("sink.dummy.instance1");
168 query.filter(id); 168 query.filter(id);
169 auto model = Sink::Store::loadModel<Mail>(query); 169 auto model = Sink::Store::loadModel<Mail>(query);
170 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); 170 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool());
@@ -181,7 +181,7 @@ private slots:
181 181
182 // Test 182 // Test
183 Sink::Query query; 183 Sink::Query query;
184 query.resources << "sink.dummy.instance1"; 184 query.resourceFilter("sink.dummy.instance1");
185 query.liveQuery = true; 185 query.liveQuery = true;
186 186
187 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data 187 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data
@@ -199,10 +199,10 @@ private slots:
199 Sink::Store::create<Folder>(folder).exec().waitForFinished(); 199 Sink::Store::create<Folder>(folder).exec().waitForFinished();
200 200
201 Sink::Query query; 201 Sink::Query query;
202 query.resources << "sink.dummy.instance1"; 202 query.resourceFilter("sink.dummy.instance1");
203 203
204 // Ensure all local data is processed 204 // Ensure all local data is processed
205 Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); 205 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
206 206
207 auto model = Sink::Store::loadModel<Folder>(query); 207 auto model = Sink::Store::loadModel<Folder>(query);
208 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); 208 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool());
@@ -218,11 +218,11 @@ private slots:
218 218
219 // Test 219 // Test
220 Sink::Query query; 220 Sink::Query query;
221 query.resources << "sink.dummy.instance1"; 221 query.resourceFilter("sink.dummy.instance1");
222 query.parentProperty = "parent"; 222 query.parentProperty = "parent";
223 223
224 // Ensure all local data is processed 224 // Ensure all local data is processed
225 Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); 225 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
226 226
227 // We fetch after the data is available and don't rely on the live query mechanism to deliver the actual data 227 // We fetch after the data is available and don't rely on the live query mechanism to deliver the actual data
228 auto model = Sink::Store::loadModel<Folder>(query); 228 auto model = Sink::Store::loadModel<Folder>(query);
@@ -252,12 +252,12 @@ private slots:
252 252
253 // Test 253 // Test
254 Sink::Query query; 254 Sink::Query query;
255 query.resources << "sink.dummy.instance1"; 255 query.resourceFilter("sink.dummy.instance1");
256 query.liveQuery = false; 256 query.liveQuery = false;
257 query.filter<Mail::Uid>("test1"); 257 query.filter<Mail::Uid>("test1");
258 258
259 // Ensure all local data is processed 259 // Ensure all local data is processed
260 Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); 260 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
261 261
262 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data 262 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data
263 auto model = Sink::Store::loadModel<Mail>(query); 263 auto model = Sink::Store::loadModel<Mail>(query);
@@ -274,10 +274,10 @@ private slots:
274 Sink::Store::create<Folder>(folder).exec().waitForFinished(); 274 Sink::Store::create<Folder>(folder).exec().waitForFinished();
275 275
276 Sink::Query query; 276 Sink::Query query;
277 query.resources << "sink.dummy.instance1"; 277 query.resourceFilter("sink.dummy.instance1");
278 278
279 // Ensure all local data is processed 279 // Ensure all local data is processed
280 Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); 280 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
281 281
282 auto model = Sink::Store::loadModel<Folder>(query); 282 auto model = Sink::Store::loadModel<Folder>(query);
283 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); 283 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool());
@@ -294,11 +294,11 @@ private slots:
294 294
295 // Test 295 // Test
296 Sink::Query query; 296 Sink::Query query;
297 query.resources << "sink.dummy.instance1"; 297 query.resourceFilter("sink.dummy.instance1");
298 query.filter<Mail::Folder>(*folderEntity); 298 query.filter<Mail::Folder>(*folderEntity);
299 299
300 // Ensure all local data is processed 300 // Ensure all local data is processed
301 Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); 301 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
302 302
303 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data 303 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data
304 auto model = Sink::Store::loadModel<Mail>(query); 304 auto model = Sink::Store::loadModel<Mail>(query);
@@ -318,10 +318,10 @@ private slots:
318 Sink::Store::create<Folder>(folder).exec().waitForFinished(); 318 Sink::Store::create<Folder>(folder).exec().waitForFinished();
319 319
320 Sink::Query query; 320 Sink::Query query;
321 query.resources << "sink.dummy.instance1"; 321 query.resourceFilter("sink.dummy.instance1");
322 322
323 // Ensure all local data is processed 323 // Ensure all local data is processed
324 Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); 324 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
325 325
326 auto model = Sink::Store::loadModel<Folder>(query); 326 auto model = Sink::Store::loadModel<Folder>(query);
327 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); 327 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool());
@@ -348,12 +348,12 @@ private slots:
348 348
349 // Test 349 // Test
350 Sink::Query query; 350 Sink::Query query;
351 query.resources << "sink.dummy.instance1"; 351 query.resourceFilter("sink.dummy.instance1");
352 query.filter<Mail::Folder>(*folderEntity); 352 query.filter<Mail::Folder>(*folderEntity);
353 query.filter<Mail::Uid>("test1"); 353 query.filter<Mail::Uid>("test1");
354 354
355 // Ensure all local data is processed 355 // Ensure all local data is processed
356 Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); 356 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
357 357
358 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data 358 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data
359 auto model = Sink::Store::loadModel<Mail>(query); 359 auto model = Sink::Store::loadModel<Mail>(query);
@@ -370,10 +370,10 @@ private slots:
370 Sink::Store::create<Folder>(folder).exec().waitForFinished(); 370 Sink::Store::create<Folder>(folder).exec().waitForFinished();
371 371
372 Sink::Query query; 372 Sink::Query query;
373 query.resources << "sink.dummy.instance1"; 373 query.resourceFilter("sink.dummy.instance1");
374 374
375 // Ensure all local data is processed 375 // Ensure all local data is processed
376 Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); 376 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
377 377
378 auto model = Sink::Store::loadModel<Folder>(query); 378 auto model = Sink::Store::loadModel<Folder>(query);
379 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); 379 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool());
@@ -408,14 +408,14 @@ private slots:
408 408
409 // Test 409 // Test
410 Sink::Query query; 410 Sink::Query query;
411 query.filter(SinkResource("sink.dummy.instance1")); 411 query.resourceFilter("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;
415 query.liveQuery = false; 415 query.liveQuery = false;
416 416
417 // Ensure all local data is processed 417 // Ensure all local data is processed
418 Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); 418 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
419 419
420 auto model = Sink::Store::loadModel<Mail>(query); 420 auto model = Sink::Store::loadModel<Mail>(query);
421 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); 421 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool());
@@ -485,7 +485,7 @@ private slots:
485 485
486 // Test 486 // Test
487 Sink::Query query; 487 Sink::Query query;
488 query.filter(account1); 488 query.resourceFilter<SinkResource::Account>(account1);
489 489
490 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data 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); 491 auto folders = Sink::Store::read<Folder>(query);
@@ -517,7 +517,7 @@ private slots:
517 } 517 }
518 518
519 // Ensure all local data is processed 519 // Ensure all local data is processed
520 Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1").exec().waitForFinished(); 520 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1"));
521 521
522 //Setup two folders with a mail each, ensure we only get the mail from the folder that matches the folder filter. 522 //Setup two folders with a mail each, ensure we only get the mail from the folder that matches the folder filter.
523 Query query; 523 Query query;
@@ -538,12 +538,12 @@ private slots:
538 auto resource1 = ApplicationDomainType::createEntity<SinkResource>(); 538 auto resource1 = ApplicationDomainType::createEntity<SinkResource>();
539 resource1.setResourceType("sink.dummy"); 539 resource1.setResourceType("sink.dummy");
540 resource1.setCapabilities(QByteArrayList() << "cap1"); 540 resource1.setCapabilities(QByteArrayList() << "cap1");
541 Store::create(resource1).exec().waitForFinished(); 541 VERIFYEXEC(Store::create(resource1));
542 542
543 auto resource2 = ApplicationDomainType::createEntity<SinkResource>(); 543 auto resource2 = ApplicationDomainType::createEntity<SinkResource>();
544 resource2.setCapabilities(QByteArrayList() << "cap2"); 544 resource2.setCapabilities(QByteArrayList() << "cap2");
545 resource2.setResourceType("sink.dummy"); 545 resource2.setResourceType("sink.dummy");
546 Store::create(resource2).exec().waitForFinished(); 546 VERIFYEXEC(Store::create(resource2));
547 547
548 Folder folder1(resource1.identifier()); 548 Folder folder1(resource1.identifier());
549 VERIFYEXEC(Sink::Store::create<Folder>(folder1)); 549 VERIFYEXEC(Sink::Store::create<Folder>(folder1));
@@ -552,7 +552,7 @@ private slots:
552 552
553 // Test 553 // Test
554 Sink::Query query; 554 Sink::Query query;
555 query.filter<Folder::Resource>(Sink::Query().containsFilter<SinkResource::Capabilities>("cap1")); 555 query.resourceContainsFilter<SinkResource::Capabilities>("cap1");
556 556
557 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data 557 // We fetch before the data is available and rely on the live query mechanism to deliver the actual data
558 auto folders = Sink::Store::read<Folder>(query); 558 auto folders = Sink::Store::read<Folder>(query);