aboutsummaryrefslogtreecommitdiff
path: root/src/google/protobuf/util/json_util_test.cc
diff options
context:
space:
mode:
authorSanchay Harneja <sanchay.h@gmail.com>2017-02-18 16:57:26 -0800
committerSanchay Harneja <sanchay.h@gmail.com>2017-02-18 17:06:43 -0800
commit172e0a6423742a2a2ca9d64917d63d5352a52e3d (patch)
tree4253ddb58a0c625f34a088fe9a45386c22f5fdf5 /src/google/protobuf/util/json_util_test.cc
parenta9ab38c17178fcedd9b46c09fa33f94d1a6335c3 (diff)
downloadprotobuf-172e0a6423742a2a2ca9d64917d63d5352a52e3d.tar.gz
protobuf-172e0a6423742a2a2ca9d64917d63d5352a52e3d.tar.bz2
protobuf-172e0a6423742a2a2ca9d64917d63d5352a52e3d.zip
Add an option to always print enums as ints in Json API
https://github.com/google/protobuf/issues/2735
Diffstat (limited to 'src/google/protobuf/util/json_util_test.cc')
-rw-r--r--src/google/protobuf/util/json_util_test.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/google/protobuf/util/json_util_test.cc b/src/google/protobuf/util/json_util_test.cc
index bf35ae3e..796718d5 100644
--- a/src/google/protobuf/util/json_util_test.cc
+++ b/src/google/protobuf/util/json_util_test.cc
@@ -160,6 +160,29 @@ TEST_F(JsonUtilTest, TestDefaultValues) {
ToJson(m, options));
}
+TEST_F(JsonUtilTest, TestAlwaysPrintEnumsAsInts) {
+ TestMessage orig;
+ orig.set_enum_value(proto3::EnumType::BAR);
+ orig.add_repeated_enum_value(proto3::EnumType::FOO);
+ orig.add_repeated_enum_value(proto3::EnumType::BAR);
+
+ JsonPrintOptions print_options;
+ print_options.always_print_enums_as_ints = true;
+
+ string expected_json =
+ "{\"enumValue\":1,\"repeatedEnumValue\":[0,1]}";
+ EXPECT_EQ(expected_json, ToJson(orig, print_options));
+
+ TestMessage parsed;
+ JsonParseOptions parse_options;
+ ASSERT_TRUE(FromJson(expected_json, &parsed, parse_options));
+
+ EXPECT_EQ(proto3::EnumType::BAR, parsed.enum_value());
+ EXPECT_EQ(2, parsed.repeated_enum_value_size());
+ EXPECT_EQ(proto3::EnumType::FOO, parsed.repeated_enum_value(0));
+ EXPECT_EQ(proto3::EnumType::BAR, parsed.repeated_enum_value(1));
+}
+
TEST_F(JsonUtilTest, ParseMessage) {
// Some random message but good enough to verify that the parsing warpper
// functions are working properly.