summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/querytest.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/querytest.cpp b/tests/querytest.cpp
index 714e549..3b62f56 100644
--- a/tests/querytest.cpp
+++ b/tests/querytest.cpp
@@ -250,6 +250,35 @@ private slots:
250 QCOMPARE(model->rowCount(model->index(0, 0)), 1); 250 QCOMPARE(model->rowCount(model->index(0, 0)), 1);
251 } 251 }
252 252
253 void testIncrementalFolderTree()
254 {
255 // Setup
256 auto folder = ApplicationDomainType::createEntity<Folder>("sink.dummy.instance1");
257 VERIFYEXEC(Sink::Store::create<Folder>(folder));
258 // Ensure all local data is processed
259 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1"));
260
261 // Test
262 Sink::Query query{Sink::Query::LiveQuery};
263 query.resourceFilter("sink.dummy.instance1");
264 query.requestTree<Folder::Parent>();
265
266 // We fetch after the data is available and don't rely on the live query mechanism to deliver the actual data
267 auto model = Sink::Store::loadModel<Folder>(query);
268 QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool());
269 QCOMPARE(model->rowCount(), 1);
270 model->fetchMore(model->index(0, 0));
271
272 auto subfolder = ApplicationDomainType::createEntity<Folder>("sink.dummy.instance1");
273 subfolder.setParent(folder.identifier());
274 VERIFYEXEC(Sink::Store::create<Folder>(subfolder));
275 VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1"));
276
277 model->fetchMore(model->index(0, 0));
278 QTRY_VERIFY(model->data(model->index(0, 0), Sink::Store::ChildrenFetchedRole).toBool());
279 QCOMPARE(model->rowCount(model->index(0, 0)), 1);
280 }
281
253 void testMailByMessageId() 282 void testMailByMessageId()
254 { 283 {
255 // Setup 284 // Setup