From fdd74a41929b4343902f1d1dfcd5116534a79f4f Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 11 Dec 2014 00:44:44 +0100 Subject: Dummyresourcefacade test. Huzaa, we can read a value! --- tests/CMakeLists.txt | 4 +++ tests/dummyresourcefacadetest.cpp | 73 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 tests/dummyresourcefacadetest.cpp (limited to 'tests') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 9ee3f5e..95aba64 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -14,4 +14,8 @@ endmacro(manual_tests) manual_tests ( storagebenchmark storagetest + dummyresourcefacadetest ) + +target_link_libraries(dummyresourcefacadetest akonadi2_dummyresource_facade) + diff --git a/tests/dummyresourcefacadetest.cpp b/tests/dummyresourcefacadetest.cpp new file mode 100644 index 0000000..26daa23 --- /dev/null +++ b/tests/dummyresourcefacadetest.cpp @@ -0,0 +1,73 @@ +#include + +#include + +#include +#include +#include + +#include "common/storage.h" +#include "dummyresource/facade.h" + +class DummyResourceFacadeTest : public QObject +{ + Q_OBJECT +private: + QString testDataPath; + QString dbName; + const char *keyPrefix = "key"; + + void populate(int count) + { + Storage storage(testDataPath, dbName, Storage::ReadWrite); + for (int i = 0; i < count; i++) { + storage.write(keyPrefix + std::to_string(i), keyPrefix + std::to_string(i)); + } + storage.commitTransaction(); + } + +private Q_SLOTS: + void initTestCase() + { + testDataPath = Akonadi2::Store::storageLocation(); + dbName = "dummyresource"; + Akonadi2::FacadeFactory::instance().registerFacade("dummyresource", []() { + return new DummyResourceFacade(); + }); + } + + void cleanupTestCase() + { + Storage storage(testDataPath, dbName); + storage.removeFromDisk(); + } + + void testScan() + { + const int count = 100; + populate(count); + + Akonadi2::Query query; + query.ids << "key50"; + query.resources << "dummyresource"; + + auto result = Akonadi2::Store::load(query); + bool complete = false; + QVector results; + result->onAdded([&results](const Akonadi2::Domain::Event::Ptr &e) { + results << e; + }); + result->onComplete([&complete]() { + complete = true; + }); + QTRY_VERIFY(complete); + QCOMPARE(results.size(), 1); + + Storage storage(testDataPath, dbName); + storage.removeFromDisk(); + } + +}; + +QTEST_MAIN(DummyResourceFacadeTest) +#include "dummyresourcefacadetest.moc" -- cgit v1.2.3