summaryrefslogtreecommitdiff
path: root/cpp/src/tests/Address.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/tests/Address.cpp')
-rw-r--r--cpp/src/tests/Address.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/cpp/src/tests/Address.cpp b/cpp/src/tests/Address.cpp
index a0b87e25af..32d14bb4b8 100644
--- a/cpp/src/tests/Address.cpp
+++ b/cpp/src/tests/Address.cpp
@@ -87,6 +87,24 @@ QPID_AUTO_TEST_CASE(testParseOptionsWithList)
BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64());
}
+QPID_AUTO_TEST_CASE(testParseOptionsWithEmptyList)
+{
+ Address address("my-topic; {a:[], x:101}");
+ BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName());
+ Variant::List& list = address.getOptions()["a"].asList();
+ BOOST_CHECK_EQUAL(list.size(), 0);
+ BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64());
+}
+
+QPID_AUTO_TEST_CASE(testParseOptionsWithEmptyMap)
+{
+ Address address("my-topic; {a:{}, x:101}");
+ BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName());
+ Variant::Map& map = address.getOptions()["a"].asMap();
+ BOOST_CHECK_EQUAL(map.size(), 0);
+ BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64());
+}
+
QPID_AUTO_TEST_CASE(testParseQuotedNameAndSubject)
{
Address address("'my topic with / in it'/'my subject with ; in it'");