add an auto test for synchronous get

This commit is contained in:
Matt Broadstone 2014-06-25 20:54:50 -04:00
parent 824d8d56ca
commit 92384ce7cb
1 changed files with 34 additions and 0 deletions

View File

@ -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"