add tests for non-delayed declaration

existing tests have been immediately declaring queues and exchanges, and
not testing non-delayed declaration (queue/exchange is OPEN when declaration
occurs). these new tests cover this case
This commit is contained in:
Matt Broadstone 2014-08-06 09:03:34 -04:00
parent bb2e9881ea
commit 9fbd0a852f
2 changed files with 29 additions and 10 deletions

View File

@ -48,17 +48,27 @@ void tst_QAMQPExchange::cleanup()
void tst_QAMQPExchange::standardTypes_data()
{
QTest::addColumn<Exchange::ExchangeType>("type");
QTest::newRow("direct") << Exchange::Direct;
QTest::newRow("fanout") << Exchange::FanOut;
QTest::newRow("topic") << Exchange::Topic;
QTest::newRow("headers") << Exchange::Headers;
QTest::addColumn<bool>("delayedDeclaration");
QTest::newRow("direct") << Exchange::Direct << false;
QTest::newRow("direct-delayed") << Exchange::Direct << true;
QTest::newRow("fanout") << Exchange::FanOut << false;
QTest::newRow("fanout-delayed") << Exchange::FanOut << true;
QTest::newRow("topic") << Exchange::Topic << false;
QTest::newRow("topic-delayed") << Exchange::Topic << true;
QTest::newRow("headers") << Exchange::Headers << false;
QTest::newRow("headers-delayed") << Exchange::Headers << true;
}
void tst_QAMQPExchange::standardTypes()
{
QFETCH(Exchange::ExchangeType, type);
QFETCH(bool, delayedDeclaration);
Exchange *exchange = client->createExchange("test");
if (!delayedDeclaration)
QVERIFY(waitForSignal(exchange, SIGNAL(opened())));
exchange->declare(type);
QVERIFY(waitForSignal(exchange, SIGNAL(declared())));
exchange->remove(Exchange::roForce);
@ -76,7 +86,6 @@ void tst_QAMQPExchange::invalidStandardDeclaration_data()
QTest::newRow("amq.headers") << "amq.headers" << Exchange::Headers << QAMQP::PreconditionFailedError;
QTest::newRow("amq.match") << "amq.match" << Exchange::Headers << QAMQP::PreconditionFailedError;
QTest::newRow("amq.topic") << "amq.topic" << Exchange::Topic << QAMQP::PreconditionFailedError;
QTest::newRow("amq.reserved") << "amq.reserved" << Exchange::Direct << QAMQP::AccessRefusedError;
}

View File

@ -108,21 +108,31 @@ void tst_QAMQPQueue::defaultExchange()
void tst_QAMQPQueue::standardExchanges_data()
{
QTest::addColumn<QString>("exchange");
QTest::newRow("amq.direct") << "amq.direct";
QTest::newRow("amq.fanout") << "amq.fanout";
QTest::newRow("amq.headers") << "amq.headers";
QTest::newRow("amq.match") << "amq.match";
QTest::newRow("amq.topic") << "amq.topic";
QTest::addColumn<bool>("delayedDeclaration");
QTest::newRow("amq.direct") << "amq.direct" << false;
QTest::newRow("amq.direct-delayed") << "amq.direct" << true;
QTest::newRow("amq.fanout") << "amq.fanout" << false;
QTest::newRow("amq.fanout-delayed") << "amq.fanout" << true;
QTest::newRow("amq.headers") << "amq.headers" << false;
QTest::newRow("amq.headers-delayed") << "amq.headers" << true;
QTest::newRow("amq.match") << "amq.match" << false;
QTest::newRow("amq.match-delayed") << "amq.match" << true;
QTest::newRow("amq.topic") << "amq.topic" << false;
QTest::newRow("amq.topic-delayed") << "amq.topic" << true;
}
void tst_QAMQPQueue::standardExchanges()
{
QFETCH(QString, exchange);
QFETCH(bool, delayedDeclaration);
QString queueName = QString("test-%1").arg(exchange);
QString routingKey = QString("testRoutingKey-%1").arg(exchange);
Queue *queue = client->createQueue(queueName);
if (!delayedDeclaration)
QVERIFY(waitForSignal(queue, SIGNAL(opened())));
declareQueueAndVerifyConsuming(queue);
queue->bind(exchange, routingKey);