From 091412c472b10ca61ada445c19bf3c95cd4e8e40 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sun, 11 Jan 2015 16:10:01 +0100 Subject: A messagequeue. --- tests/CMakeLists.txt | 1 + tests/messagequeuetest.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 tests/messagequeuetest.cpp (limited to 'tests') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 12695ff..183b1bf 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -18,6 +18,7 @@ manual_tests ( storagetest dummyresourcetest domainadaptortest + messagequeuetest ) target_link_libraries(dummyresourcetest akonadi2_resource_dummy) diff --git a/tests/messagequeuetest.cpp b/tests/messagequeuetest.cpp new file mode 100644 index 0000000..2ea9f0c --- /dev/null +++ b/tests/messagequeuetest.cpp @@ -0,0 +1,50 @@ +#include + +#include +#include + +#include "clientapi.h" +#include "storage.h" +#include "messagequeue.h" + +class MessageQueueTest : public QObject +{ + Q_OBJECT +private Q_SLOTS: + void initTestCase() + { + Akonadi2::Storage store(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue", Akonadi2::Storage::ReadWrite); + store.removeFromDisk(); + } + + void cleanupTestCase() + { + } + + void testQueue() + { + QQueue values; + values << "value1"; + values << "value2"; + + MessageQueue queue(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue"); + for (const QByteArray &value : values) { + queue.enqueue(value.data(), value.size()); + } + + while (!queue.isEmpty()) { + const auto expected = values.dequeue(); + queue.dequeue([&](void *ptr, int size, std::function callback) { + QCOMPARE(QByteArray(static_cast(ptr), size), expected); + callback(true); + }, [](const MessageQueue::Error &error) { + + }); + } + Q_ASSERT(values.isEmpty()); + } + +}; + +QTEST_MAIN(MessageQueueTest) +#include "messagequeuetest.moc" -- cgit v1.2.3