summaryrefslogtreecommitdiffstats
path: root/client/test
diff options
context:
space:
mode:
Diffstat (limited to 'client/test')
-rw-r--r--client/test/CMakeLists.txt15
-rw-r--r--client/test/clientapitest.cpp54
2 files changed, 69 insertions, 0 deletions
diff --git a/client/test/CMakeLists.txt b/client/test/CMakeLists.txt
new file mode 100644
index 0000000..6453fc5
--- /dev/null
+++ b/client/test/CMakeLists.txt
@@ -0,0 +1,15 @@
1set(CMAKE_AUTOMOC ON)
2include_directories(${CMAKE_CURRENT_BINARY_DIR})
3
4macro(auto_tests)
5 foreach(_testname ${ARGN})
6 add_executable(${_testname} ${_testname}.cpp ${store_SRCS})
7 qt5_use_modules(${_testname} Core Test)
8 target_link_libraries(${_testname} lmdb)
9 add_test(NAME ${_testname} COMMAND ${_testname})
10 endforeach(_testname)
11endmacro(auto_tests)
12
13auto_tests (
14 clientapitest
15)
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"