diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-08-17 00:19:50 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-08-18 18:54:07 +0200 |
commit | e19bad87f43caf602793d8297562804b17383f7d (patch) | |
tree | 401837d8ea4fe07d2ca174e06989c72f02de633f /tests/messagequeuetest.cpp | |
parent | ca3ce44c7a565df701d9e1b1556cbf2b6819f37c (diff) | |
download | sink-e19bad87f43caf602793d8297562804b17383f7d.tar.gz sink-e19bad87f43caf602793d8297562804b17383f7d.zip |
Transactions for messagequeue
Diffstat (limited to 'tests/messagequeuetest.cpp')
-rw-r--r-- | tests/messagequeuetest.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/messagequeuetest.cpp b/tests/messagequeuetest.cpp index d5c47f5..9c2aa16 100644 --- a/tests/messagequeuetest.cpp +++ b/tests/messagequeuetest.cpp | |||
@@ -6,6 +6,7 @@ | |||
6 | #include "clientapi.h" | 6 | #include "clientapi.h" |
7 | #include "storage.h" | 7 | #include "storage.h" |
8 | #include "messagequeue.h" | 8 | #include "messagequeue.h" |
9 | #include "log.h" | ||
9 | 10 | ||
10 | class MessageQueueTest : public QObject | 11 | class MessageQueueTest : public QObject |
11 | { | 12 | { |
@@ -13,6 +14,7 @@ class MessageQueueTest : public QObject | |||
13 | private Q_SLOTS: | 14 | private Q_SLOTS: |
14 | void initTestCase() | 15 | void initTestCase() |
15 | { | 16 | { |
17 | Akonadi2::Log::setDebugOutputLevel(Akonadi2::Log::Trace); | ||
16 | Akonadi2::Storage store(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue", Akonadi2::Storage::ReadWrite); | 18 | Akonadi2::Storage store(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue", Akonadi2::Storage::ReadWrite); |
17 | store.removeFromDisk(); | 19 | store.removeFromDisk(); |
18 | } | 20 | } |
@@ -50,6 +52,14 @@ private Q_SLOTS: | |||
50 | QVERIFY(gotError); | 52 | QVERIFY(gotError); |
51 | } | 53 | } |
52 | 54 | ||
55 | void testEnqueue() | ||
56 | { | ||
57 | MessageQueue queue(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue"); | ||
58 | QSignalSpy spy(&queue, SIGNAL(messageReady())); | ||
59 | queue.enqueue("value1"); | ||
60 | QCOMPARE(spy.size(), 1); | ||
61 | } | ||
62 | |||
53 | void testDrained() | 63 | void testDrained() |
54 | { | 64 | { |
55 | MessageQueue queue(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue"); | 65 | MessageQueue queue(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue"); |
@@ -152,6 +162,44 @@ private Q_SLOTS: | |||
152 | QVERIFY(!gotError); | 162 | QVERIFY(!gotError); |
153 | } | 163 | } |
154 | 164 | ||
165 | void testBatchDequeue() | ||
166 | { | ||
167 | MessageQueue queue(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue"); | ||
168 | queue.enqueue("value1"); | ||
169 | queue.enqueue("value2"); | ||
170 | queue.enqueue("value3"); | ||
171 | |||
172 | int count = 0; | ||
173 | queue.dequeueBatch(2, [&count](const QByteArray &data) { | ||
174 | count++; | ||
175 | return KAsync::null<void>(); | ||
176 | }).exec().waitForFinished(); | ||
177 | QCOMPARE(count, 2); | ||
178 | |||
179 | queue.dequeueBatch(1, [&count](const QByteArray &data) { | ||
180 | count++; | ||
181 | return KAsync::null<void>(); | ||
182 | }).exec().waitForFinished(); | ||
183 | QCOMPARE(count, 3); | ||
184 | } | ||
185 | |||
186 | void testBatchEnqueue() | ||
187 | { | ||
188 | MessageQueue queue(Akonadi2::Store::storageLocation(), "org.kde.dummy.testqueue"); | ||
189 | QSignalSpy spy(&queue, SIGNAL(messageReady())); | ||
190 | queue.startTransaction(); | ||
191 | queue.enqueue("value1"); | ||
192 | queue.enqueue("value2"); | ||
193 | queue.enqueue("value3"); | ||
194 | |||
195 | QVERIFY(queue.isEmpty()); | ||
196 | QCOMPARE(spy.count(), 0); | ||
197 | |||
198 | queue.commit(); | ||
199 | |||
200 | QVERIFY(!queue.isEmpty()); | ||
201 | QCOMPARE(spy.count(), 1); | ||
202 | } | ||
155 | 203 | ||
156 | }; | 204 | }; |
157 | 205 | ||