summaryrefslogtreecommitdiff
path: root/cpp/src/tests/Address.cpp
diff options
context:
space:
mode:
authorJonathan Robie <jonathan@apache.org>2010-10-29 17:26:05 +0000
committerJonathan Robie <jonathan@apache.org>2010-10-29 17:26:05 +0000
commit35e0d495a6b5a00f6ce8476476a06e0527164617 (patch)
tree930484ef4e02e68d7d8dd79008ee6a09d11b9de5 /cpp/src/tests/Address.cpp
parent88d0fc0f70daab03c9302ffa5af30d551372dac2 (diff)
downloadqpid-python-35e0d495a6b5a00f6ce8476476a06e0527164617.tar.gz
Corrects AddressParser to use typed simple values.
Adds Variant::fromString(). Resolves QPID-2896 and QPID-2908. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1028860 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/Address.cpp')
-rw-r--r--cpp/src/tests/Address.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/cpp/src/tests/Address.cpp b/cpp/src/tests/Address.cpp
index 6339e3a435..f41f27b6df 100644
--- a/cpp/src/tests/Address.cpp
+++ b/cpp/src/tests/Address.cpp
@@ -49,8 +49,15 @@ QPID_AUTO_TEST_CASE(testParseOptions)
{
Address address("my-topic; {a:bc, x:101, y:'a string'}");
BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName());
+
+ BOOST_CHECK_EQUAL(std::string("bc"), address.getOptions()["a"]);
+ BOOST_CHECK_EQUAL(101, static_cast<int>(address.getOptions()["x"]));
+ BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"]);
+
+ // Test asString() and asInt64() once here
+
BOOST_CHECK_EQUAL(std::string("bc"), address.getOptions()["a"].asString());
- BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64());
+ BOOST_CHECK_EQUAL(static_cast<uint16_t>(101), address.getOptions()["x"].asInt64());
BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"].asString());
}
@@ -59,19 +66,19 @@ QPID_AUTO_TEST_CASE(testParseSubjectAndOptions)
Address address("my-topic/my-subject; {a:bc, x:101, y:'a string'}");
BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName());
BOOST_CHECK_EQUAL(std::string("my-subject"), address.getSubject());
- BOOST_CHECK_EQUAL(std::string("bc"), address.getOptions()["a"].asString());
- BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64());
- BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"].asString());
+
+ BOOST_CHECK_EQUAL(std::string("bc"), address.getOptions()["a"]);
+ BOOST_CHECK_EQUAL(101, static_cast<int>(address.getOptions()["x"]));
+ BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"]);
}
QPID_AUTO_TEST_CASE(testParseNestedOptions)
{
Address address("my-topic; {a:{p:202, q:'another string'}, x:101, y:'a string'}");
BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName());
- BOOST_CHECK_EQUAL((uint16_t) 202, address.getOptions()["a"].asMap()["p"].asInt64());
- BOOST_CHECK_EQUAL(std::string("another string"), address.getOptions()["a"].asMap()["q"].asString());
- BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64());
- BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"].asString());
+ BOOST_CHECK_EQUAL(202, static_cast<int>(address.getOptions()["a"].asMap()["p"]));
+ BOOST_CHECK_EQUAL(std::string("another string"), address.getOptions()["a"].asMap()["q"]);
+ BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"]);
}
QPID_AUTO_TEST_CASE(testParseOptionsWithList)