add an auto test for synchronous get
This commit is contained in:
parent
824d8d56ca
commit
92384ce7cb
|
|
@ -35,6 +35,7 @@ private Q_SLOTS:
|
|||
void invalidCancelBecauseNotConsuming();
|
||||
void invalidCancelBecauseInvalidConsumerTag();
|
||||
void getEmpty();
|
||||
void get();
|
||||
|
||||
private:
|
||||
void declareQueueAndVerifyConsuming(Queue *queue);
|
||||
|
|
@ -348,5 +349,38 @@ void tst_QAMQPQueue::getEmpty()
|
|||
QVERIFY(waitForSignal(queue, SIGNAL(empty())));
|
||||
}
|
||||
|
||||
void tst_QAMQPQueue::get()
|
||||
{
|
||||
Queue *queue = client->createQueue("test-get");
|
||||
queue->declare();
|
||||
QVERIFY(waitForSignal(queue, SIGNAL(declared())));
|
||||
|
||||
const int messageCount = 50;
|
||||
Exchange *defaultExchange = client->createExchange();
|
||||
for (int i = 0; i < messageCount; ++i) {
|
||||
QString expected = QString("message %1").arg(i);
|
||||
defaultExchange->publish(expected, "test-get");
|
||||
}
|
||||
|
||||
// wait for messages to be delivered
|
||||
QTest::qWait(25);
|
||||
|
||||
for (int i = 0; i < messageCount; ++i) {
|
||||
QString expected = QString("message %1").arg(i);
|
||||
queue->get(false);
|
||||
QVERIFY(waitForSignal(queue, SIGNAL(messageReceived())));
|
||||
Message message = queue->dequeue();
|
||||
QCOMPARE(message.payload(), expected.toUtf8());
|
||||
queue->ack(message);
|
||||
}
|
||||
|
||||
queue->get(false);
|
||||
QVERIFY(waitForSignal(queue, SIGNAL(empty())));
|
||||
|
||||
// clean up queue
|
||||
queue->remove(Queue::roForce);
|
||||
QVERIFY(waitForSignal(queue, SIGNAL(removed())));
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_QAMQPQueue)
|
||||
#include "tst_qamqpqueue.moc"
|
||||
|
|
|
|||
Loading…
Reference in New Issue