From 3b4f6d770911cc1593c6eba814a1fbce1edb92e5 Mon Sep 17 00:00:00 2001 From: Matt Broadstone Date: Wed, 9 Mar 2016 08:57:59 -0500 Subject: [PATCH] test(issue38): show another example of issue #38 working --- tests/auto/qamqpclient/tst_qamqpclient.cpp | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/tests/auto/qamqpclient/tst_qamqpclient.cpp b/tests/auto/qamqpclient/tst_qamqpclient.cpp index c562286..548491e 100644 --- a/tests/auto/qamqpclient/tst_qamqpclient.cpp +++ b/tests/auto/qamqpclient/tst_qamqpclient.cpp @@ -23,6 +23,7 @@ private Q_SLOTS: void validateUri_data(); void validateUri(); void issue38(); + void issue38_take2(); public Q_SLOTS: // temporarily disabled void autoReconnect(); @@ -255,5 +256,55 @@ void tst_QAMQPClient::issue38() issue38_helper(&client); } +void tst_QAMQPClient::issue38_take2() +{ + QAmqpClient client; + client.connectToHost(); + QVERIFY(waitForSignal(&client, SIGNAL(connected()))); + QAmqpExchange *exchange = client.createExchange("myexchange"); + exchange->declare(QAmqpExchange::Topic); + QVERIFY(waitForSignal(exchange, SIGNAL(declared()))); + QAmqpQueue *queue = client.createQueue(); + queue->declare(); + QVERIFY(waitForSignal(queue, SIGNAL(declared()))); + queue->bind(exchange, "routingKeyin"); + QVERIFY(waitForSignal(queue, SIGNAL(bound()))); + queue->consume(QAmqpQueue::coNoAck); + QVERIFY(waitForSignal(queue, SIGNAL(consuming(QString)))); + exchange->publish("test message", "routingKeyout"); + + // delete everything + queue->unbind(exchange, "routingKeyin"); + QVERIFY(waitForSignal(queue, SIGNAL(unbound()))); + queue->close(); + QVERIFY(waitForSignal(queue, SIGNAL(closed()))); + queue->deleteLater(); + + exchange->close(); + QVERIFY(waitForSignal(exchange, SIGNAL(closed()))); + exchange->deleteLater(); + + client.disconnectFromHost(); + QVERIFY(waitForSignal(&client,SIGNAL(disconnected()))); + + // repeat the connection and create again here + client.connectToHost(); + QVERIFY(waitForSignal(&client, SIGNAL(connected()))); + exchange = client.createExchange("myexchange"); + exchange->declare(QAmqpExchange::Topic); + QVERIFY(waitForSignal(exchange, SIGNAL(declared()))); + queue = client.createQueue(); + queue->declare(); + QVERIFY(waitForSignal(queue, SIGNAL(declared()))); + queue->bind(exchange, "routingKeyin"); + QVERIFY(waitForSignal(queue, SIGNAL(bound()))); + queue->consume(QAmqpQueue::coNoAck); + QVERIFY(waitForSignal(queue, SIGNAL(consuming(QString)))); + exchange->publish("test message", "routingKeyout"); + client.disconnectFromHost(); + QVERIFY(waitForSignal(&client,SIGNAL(disconnected()))); +} + + QTEST_MAIN(tst_QAMQPClient) #include "tst_qamqpclient.moc"