diff options
author | Sanchay Harneja <sanchay.h@gmail.com> | 2017-02-18 16:57:26 -0800 |
---|---|---|
committer | Sanchay Harneja <sanchay.h@gmail.com> | 2017-02-18 17:06:43 -0800 |
commit | 172e0a6423742a2a2ca9d64917d63d5352a52e3d (patch) | |
tree | 4253ddb58a0c625f34a088fe9a45386c22f5fdf5 /src/google/protobuf/util/json_util_test.cc | |
parent | a9ab38c17178fcedd9b46c09fa33f94d1a6335c3 (diff) | |
download | protobuf-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.cc | 23 |
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. |