|
|
|
@ -100,6 +100,7 @@ class ProtostreamObjectSourceTest |
|
|
|
|
ow_(&mock_), |
|
|
|
|
use_lower_camel_for_enums_(false), |
|
|
|
|
use_ints_for_enums_(false), |
|
|
|
|
use_preserve_proto_field_names_(false), |
|
|
|
|
add_trailing_zeros_(false), |
|
|
|
|
render_unknown_enum_values_(true) { |
|
|
|
|
helper_.ResetTypeInfo(Book::descriptor(), Proto3Message::descriptor()); |
|
|
|
@ -123,6 +124,7 @@ class ProtostreamObjectSourceTest |
|
|
|
|
helper_.NewProtoSource(&in_stream, GetTypeUrl(descriptor))); |
|
|
|
|
if (use_lower_camel_for_enums_) os->set_use_lower_camel_for_enums(true); |
|
|
|
|
if (use_ints_for_enums_) os->set_use_ints_for_enums(true); |
|
|
|
|
if (use_preserve_proto_field_names_) os->set_preserve_proto_field_names(true); |
|
|
|
|
os->set_max_recursion_depth(64); |
|
|
|
|
return os->WriteTo(&mock_); |
|
|
|
|
} |
|
|
|
@ -272,6 +274,8 @@ class ProtostreamObjectSourceTest |
|
|
|
|
|
|
|
|
|
void UseIntsForEnums() { use_ints_for_enums_ = true; } |
|
|
|
|
|
|
|
|
|
void UsePreserveProtoFieldNames() { use_preserve_proto_field_names_ = true; } |
|
|
|
|
|
|
|
|
|
void AddTrailingZeros() { add_trailing_zeros_ = true; } |
|
|
|
|
|
|
|
|
|
void SetRenderUnknownEnumValues(bool value) { |
|
|
|
@ -284,6 +288,7 @@ class ProtostreamObjectSourceTest |
|
|
|
|
ExpectingObjectWriter ow_; |
|
|
|
|
bool use_lower_camel_for_enums_; |
|
|
|
|
bool use_ints_for_enums_; |
|
|
|
|
bool use_preserve_proto_field_names_; |
|
|
|
|
bool add_trailing_zeros_; |
|
|
|
|
bool render_unknown_enum_values_; |
|
|
|
|
}; |
|
|
|
@ -536,6 +541,16 @@ TEST_P(ProtostreamObjectSourceTest, UseIntsForEnumsTest) { |
|
|
|
|
DoTest(book, Book::descriptor()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(ProtostreamObjectSourceTest, UsePreserveProtoFieldNames) { |
|
|
|
|
Book book; |
|
|
|
|
book.set_snake_field("foo"); |
|
|
|
|
|
|
|
|
|
UsePreserveProtoFieldNames(); |
|
|
|
|
|
|
|
|
|
ow_.StartObject("")->RenderString("snake_field", "foo")->EndObject(); |
|
|
|
|
DoTest(book, Book::descriptor()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(ProtostreamObjectSourceTest, |
|
|
|
|
UnknownEnumAreDroppedWhenRenderUnknownEnumValuesIsUnset) { |
|
|
|
|
Proto3Message message; |
|
|
|
@ -769,6 +784,69 @@ TEST_P(ProtostreamObjectSourceAnysTest, BasicAny) { |
|
|
|
|
DoTest(out, AnyOut::descriptor()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(ProtostreamObjectSourceAnysTest, LowerCamelEnumOutputSnakeCase) { |
|
|
|
|
AnyOut out; |
|
|
|
|
::google::protobuf::Any* any = out.mutable_any(); |
|
|
|
|
|
|
|
|
|
Book book; |
|
|
|
|
book.set_type(Book::arts_and_photography); |
|
|
|
|
any->PackFrom(book); |
|
|
|
|
|
|
|
|
|
UseLowerCamelForEnums(); |
|
|
|
|
|
|
|
|
|
ow_.StartObject("") |
|
|
|
|
->StartObject("any") |
|
|
|
|
->RenderString("@type", |
|
|
|
|
"type.googleapis.com/google.protobuf.testing.Book") |
|
|
|
|
->RenderString("type", "artsAndPhotography") |
|
|
|
|
->EndObject() |
|
|
|
|
->EndObject(); |
|
|
|
|
|
|
|
|
|
DoTest(out, AnyOut::descriptor()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(ProtostreamObjectSourceAnysTest, UseIntsForEnumsTest) { |
|
|
|
|
AnyOut out; |
|
|
|
|
::google::protobuf::Any* any = out.mutable_any(); |
|
|
|
|
|
|
|
|
|
Book book; |
|
|
|
|
book.set_type(Book::ACTION_AND_ADVENTURE); |
|
|
|
|
any->PackFrom(book); |
|
|
|
|
|
|
|
|
|
UseIntsForEnums(); |
|
|
|
|
|
|
|
|
|
ow_.StartObject("") |
|
|
|
|
->StartObject("any") |
|
|
|
|
->RenderString("@type", |
|
|
|
|
"type.googleapis.com/google.protobuf.testing.Book") |
|
|
|
|
->RenderInt32("type", 3) |
|
|
|
|
->EndObject() |
|
|
|
|
->EndObject(); |
|
|
|
|
|
|
|
|
|
DoTest(out, AnyOut::descriptor()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(ProtostreamObjectSourceAnysTest, UsePreserveProtoFieldNames) { |
|
|
|
|
AnyOut out; |
|
|
|
|
::google::protobuf::Any* any = out.mutable_any(); |
|
|
|
|
|
|
|
|
|
Book book; |
|
|
|
|
book.set_snake_field("foo"); |
|
|
|
|
any->PackFrom(book); |
|
|
|
|
|
|
|
|
|
UsePreserveProtoFieldNames(); |
|
|
|
|
|
|
|
|
|
ow_.StartObject("") |
|
|
|
|
->StartObject("any") |
|
|
|
|
->RenderString("@type", |
|
|
|
|
"type.googleapis.com/google.protobuf.testing.Book") |
|
|
|
|
->RenderString("snake_field", "foo") |
|
|
|
|
->EndObject() |
|
|
|
|
->EndObject(); |
|
|
|
|
|
|
|
|
|
DoTest(out, AnyOut::descriptor()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(ProtostreamObjectSourceAnysTest, RecursiveAny) { |
|
|
|
|
AnyOut out; |
|
|
|
|
::google::protobuf::Any* any = out.mutable_any(); |
|
|
|
|