From 92384ce7cbc659ab54ae05564132e6af157969c8 Mon Sep 17 00:00:00 2001 From: Matt Broadstone Date: Wed, 25 Jun 2014 20:54:50 -0400 Subject: [PATCH] add an auto test for synchronous get --- tests/auto/qamqpqueue/tst_qamqpqueue.cpp | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/auto/qamqpqueue/tst_qamqpqueue.cpp b/tests/auto/qamqpqueue/tst_qamqpqueue.cpp index 0ad6f7d..1f3a877 100644 --- a/tests/auto/qamqpqueue/tst_qamqpqueue.cpp +++ b/tests/auto/qamqpqueue/tst_qamqpqueue.cpp @@ -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"