From 7bd184460952932a237dc6f8bea7a8cd220afadf Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 27 Jul 2015 23:00:23 +0200 Subject: Abstracted the storage so the facade can be tested. --- tests/genericfacadetest.cpp | 80 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 tests/genericfacadetest.cpp (limited to 'tests/genericfacadetest.cpp') diff --git a/tests/genericfacadetest.cpp b/tests/genericfacadetest.cpp new file mode 100644 index 0000000..fa086d1 --- /dev/null +++ b/tests/genericfacadetest.cpp @@ -0,0 +1,80 @@ +#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" -- cgit v1.2.3