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() void tst_QAMQPExchange::standardTypes_data()
{ {
QTest::addColumn<Exchange::ExchangeType>("type"); QTest::addColumn<Exchange::ExchangeType>("type");
QTest::newRow("direct") << Exchange::Direct; QTest::addColumn<bool>("delayedDeclaration");
QTest::newRow("fanout") << Exchange::FanOut;
QTest::newRow("topic") << Exchange::Topic; QTest::newRow("direct") << Exchange::Direct << false;
QTest::newRow("headers") << Exchange::Headers; 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() void tst_QAMQPExchange::standardTypes()
{ {
QFETCH(Exchange::ExchangeType, type); QFETCH(Exchange::ExchangeType, type);
QFETCH(bool, delayedDeclaration);
Exchange *exchange = client->createExchange("test"); Exchange *exchange = client->createExchange("test");
if (!delayedDeclaration)
QVERIFY(waitForSignal(exchange, SIGNAL(opened())));
exchange->declare(type); exchange->declare(type);
QVERIFY(waitForSignal(exchange, SIGNAL(declared()))); QVERIFY(waitForSignal(exchange, SIGNAL(declared())));
exchange->remove(Exchange::roForce); 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.headers") << "amq.headers" << Exchange::Headers << QAMQP::PreconditionFailedError;
QTest::newRow("amq.match") << "amq.match" << 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.topic") << "amq.topic" << Exchange::Topic << QAMQP::PreconditionFailedError;
QTest::newRow("amq.reserved") << "amq.reserved" << Exchange::Direct << QAMQP::AccessRefusedError; 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() void tst_QAMQPQueue::standardExchanges_data()
{ {
QTest::addColumn<QString>("exchange"); QTest::addColumn<QString>("exchange");
QTest::newRow("amq.direct") << "amq.direct"; QTest::addColumn<bool>("delayedDeclaration");
QTest::newRow("amq.fanout") << "amq.fanout";
QTest::newRow("amq.headers") << "amq.headers"; QTest::newRow("amq.direct") << "amq.direct" << false;
QTest::newRow("amq.match") << "amq.match"; QTest::newRow("amq.direct-delayed") << "amq.direct" << true;
QTest::newRow("amq.topic") << "amq.topic"; 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() void tst_QAMQPQueue::standardExchanges()
{ {
QFETCH(QString, exchange); QFETCH(QString, exchange);
QFETCH(bool, delayedDeclaration);
QString queueName = QString("test-%1").arg(exchange); QString queueName = QString("test-%1").arg(exchange);
QString routingKey = QString("testRoutingKey-%1").arg(exchange); QString routingKey = QString("testRoutingKey-%1").arg(exchange);
Queue *queue = client->createQueue(queueName); Queue *queue = client->createQueue(queueName);
if (!delayedDeclaration)
QVERIFY(waitForSignal(queue, SIGNAL(opened())));
declareQueueAndVerifyConsuming(queue); declareQueueAndVerifyConsuming(queue);
queue->bind(exchange, routingKey); queue->bind(exchange, routingKey);