test(issue38): show how to avoid issue #38

This commit is contained in:
Matt Broadstone 2016-03-08 08:46:46 -05:00
parent 411a3a8e9e
commit 8109e5343c
1 changed files with 33 additions and 0 deletions

View File

@ -4,6 +4,8 @@
#include "qamqptestcase.h" #include "qamqptestcase.h"
#include "qamqpauthenticator.h" #include "qamqpauthenticator.h"
#include "qamqpexchange.h"
#include "qamqpqueue.h"
#include "qamqpclient_p.h" #include "qamqpclient_p.h"
#include "qamqpclient.h" #include "qamqpclient.h"
@ -20,6 +22,7 @@ private Q_SLOTS:
void socketError(); void socketError();
void validateUri_data(); void validateUri_data();
void validateUri(); void validateUri();
void issue38();
public Q_SLOTS: // temporarily disabled public Q_SLOTS: // temporarily disabled
void autoReconnect(); void autoReconnect();
@ -27,6 +30,7 @@ public Q_SLOTS: // temporarily disabled
private: private:
QSslConfiguration createSslConfiguration(); QSslConfiguration createSslConfiguration();
void issue38_helper(QAmqpClient *client);
}; };
@ -222,5 +226,34 @@ void tst_QAMQPClient::validateUri()
QCOMPARE(clientPrivate.virtualHost, expectedVirtualHost); QCOMPARE(clientPrivate.virtualHost, expectedVirtualHost);
} }
void tst_QAMQPClient::issue38_helper(QAmqpClient *client)
{
// connect
client->connectToHost();
QVERIFY(waitForSignal(client, SIGNAL(connected())));
// create then declare, remove and close queue
QAmqpQueue *queue = client->createQueue();
QVERIFY(waitForSignal(queue, SIGNAL(opened())));
queue->declare();
QVERIFY(waitForSignal(queue, SIGNAL(declared())));
queue->remove(QAmqpExchange::roForce);
QVERIFY(waitForSignal(queue, SIGNAL(removed())));
queue->close();
QVERIFY(waitForSignal(queue, SIGNAL(closed())));
queue->deleteLater();
// disconnect
client->disconnectFromHost();
QVERIFY(waitForSignal(client, SIGNAL(disconnected())));
}
void tst_QAMQPClient::issue38()
{
QAmqpClient client;
issue38_helper(&client);
issue38_helper(&client);
}
QTEST_MAIN(tst_QAMQPClient) QTEST_MAIN(tst_QAMQPClient)
#include "tst_qamqpclient.moc" #include "tst_qamqpclient.moc"