summaryrefslogtreecommitdiffstats
path: root/client/test/clientapitest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'client/test/clientapitest.cpp')
-rw-r--r--client/test/clientapitest.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/client/test/clientapitest.cpp b/client/test/clientapitest.cpp
new file mode 100644
index 0000000..8d8f552
--- /dev/null
+++ b/client/test/clientapitest.cpp
@@ -0,0 +1,54 @@
1#include <QtTest>
2#include <QDebug>
3#include <functional>
4
5#include "../clientapi.h"
6
7class DummyResourceFacade : public Akonadi2::StoreFacade<Akonadi2::Domain::Event>
8{
9public:
10 ~DummyResourceFacade(){};
11 virtual void create(const Akonadi2::Domain::Event &domainObject){};
12 virtual void modify(const Akonadi2::Domain::Event &domainObject){};
13 virtual void remove(const Akonadi2::Domain::Event &domainObject){};
14 virtual void load(const Akonadi2::Query &query, const std::function<void(const Akonadi2::Domain::Event &)> &resultCallback)
15 {
16 qDebug() << "load called";
17 for(const auto &result : results) {
18 resultCallback(result);
19 }
20 }
21
22 QList<Akonadi2::Domain::Event> results;
23};
24
25class ClientAPITest : public QObject
26{
27 Q_OBJECT
28private Q_SLOTS:
29
30 void testLoad()
31 {
32 DummyResourceFacade facade;
33 facade.results << Akonadi2::Domain::Event();
34
35 Akonadi2::FacadeFactory::instance().registerFacade<Akonadi2::Domain::Event, DummyResourceFacade>("dummyresource", [facade](){ return new DummyResourceFacade(facade); });
36
37 Akonadi2::Query query;
38 query.resources << "dummyresource";
39
40 auto result = Akonadi2::Store::load<Akonadi2::Domain::Event>(query);
41
42 QList<Akonadi2::Domain::Event> resultSet;
43 result->onAdded([&resultSet](const Akonadi2::Domain::Event &event){ resultSet << event; qDebug() << "result added";});
44
45 bool complete;
46 result->onComplete([&complete]{ complete = true; qDebug() << "complete";});
47
48 QTRY_VERIFY(complete);
49 }
50
51};
52
53QTEST_MAIN(ClientAPITest)
54#include "clientapitest.moc"