#include #include #include #include #include #include //Replace with something different #include "event_generated.h" class TestEventAdaptorFactory : public DomainTypeAdaptorFactory { public: TestEventAdaptorFactory() : DomainTypeAdaptorFactory() { } virtual ~TestEventAdaptorFactory() {}; }; class TestEntityStorage : public EntityStorage { public: using EntityStorage::EntityStorage; virtual void read(const Akonadi2::Query &query, const QPair &revisionRange, const QSharedPointer > &resultProvider) Q_DECL_OVERRIDE { for (const auto &res : mResults) { resultProvider->add(res); } } QList mResults; }; class TestResourceFacade : public Akonadi2::GenericFacade { public: TestResourceFacade(const QByteArray &instanceIdentifier, const QSharedPointer > storage) : Akonadi2::GenericFacade(instanceIdentifier, QSharedPointer::create(), storage) { } virtual ~TestResourceFacade() { } }; class GenericFacadeTest : public QObject { Q_OBJECT private Q_SLOTS: void testLoad() { Akonadi2::Query query; query.liveQuery = false; auto resultSet = QSharedPointer >::create(); auto storage = QSharedPointer::create("identifier", QSharedPointer::create()); storage->mResults << Akonadi2::ApplicationDomain::Event::Ptr::create(); TestResourceFacade facade("identifier", storage); async::SyncListResult result(resultSet->emitter()); facade.load(query, resultSet).exec().waitForFinished(); resultSet->initialResultSetComplete(); //We have to wait for the events that deliver the results to be processed by the eventloop result.exec(); QCOMPARE(result.size(), 1); } }; QTEST_MAIN(GenericFacadeTest) #include "genericfacadetest.moc"