summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt1
-rw-r--r--tests/messagequeuetest.cpp50
2 files changed, 51 insertions, 0 deletions
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 (
18 storagetest 18 storagetest
19 dummyresourcetest 19 dummyresourcetest
20 domainadaptortest 20 domainadaptortest
21 messagequeuetest
21) 22)
22 23
23target_link_libraries(dummyresourcetest akonadi2_resource_dummy) 24target_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 @@
1#include <QtTest>
2
3#include <QString>
4#include <QQueue>
5
6#include "clientapi.h"
7#include "storage.h"
8#include "messagequeue.h"
9
10class MessageQueueTest : public QObject
11{
12 Q_OBJECT
13private Q_SLOTS:
14 void initTestCase()
15 {
16 Akonadi2::Storage store(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue", Akonadi2::Storage::ReadWrite);
17 store.removeFromDisk();
18 }
19
20 void cleanupTestCase()
21 {
22 }
23
24 void testQueue()
25 {
26 QQueue<QByteArray> values;
27 values << "value1";
28 values << "value2";
29
30 MessageQueue queue(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue");
31 for (const QByteArray &value : values) {
32 queue.enqueue(value.data(), value.size());
33 }
34
35 while (!queue.isEmpty()) {
36 const auto expected = values.dequeue();
37 queue.dequeue([&](void *ptr, int size, std::function<void(bool success)> callback) {
38 QCOMPARE(QByteArray(static_cast<char*>(ptr), size), expected);
39 callback(true);
40 }, [](const MessageQueue::Error &error) {
41
42 });
43 }
44 Q_ASSERT(values.isEmpty());
45 }
46
47};
48
49QTEST_MAIN(MessageQueueTest)
50#include "messagequeuetest.moc"