Commit c12cc349 authored by Jie Luo's avatar Jie Luo Committed by GitHub

Merge pull request #2837 from anandolee/master

DefaultValueObjectWriter should populate oneof message field
parents 6b27c1f9 d59592af
......@@ -363,8 +363,9 @@ void DefaultValueObjectWriter::Node::PopulateChildren(
}
// If oneof_index() != 0, the child field is part of a "oneof", which means
// the child field is optional and we shouldn't populate its default value.
if (field.oneof_index() != 0) continue;
// the child field is optional and we shouldn't populate its default
// primitive value.
if (field.oneof_index() != 0 && kind == PRIMITIVE) continue;
// If the child field is of primitive type, sets its data to the default
// value of its type.
......
......@@ -51,6 +51,7 @@ using proto3::FOO;
using proto3::BAR;
using proto3::TestMessage;
using proto3::TestMap;
using proto3::TestOneof;
using testing::MapIn;
static const char kTypeUrlPrefix[] = "type.googleapis.com";
......@@ -232,6 +233,21 @@ TEST_F(JsonUtilTest, ParsePrimitiveMapIn) {
EXPECT_EQ(message.DebugString(), other.DebugString());
}
TEST_F(JsonUtilTest, PrintPrimitiveOneof) {
TestOneof message;
JsonPrintOptions options;
options.always_print_primitive_fields = true;
message.mutable_oneof_message_value();
EXPECT_EQ(
"{\"oneofMessageValue\":{\"value\":0}}",
ToJson(message, options));
message.set_oneof_int32_value(1);
EXPECT_EQ(
"{\"oneofInt32Value\":1}",
ToJson(message, options));
}
TEST_F(JsonUtilTest, TestParseIgnoreUnknownFields) {
TestMessage m;
JsonParseOptions options;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment