aboutsummaryrefslogtreecommitdiff
path: root/cpp/test
diff options
context:
space:
mode:
authorrouslan@chromium.org <rouslan@chromium.org@38ededc0-08b8-5190-f2ac-b31f878777ad>2014-05-20 11:55:28 +0000
committerrouslan@chromium.org <rouslan@chromium.org@38ededc0-08b8-5190-f2ac-b31f878777ad>2014-05-20 11:55:28 +0000
commitfdec8caccd397f611865f902b4910e4776da0aec (patch)
tree7fdb4a4b3f58cdf5064f4cf8bcf62b00d5f568aa /cpp/test
parent53fa529bef8371399def4e2566a40f5469addae7 (diff)
downloadsrc-fdec8caccd397f611865f902b4910e4776da0aec.tar.gz
Nested dictionaries for parsing aggregate data.
R=roubert@google.com Review URL: https://codereview.appspot.com/97580043 git-svn-id: http://libaddressinput.googlecode.com/svn/trunk@223 38ededc0-08b8-5190-f2ac-b31f878777ad
Diffstat (limited to 'cpp/test')
-rw-r--r--cpp/test/util/json_test.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/cpp/test/util/json_test.cc b/cpp/test/util/json_test.cc
index b701ef1..c159d96 100644
--- a/cpp/test/util/json_test.cc
+++ b/cpp/test/util/json_test.cc
@@ -21,6 +21,7 @@
namespace {
using i18n::addressinput::Json;
+using i18n::addressinput::scoped_ptr;
TEST(JsonTest, EmptyStringIsNotValid) {
Json json;
@@ -109,4 +110,19 @@ TEST(JsonTest, NumberIsNotValid) {
EXPECT_FALSE(json.ParseObject("3"));
}
+TEST(JsonTest, NoDictionaryFound) {
+ Json json;
+ EXPECT_TRUE(json.ParseObject("{\"key\":\"value\"}"));
+ EXPECT_FALSE(json.HasDictionaryValueForKey("key"));
+}
+
+TEST(JsonTest, DictionaryFound) {
+ Json json;
+ EXPECT_TRUE(json.ParseObject("{\"key\":{\"inner_key\":\"value\"}}"));
+ ASSERT_TRUE(json.HasDictionaryValueForKey("key"));
+ const Json& sub_json = json.GetDictionaryValueForKey("key");
+ ASSERT_TRUE(sub_json.HasStringValueForKey("inner_key"));
+ EXPECT_EQ("value", sub_json.GetStringValueForKey("inner_key"));
+}
+
} // namespace