@ -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 ( ) ;