added all tests around exchange declaration

This commit is contained in:
Matt Broadstone 2014-06-11 15:49:05 -04:00
parent 4a09094140
commit 352669f392
3 changed files with 46 additions and 4 deletions

View File

@ -723,6 +723,18 @@ QString Client::customProperty(const QString &name) const
return d->customProperties.value(name).toString(); return d->customProperties.value(name).toString();
} }
Error Client::error() const
{
Q_D(const Client);
return d->error;
}
QString Client::errorString() const
{
Q_D(const Client);
return d->errorString;
}
void Client::connectToHost(const QString &connectionString) void Client::connectToHost(const QString &connectionString)
{ {
Q_D(Client); Q_D(Client);

View File

@ -91,7 +91,7 @@ public:
Q_SIGNALS: Q_SIGNALS:
void connected(); void connected();
void disconnected(); void disconnected();
void error(Error error); void error(QAMQP::Error error);
protected: protected:
Client(ClientPrivate *dd, QObject *parent = 0); Client(ClientPrivate *dd, QObject *parent = 0);

View File

@ -17,8 +17,10 @@ private Q_SLOTS:
void standardTypes_data(); void standardTypes_data();
void standardTypes(); void standardTypes();
void invalidDeclaration_data(); void invalidStandardDeclaration_data();
void invalidStandardDeclaration();
void invalidDeclaration(); void invalidDeclaration();
void invalidRedeclaration();
void removeIfUnused(); void removeIfUnused();
private: private:
@ -61,7 +63,7 @@ void tst_QAMQPExchange::standardTypes()
QVERIFY(waitForSignal(exchange, SIGNAL(removed()))); QVERIFY(waitForSignal(exchange, SIGNAL(removed())));
} }
void tst_QAMQPExchange::invalidDeclaration_data() void tst_QAMQPExchange::invalidStandardDeclaration_data()
{ {
QTest::addColumn<QString>("exchangeName"); QTest::addColumn<QString>("exchangeName");
QTest::addColumn<Exchange::ExchangeType>("type"); QTest::addColumn<Exchange::ExchangeType>("type");
@ -76,7 +78,7 @@ void tst_QAMQPExchange::invalidDeclaration_data()
QTest::newRow("amq.reserved") << "amq.reserved" << Exchange::Direct << QAMQP::AccessRefusedError; QTest::newRow("amq.reserved") << "amq.reserved" << Exchange::Direct << QAMQP::AccessRefusedError;
} }
void tst_QAMQPExchange::invalidDeclaration() void tst_QAMQPExchange::invalidStandardDeclaration()
{ {
QFETCH(QString, exchangeName); QFETCH(QString, exchangeName);
QFETCH(Exchange::ExchangeType, type); QFETCH(Exchange::ExchangeType, type);
@ -88,6 +90,34 @@ void tst_QAMQPExchange::invalidDeclaration()
QCOMPARE(exchange->error(), error); QCOMPARE(exchange->error(), error);
} }
void tst_QAMQPExchange::invalidDeclaration()
{
Exchange *exchange = client->createExchange("test-invalid-declaration");
exchange->declare("invalidExchangeType");
QVERIFY(waitForSignal(client.data(), SIGNAL(error(QAMQP::Error))));
QCOMPARE(client->error(), QAMQP::CommandInvalidError);
}
void tst_QAMQPExchange::invalidRedeclaration()
{
Exchange *exchange = client->createExchange("test-invalid-redeclaration");
exchange->declare(Exchange::Direct);
QVERIFY(waitForSignal(exchange, SIGNAL(declared())));
Exchange *redeclared = client->createExchange("test-invalid-redeclaration");
redeclared->declare(Exchange::FanOut);
QVERIFY(waitForSignal(redeclared, SIGNAL(error(QAMQP::Error))));
// this is per spec:
// QCOMPARE(redeclared->error(), QAMQP::NotAllowedError);
// this is for rabbitmq:
QCOMPARE(redeclared->error(), QAMQP::PreconditionFailedError);
// cleanup
exchange->remove();
QVERIFY(waitForSignal(exchange, SIGNAL(removed())));
}
void tst_QAMQPExchange::removeIfUnused() void tst_QAMQPExchange::removeIfUnused()
{ {
Exchange *exchange = client->createExchange("test-if-unused-exchange"); Exchange *exchange = client->createExchange("test-if-unused-exchange");