From 1083f4db3af3d053ae1fab1ab94dce3b450f8ded Mon Sep 17 00:00:00 2001 From: Matt Broadstone Date: Tue, 29 Jul 2014 12:57:15 -0400 Subject: [PATCH] test delayed queue bindings improve code coverage by adding a test for delayed declaration and bindings of queues. also uncovered a bug with disconnectFromHost in Client --- src/amqp_client.cpp | 1 + tests/auto/qamqpqueue/tst_qamqpqueue.cpp | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/amqp_client.cpp b/src/amqp_client.cpp index 8df9b11..610de62 100644 --- a/src/amqp_client.cpp +++ b/src/amqp_client.cpp @@ -415,6 +415,7 @@ void ClientPrivate::closeOk(const Frame::Method &frame) connected = false; if (heartbeatTimer) heartbeatTimer->stop(); + socket->disconnectFromHost(); Q_EMIT q->disconnected(); } diff --git a/tests/auto/qamqpqueue/tst_qamqpqueue.cpp b/tests/auto/qamqpqueue/tst_qamqpqueue.cpp index 4a113fe..db6f14e 100644 --- a/tests/auto/qamqpqueue/tst_qamqpqueue.cpp +++ b/tests/auto/qamqpqueue/tst_qamqpqueue.cpp @@ -29,6 +29,7 @@ private Q_SLOTS: void removeIfUnused(); void removeIfEmpty(); void bindUnbind(); + void delayedBind(); void purge(); void canOnlyStartConsumingOnce(); void cancel(); @@ -276,6 +277,20 @@ void tst_QAMQPQueue::bindUnbind() QVERIFY(waitForSignal(queue, SIGNAL(unbound()))); } +void tst_QAMQPQueue::delayedBind() +{ + client->disconnectFromHost(); + QVERIFY(waitForSignal(client.data(), SIGNAL(disconnected()))); + Queue *queue = client->createQueue("test-delayed-bind"); + queue->declare(); + queue->bind("amq.topic", "routingKey"); + + client->connectToHost(); + QVERIFY(waitForSignal(client.data(), SIGNAL(connected()))); + QVERIFY(waitForSignal(queue, SIGNAL(declared()))); + QVERIFY(waitForSignal(queue, SIGNAL(bound()))); +} + void tst_QAMQPQueue::purge() { Queue *queue = client->createQueue("test-purge");