diff options
Diffstat (limited to 'client/test')
-rw-r--r-- | client/test/CMakeLists.txt | 15 | ||||
-rw-r--r-- | client/test/clientapitest.cpp | 54 |
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 @@ | |||
1 | set(CMAKE_AUTOMOC ON) | ||
2 | include_directories(${CMAKE_CURRENT_BINARY_DIR}) | ||
3 | |||
4 | macro(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) | ||
11 | endmacro(auto_tests) | ||
12 | |||
13 | auto_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 | |||
7 | class DummyResourceFacade : public Akonadi2::StoreFacade<Akonadi2::Domain::Event> | ||
8 | { | ||
9 | public: | ||
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 | |||
25 | class ClientAPITest : public QObject | ||
26 | { | ||
27 | Q_OBJECT | ||
28 | private 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 | |||
53 | QTEST_MAIN(ClientAPITest) | ||
54 | #include "clientapitest.moc" | ||