diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-12-08 13:18:19 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-12-08 13:18:19 +0100 |
commit | ae4b64b198a143240aa5dd1e202e5016abfdae71 (patch) | |
tree | 5d9d58a512ebc60c44637d11c9424f67a02887e8 /tests/querytest.cpp | |
parent | f425c2070131161dc11bcf70e35f8d1848cadb65 (diff) | |
download | sink-ae4b64b198a143240aa5dd1e202e5016abfdae71.tar.gz sink-ae4b64b198a143240aa5dd1e202e5016abfdae71.zip |
Wrap references in a Reerence type.
This allows us to make sure that references are not taken out of
context (the resource).
Because we need to use the type-specific accessors more we also ran into
a problem that we cannot "downcast" a reference with the change
recording still working, for that we have the cast<T>() operator now.
Diffstat (limited to 'tests/querytest.cpp')
-rw-r--r-- | tests/querytest.cpp | 60 |
1 files changed, 24 insertions, 36 deletions
diff --git a/tests/querytest.cpp b/tests/querytest.cpp index 2eb1239..574e68d 100644 --- a/tests/querytest.cpp +++ b/tests/querytest.cpp | |||
@@ -228,25 +228,13 @@ private slots: | |||
228 | { | 228 | { |
229 | // Setup | 229 | // Setup |
230 | { | 230 | { |
231 | Folder folder("sink.dummy.instance1"); | 231 | auto folder = ApplicationDomainType::createEntity<Folder>("sink.dummy.instance1"); |
232 | Sink::Store::create<Folder>(folder).exec().waitForFinished(); | 232 | VERIFYEXEC(Sink::Store::create<Folder>(folder)); |
233 | 233 | auto subfolder = ApplicationDomainType::createEntity<Folder>("sink.dummy.instance1"); | |
234 | Sink::Query query; | 234 | subfolder.setParent(folder.identifier()); |
235 | query.resourceFilter("sink.dummy.instance1"); | 235 | VERIFYEXEC(Sink::Store::create<Folder>(subfolder)); |
236 | |||
237 | // Ensure all local data is processed | 236 | // Ensure all local data is processed |
238 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); | 237 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
239 | |||
240 | auto model = Sink::Store::loadModel<Folder>(query); | ||
241 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | ||
242 | QCOMPARE(model->rowCount(), 1); | ||
243 | |||
244 | auto folderEntity = model->index(0, 0).data(Sink::Store::DomainObjectRole).value<Folder::Ptr>(); | ||
245 | QVERIFY(!folderEntity->identifier().isEmpty()); | ||
246 | |||
247 | Folder subfolder("sink.dummy.instance1"); | ||
248 | subfolder.setProperty("parent", folderEntity->identifier()); | ||
249 | Sink::Store::create<Folder>(subfolder).exec().waitForFinished(); | ||
250 | } | 238 | } |
251 | 239 | ||
252 | // Test | 240 | // Test |
@@ -271,14 +259,14 @@ private slots: | |||
271 | // Setup | 259 | // Setup |
272 | { | 260 | { |
273 | Mail mail("sink.dummy.instance1"); | 261 | Mail mail("sink.dummy.instance1"); |
274 | mail.setProperty("uid", "test1"); | 262 | mail.setUid("test1"); |
275 | mail.setProperty("sender", "doe@example.org"); | 263 | mail.setProperty("sender", "doe@example.org"); |
276 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 264 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); |
277 | } | 265 | } |
278 | 266 | ||
279 | { | 267 | { |
280 | Mail mail("sink.dummy.instance1"); | 268 | Mail mail("sink.dummy.instance1"); |
281 | mail.setProperty("uid", "test2"); | 269 | mail.setUid("test2"); |
282 | mail.setProperty("sender", "doe@example.org"); | 270 | mail.setProperty("sender", "doe@example.org"); |
283 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 271 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); |
284 | } | 272 | } |
@@ -319,8 +307,8 @@ private slots: | |||
319 | QVERIFY(!folderEntity->identifier().isEmpty()); | 307 | QVERIFY(!folderEntity->identifier().isEmpty()); |
320 | 308 | ||
321 | Mail mail("sink.dummy.instance1"); | 309 | Mail mail("sink.dummy.instance1"); |
322 | mail.setProperty("uid", "test1"); | 310 | mail.setUid("test1"); |
323 | mail.setProperty("folder", folderEntity->identifier()); | 311 | mail.setFolder(folderEntity->identifier()); |
324 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 312 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); |
325 | } | 313 | } |
326 | 314 | ||
@@ -363,18 +351,18 @@ private slots: | |||
363 | QVERIFY(!folderEntity->identifier().isEmpty()); | 351 | QVERIFY(!folderEntity->identifier().isEmpty()); |
364 | 352 | ||
365 | Mail mail("sink.dummy.instance1"); | 353 | Mail mail("sink.dummy.instance1"); |
366 | mail.setProperty("uid", "test1"); | 354 | mail.setUid("test1"); |
367 | mail.setProperty("folder", folderEntity->identifier()); | 355 | mail.setFolder(folderEntity->identifier()); |
368 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 356 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); |
369 | 357 | ||
370 | Mail mail1("sink.dummy.instance1"); | 358 | Mail mail1("sink.dummy.instance1"); |
371 | mail1.setProperty("uid", "test1"); | 359 | mail1.setUid("test1"); |
372 | mail1.setProperty("folder", "foobar"); | 360 | mail1.setFolder("foobar"); |
373 | Sink::Store::create<Mail>(mail1).exec().waitForFinished(); | 361 | Sink::Store::create<Mail>(mail1).exec().waitForFinished(); |
374 | 362 | ||
375 | Mail mail2("sink.dummy.instance1"); | 363 | Mail mail2("sink.dummy.instance1"); |
376 | mail2.setProperty("uid", "test2"); | 364 | mail2.setUid("test2"); |
377 | mail2.setProperty("folder", folderEntity->identifier()); | 365 | mail2.setFolder(folderEntity->identifier()); |
378 | Sink::Store::create<Mail>(mail2).exec().waitForFinished(); | 366 | Sink::Store::create<Mail>(mail2).exec().waitForFinished(); |
379 | } | 367 | } |
380 | 368 | ||
@@ -417,23 +405,23 @@ private slots: | |||
417 | const auto date = QDateTime(QDate(2015, 7, 7), QTime(12, 0)); | 405 | const auto date = QDateTime(QDate(2015, 7, 7), QTime(12, 0)); |
418 | { | 406 | { |
419 | Mail mail("sink.dummy.instance1"); | 407 | Mail mail("sink.dummy.instance1"); |
420 | mail.setProperty("uid", "testSecond"); | 408 | mail.setUid("testSecond"); |
421 | mail.setProperty("folder", folderEntity->identifier()); | 409 | mail.setFolder(folderEntity->identifier()); |
422 | mail.setProperty("date", date.addDays(-1)); | 410 | mail.setExtractedDate(date.addDays(-1)); |
423 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 411 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); |
424 | } | 412 | } |
425 | { | 413 | { |
426 | Mail mail("sink.dummy.instance1"); | 414 | Mail mail("sink.dummy.instance1"); |
427 | mail.setProperty("uid", "testLatest"); | 415 | mail.setUid("testLatest"); |
428 | mail.setProperty("folder", folderEntity->identifier()); | 416 | mail.setFolder(folderEntity->identifier()); |
429 | mail.setProperty("date", date); | 417 | mail.setExtractedDate(date); |
430 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 418 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); |
431 | } | 419 | } |
432 | { | 420 | { |
433 | Mail mail("sink.dummy.instance1"); | 421 | Mail mail("sink.dummy.instance1"); |
434 | mail.setProperty("uid", "testLast"); | 422 | mail.setUid("testLast"); |
435 | mail.setProperty("folder", folderEntity->identifier()); | 423 | mail.setFolder(folderEntity->identifier()); |
436 | mail.setProperty("date", date.addDays(-2)); | 424 | mail.setExtractedDate(date.addDays(-2)); |
437 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 425 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); |
438 | } | 426 | } |
439 | } | 427 | } |