summaryrefslogtreecommitdiffstats
path: root/tests/messagequeuetest.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-01-11 16:10:01 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-01-11 16:10:01 +0100
commit091412c472b10ca61ada445c19bf3c95cd4e8e40 (patch)
treeae66dfc69e3c82f6cf42fd98b3cd94f23ad7aa4f /tests/messagequeuetest.cpp
parenta4aeea4322252725165cb62390e880f2861035a6 (diff)
downloadsink-091412c472b10ca61ada445c19bf3c95cd4e8e40.tar.gz
sink-091412c472b10ca61ada445c19bf3c95cd4e8e40.zip
A messagequeue.
Diffstat (limited to 'tests/messagequeuetest.cpp')
-rw-r--r--tests/messagequeuetest.cpp50
1 files changed, 50 insertions, 0 deletions
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"