diff options
author | Gordon Sim <gsim@apache.org> | 2010-04-12 17:25:35 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2010-04-12 17:25:35 +0000 |
commit | 9d2af98f3234ef0f635d01cbb1540e0d2b00264d (patch) | |
tree | caaa92b8fd3eb59ae37f10a34c7ad581c6295841 /cpp/src | |
parent | fb7376620cd4a090f544dece75ec467ba5191fd5 (diff) | |
download | qpid-python-9d2af98f3234ef0f635d01cbb1540e0d2b00264d.tar.gz |
QPID-664: changed option verifier to use constants rather than duplicating string literals; added a test to make sure all valid options are allowed and illegal ones are not
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@933330 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpid/client/amqp0_10/AddressResolution.cpp | 35 | ||||
-rw-r--r-- | cpp/src/tests/MessagingSessionTests.cpp | 7 |
2 files changed, 25 insertions, 17 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp b/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp index 8289242f09..146d34932a 100644 --- a/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp +++ b/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp @@ -72,7 +72,6 @@ class Verifier }; namespace{ -const Verifier verifier; const Variant EMPTY_VARIANT; const FieldTable EMPTY_FIELD_TABLE; const Variant::List EMPTY_LIST; @@ -129,6 +128,8 @@ const std::string DIRECT_EXCHANGE("direct"); const std::string HEADERS_EXCHANGE("headers"); const std::string XML_EXCHANGE("xml"); const std::string WILDCARD_ANY("*"); + +const Verifier verifier; } struct Binding @@ -922,24 +923,24 @@ std::vector<std::string> Node::SENDER_MODES = list_of<std::string>(ALWAYS) (SEND Verifier::Verifier() { - defined["create"] = true; - defined["assert"] = true; - defined["delete"] = true; - defined["mode"] = true; + defined[CREATE] = true; + defined[ASSERT] = true; + defined[DELETE] = true; + defined[MODE] = true; Variant::Map node; - node["type"] = true; - node["durable"] = true; - node["x-declare"] = true; - node["x-bindings"] = true; - defined["node"] = node; + node[TYPE] = true; + node[DURABLE] = true; + node[X_DECLARE] = true; + node[X_BINDINGS] = true; + defined[NODE] = node; Variant::Map link; - link["name"] = true; - link["durable"] = true; - link["reliable"] = true; - link["x-subscribe"] = true; - link["x-declare"] = true; - link["x-bindings"] = true; - defined["link"] = link; + link[NAME] = true; + link[DURABLE] = true; + link[RELIABILITY] = true; + link[X_SUBSCRIBE] = true; + link[X_DECLARE] = true; + link[X_BINDINGS] = true; + defined[LINK] = link; } void Verifier::verify(const Address& address) const { diff --git a/cpp/src/tests/MessagingSessionTests.cpp b/cpp/src/tests/MessagingSessionTests.cpp index d134793b82..e1b2a35213 100644 --- a/cpp/src/tests/MessagingSessionTests.cpp +++ b/cpp/src/tests/MessagingSessionTests.cpp @@ -872,6 +872,13 @@ QPID_AUTO_TEST_CASE(testRelease) fix.session.acknowledge(true); } +QPID_AUTO_TEST_CASE(testOptionVerification) +{ + MessagingFixture fix; + fix.session.createReceiver("my-queue; {create: always, assert: always, delete: always, node: {type: queue, durable: false, x-declare: {arguments: {a: b}}, x-bindings: [{exchange: amq.fanout}]}, link: {name: abc, durable: false, reliability: exactly-once, x-subscribe: {arguments:{a:b}}, x-bindings:[{exchange: amq.fanout}]}, mode: browse}"); + BOOST_CHECK_THROW(fix.session.createReceiver("my-queue; {invalid-option:blah}"), qpid::messaging::AddressError); +} + QPID_AUTO_TEST_SUITE_END() }} // namespace qpid::tests |