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();
}
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)
{
Q_D(Client);

View File

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

View File

@ -17,8 +17,10 @@ private Q_SLOTS:
void standardTypes_data();
void standardTypes();
void invalidDeclaration_data();
void invalidStandardDeclaration_data();
void invalidStandardDeclaration();
void invalidDeclaration();
void invalidRedeclaration();
void removeIfUnused();
private:
@ -61,7 +63,7 @@ void tst_QAMQPExchange::standardTypes()
QVERIFY(waitForSignal(exchange, SIGNAL(removed())));
}
void tst_QAMQPExchange::invalidDeclaration_data()
void tst_QAMQPExchange::invalidStandardDeclaration_data()
{
QTest::addColumn<QString>("exchangeName");
QTest::addColumn<Exchange::ExchangeType>("type");
@ -76,7 +78,7 @@ void tst_QAMQPExchange::invalidDeclaration_data()
QTest::newRow("amq.reserved") << "amq.reserved" << Exchange::Direct << QAMQP::AccessRefusedError;
}
void tst_QAMQPExchange::invalidDeclaration()
void tst_QAMQPExchange::invalidStandardDeclaration()
{
QFETCH(QString, exchangeName);
QFETCH(Exchange::ExchangeType, type);
@ -88,6 +90,34 @@ void tst_QAMQPExchange::invalidDeclaration()
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()
{
Exchange *exchange = client->createExchange("test-if-unused-exchange");