From 10d19014fe2c9c02f2bc3e19732cbe340e316076 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 10 Nov 2015 12:05:39 +0100 Subject: A result model The result model drives the data retrieval and provides the interace for consumers --- tests/querytest.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 tests/querytest.cpp (limited to 'tests/querytest.cpp') diff --git a/tests/querytest.cpp b/tests/querytest.cpp new file mode 100644 index 0000000..9f4b3bb --- /dev/null +++ b/tests/querytest.cpp @@ -0,0 +1,100 @@ +#include + +#include + +#include "dummyresource/resourcefactory.h" +#include "clientapi.h" +#include "synclistresult.h" +#include "commands.h" +#include "resourceconfig.h" +#include "log.h" +#include "modelresult.h" + +/** + * Test of the query system using the dummy resource. + * + * This test requires the dummy resource installed. + */ +class QueryTest : public QObject +{ + Q_OBJECT +private Q_SLOTS: + void initTestCase() + { + Akonadi2::Log::setDebugOutputLevel(Akonadi2::Log::Trace); + auto factory = Akonadi2::ResourceFactory::load("org.kde.dummy"); + QVERIFY(factory); + DummyResource::removeFromDisk("org.kde.dummy.instance1"); + ResourceConfig::addResource("org.kde.dummy.instance1", "org.kde.dummy"); + } + + void cleanup() + { + Akonadi2::Store::shutdown(QByteArray("org.kde.dummy.instance1")).exec().waitForFinished(); + DummyResource::removeFromDisk("org.kde.dummy.instance1"); + auto factory = Akonadi2::ResourceFactory::load("org.kde.dummy"); + QVERIFY(factory); + } + + void init() + { + qDebug(); + qDebug() << "-----------------------------------------"; + qDebug(); + } + + void testSingle() + { + //Setup + { + Akonadi2::ApplicationDomain::Mail mail("org.kde.dummy.instance1"); + Akonadi2::Store::create(mail).exec().waitForFinished(); + } + + //Test + Akonadi2::Query query; + query.resources << "org.kde.dummy.instance1"; + query.syncOnDemand = false; + query.processAll = true; + + auto model = new ModelResult(query, QList() << "summary" << "uid"); + model->fetchMore(QModelIndex()); + QTRY_COMPARE(model->rowCount(), 1); + } + + // void testTree() + // { + // //Setup + // { + // Akonadi2::ApplicationDomain::Folder folder("org.kde.dummy.instance1"); + // Akonadi2::Store::create(folder).exec().waitForFinished(); + // + // Akonadi2::Query query; + // query.resources << "org.kde.dummy.instance1"; + // query.syncOnDemand = false; + // query.processAll = true; + // + // auto model = new ModelResult(query, QList() << "summary" << "uid"); + // QTRY_COMPARE(model->rowCount(), 1); + // + // auto folderEntity = model->index(0, 0).data(ModelResult::DomainObjectRole).value(); + // + // Akonadi2::ApplicationDomain::Folder subfolder("org.kde.dummy.instance1"); + // subfolder.setProperty("parent", folderEntity.identifier()); + // Akonadi2::Store::create(subfolder).exec().waitForFinished(); + // } + // + // //Test + // Akonadi2::Query query; + // query.resources << "org.kde.dummy.instance1"; + // query.syncOnDemand = false; + // query.processAll = true; + // + // auto model = new ModelResult(query, QList() << "summary" << "uid"); + // QTRY_COMPARE(model->rowCount(), 1); + // QTRY_COMPARE(model->rowCount(model->index(0, 0)), 1); + // } +}; + +QTEST_MAIN(QueryTest) +#include "querytest.moc" -- cgit v1.2.3