DefaultValueObjectWriter should populate oneof message field
This commit is contained in:
parent
ae220cda61
commit
d59592af61
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user