summaryrefslogtreecommitdiffstats
path: root/tests/clientapitest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/clientapitest.cpp')
-rw-r--r--tests/clientapitest.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/clientapitest.cpp b/tests/clientapitest.cpp
index 78e1d1e..86150ee 100644
--- a/tests/clientapitest.cpp
+++ b/tests/clientapitest.cpp
@@ -33,6 +33,7 @@ public:
33 KAsync::Job<void> create(const T &domainObject) Q_DECL_OVERRIDE { return KAsync::null<void>(); }; 33 KAsync::Job<void> create(const T &domainObject) Q_DECL_OVERRIDE { return KAsync::null<void>(); };
34 KAsync::Job<void> modify(const T &domainObject) Q_DECL_OVERRIDE { return KAsync::null<void>(); }; 34 KAsync::Job<void> modify(const T &domainObject) Q_DECL_OVERRIDE { return KAsync::null<void>(); };
35 KAsync::Job<void> remove(const T &domainObject) Q_DECL_OVERRIDE { return KAsync::null<void>(); }; 35 KAsync::Job<void> remove(const T &domainObject) Q_DECL_OVERRIDE { return KAsync::null<void>(); };
36 KAsync::Job<void> inspect(const Akonadi2::Inspection &) Q_DECL_OVERRIDE { return KAsync::null<void>(); };
36 QPair<KAsync::Job<void>, typename Akonadi2::ResultEmitter<typename T::Ptr>::Ptr > load(const Akonadi2::Query &query) Q_DECL_OVERRIDE 37 QPair<KAsync::Job<void>, typename Akonadi2::ResultEmitter<typename T::Ptr>::Ptr > load(const Akonadi2::Query &query) Q_DECL_OVERRIDE
37 { 38 {
38 auto resultProvider = new Akonadi2::ResultProvider<typename T::Ptr>(); 39 auto resultProvider = new Akonadi2::ResultProvider<typename T::Ptr>();
@@ -265,9 +266,38 @@ private Q_SLOTS:
265 Akonadi2::Query query; 266 Akonadi2::Query query;
266 query.liveQuery = false; 267 query.liveQuery = false;
267 268
269 int childrenFetchedCount = 0;
268 auto model = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Event>(query); 270 auto model = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Event>(query);
271 QObject::connect(model.data(), &QAbstractItemModel::dataChanged, [&childrenFetchedCount](const QModelIndex &, const QModelIndex &, const QVector<int> &roles) {
272 if (roles.contains(Akonadi2::Store::ChildrenFetchedRole)) {
273 childrenFetchedCount++;
274 }
275 });
269 QTRY_VERIFY(model->data(QModelIndex(), Akonadi2::Store::ChildrenFetchedRole).toBool()); 276 QTRY_VERIFY(model->data(QModelIndex(), Akonadi2::Store::ChildrenFetchedRole).toBool());
270 QCOMPARE(model->rowCount(QModelIndex()), 2); 277 QCOMPARE(model->rowCount(QModelIndex()), 2);
278 //Ensure children fetched is only emitted once (when all resources are done)
279 QTest::qWait(50);
280 QCOMPARE(childrenFetchedCount, 1);
281 }
282
283 void testImperativeLoad()
284 {
285 auto facade = DummyResourceFacade<Akonadi2::ApplicationDomain::Event>::registerFacade();
286 facade->results << QSharedPointer<Akonadi2::ApplicationDomain::Event>::create("resource", "id", 0, QSharedPointer<Akonadi2::ApplicationDomain::MemoryBufferAdaptor>::create());
287 ResourceConfig::addResource("dummyresource.instance1", "dummyresource");
288
289 Akonadi2::Query query;
290 query.resources << "dummyresource.instance1";
291 query.liveQuery = false;
292
293 bool gotValue = false;
294 auto result = Akonadi2::Store::fetchOne<Akonadi2::ApplicationDomain::Event>(query)
295 .then<void, Akonadi2::ApplicationDomain::Event>([&gotValue](const Akonadi2::ApplicationDomain::Event &event) {
296 gotValue = true;
297 }).exec();
298 result.waitForFinished();
299 QVERIFY(!result.errorCode());
300 QVERIFY(gotValue);
271 } 301 }
272 302
273 303