From 4a09094140fb9f06303f3ef8b4a812f0a493214c Mon Sep 17 00:00:00 2001 From: Matt Broadstone Date: Wed, 11 Jun 2014 14:38:42 -0400 Subject: [PATCH] added autotest for invalid exchange declarations --- src/amqp_global.h | 4 +++ .../auto/qamqpexchange/tst_qamqpexchange.cpp | 29 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/amqp_global.h b/src/amqp_global.h index 8bf2178..89be59e 100644 --- a/src/amqp_global.h +++ b/src/amqp_global.h @@ -1,6 +1,8 @@ #ifndef qamqp_global_h__ #define qamqp_global_h__ +#include + #define AMQP_SCHEME "amqp" #define AMQP_SSCHEME "amqps" #define AMQP_PORT 5672 @@ -53,4 +55,6 @@ enum Error { } // namespace QAMQP +Q_DECLARE_METATYPE(QAMQP::Error); + #endif // qamqp_global_h__ diff --git a/tests/auto/qamqpexchange/tst_qamqpexchange.cpp b/tests/auto/qamqpexchange/tst_qamqpexchange.cpp index bf7512f..7694476 100644 --- a/tests/auto/qamqpexchange/tst_qamqpexchange.cpp +++ b/tests/auto/qamqpexchange/tst_qamqpexchange.cpp @@ -17,6 +17,8 @@ private Q_SLOTS: void standardTypes_data(); void standardTypes(); + void invalidDeclaration_data(); + void invalidDeclaration(); void removeIfUnused(); private: @@ -59,6 +61,33 @@ void tst_QAMQPExchange::standardTypes() QVERIFY(waitForSignal(exchange, SIGNAL(removed()))); } +void tst_QAMQPExchange::invalidDeclaration_data() +{ + QTest::addColumn("exchangeName"); + QTest::addColumn("type"); + QTest::addColumn("error"); + + QTest::newRow("amq.direct") << "amq.direct" << Exchange::Direct << QAMQP::PreconditionFailedError; + QTest::newRow("amq.fanout") << "amq.fanout" << Exchange::FanOut << 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.topic") << "amq.topic" << Exchange::Topic << QAMQP::PreconditionFailedError; + + QTest::newRow("amq.reserved") << "amq.reserved" << Exchange::Direct << QAMQP::AccessRefusedError; +} + +void tst_QAMQPExchange::invalidDeclaration() +{ + QFETCH(QString, exchangeName); + QFETCH(Exchange::ExchangeType, type); + QFETCH(QAMQP::Error, error); + + Exchange *exchange = client->createExchange(exchangeName); + exchange->declare(type); + QVERIFY(waitForSignal(exchange, SIGNAL(error(QAMQP::Error)))); + QCOMPARE(exchange->error(), error); +} + void tst_QAMQPExchange::removeIfUnused() { Exchange *exchange = client->createExchange("test-if-unused-exchange");