diff options
author | v01d <v01d@yandex-team.ru> | 2022-02-10 16:49:40 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:40 +0300 |
commit | 5c6482e8c13dfaad60e604f0474606a0ec153b1d (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/protobuf/json/ut | |
parent | fa8b0420162dd36d4f569fdc3f63da0bef8bb8c7 (diff) | |
download | ydb-5c6482e8c13dfaad60e604f0474606a0ec153b1d.tar.gz |
Restoring authorship annotation for <v01d@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/protobuf/json/ut')
-rw-r--r-- | library/cpp/protobuf/json/ut/fields.incl | 4 | ||||
-rw-r--r-- | library/cpp/protobuf/json/ut/json2proto_ut.cpp | 152 | ||||
-rw-r--r-- | library/cpp/protobuf/json/ut/proto2json_ut.cpp | 142 | ||||
-rw-r--r-- | library/cpp/protobuf/json/ut/test.proto | 66 |
4 files changed, 182 insertions, 182 deletions
diff --git a/library/cpp/protobuf/json/ut/fields.incl b/library/cpp/protobuf/json/ut/fields.incl index 210645ce81..4b22985836 100644 --- a/library/cpp/protobuf/json/ut/fields.incl +++ b/library/cpp/protobuf/json/ut/fields.incl @@ -19,5 +19,5 @@ DEFINE_FIELD(Float, 1.123f) DEFINE_FIELD(Double, 1.123456789012) DEFINE_FIELD(OneString, "Lorem ipsum dolor") DEFINE_FIELD(OneTwoString, "Lorem ipsum dolor sit") -DEFINE_FIELD(ABC, "abc") -DEFINE_FIELD(UserID, "some_id")
\ No newline at end of file +DEFINE_FIELD(ABC, "abc") +DEFINE_FIELD(UserID, "some_id")
\ No newline at end of file diff --git a/library/cpp/protobuf/json/ut/json2proto_ut.cpp b/library/cpp/protobuf/json/ut/json2proto_ut.cpp index 564ff12ed6..0dfe57bc7a 100644 --- a/library/cpp/protobuf/json/ut/json2proto_ut.cpp +++ b/library/cpp/protobuf/json/ut/json2proto_ut.cpp @@ -23,7 +23,7 @@ using namespace NProtobufJson; using namespace NProtobufJsonTest; -namespace google { +namespace google { namespace protobuf { namespace internal { void MapTestForceDeterministic() { @@ -31,16 +31,16 @@ namespace google { } } } // namespace protobuf -} - +} + namespace { - class TInit { - public: - TInit() { - ::google::protobuf::internal::MapTestForceDeterministic(); - } - } Init; - + class TInit { + public: + TInit() { + ::google::protobuf::internal::MapTestForceDeterministic(); + } + } Init; + template <typename T> TString ConvertToString(T value) { return ToString(value); @@ -55,19 +55,19 @@ namespace { NJsonWriter::TBuf buf(NJsonWriter::HEM_UNSAFE); return buf.WriteJsonValue(&json).Str(); } - + void TestComplexMapAsObject(std::function<void(TComplexMapType&)>&& init, const TString& json, const TJson2ProtoConfig& config = TJson2ProtoConfig().SetMapAsObject(true)) { - TComplexMapType modelProto; - - init(modelProto); - - TString modelStr(json); - - TComplexMapType proto; - UNIT_ASSERT_NO_EXCEPTION(proto = Json2Proto<TComplexMapType>(modelStr, config)); - - UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); - } + TComplexMapType modelProto; + + init(modelProto); + + TString modelStr(json); + + TComplexMapType proto; + UNIT_ASSERT_NO_EXCEPTION(proto = Json2Proto<TComplexMapType>(modelStr, config)); + + UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); + } } Y_UNIT_TEST_SUITE(TJson2ProtoTest) { @@ -398,38 +398,38 @@ Y_UNIT_TEST(TestFieldNameMode) { UNIT_ASSERT(proto.GetOneTwoString() == "value"); } - // snake_case - { - TString modelStr(R"_({"string":"value"})_"); - - TFlatOptional proto; - TJson2ProtoConfig config; - config.FieldNameMode = TJson2ProtoConfig::FieldNameSnakeCase; - - UNIT_ASSERT_NO_EXCEPTION(proto = Json2Proto<TFlatOptional>(modelStr, config)); - UNIT_ASSERT(proto.GetString() == "value"); - } - { - TString modelStr(R"_({"one_string":"value"})_"); - - TFlatOptional proto; - TJson2ProtoConfig config; - config.FieldNameMode = TJson2ProtoConfig::FieldNameSnakeCase; - - UNIT_ASSERT_NO_EXCEPTION(proto = Json2Proto<TFlatOptional>(modelStr, config)); - UNIT_ASSERT(proto.GetOneString() == "value"); - } - { - TString modelStr(R"_({"one_two_string":"value"})_"); - - TFlatOptional proto; - TJson2ProtoConfig config; - config.FieldNameMode = TJson2ProtoConfig::FieldNameSnakeCase; - - UNIT_ASSERT_NO_EXCEPTION(proto = Json2Proto<TFlatOptional>(modelStr, config)); - UNIT_ASSERT(proto.GetOneTwoString() == "value"); - } - + // snake_case + { + TString modelStr(R"_({"string":"value"})_"); + + TFlatOptional proto; + TJson2ProtoConfig config; + config.FieldNameMode = TJson2ProtoConfig::FieldNameSnakeCase; + + UNIT_ASSERT_NO_EXCEPTION(proto = Json2Proto<TFlatOptional>(modelStr, config)); + UNIT_ASSERT(proto.GetString() == "value"); + } + { + TString modelStr(R"_({"one_string":"value"})_"); + + TFlatOptional proto; + TJson2ProtoConfig config; + config.FieldNameMode = TJson2ProtoConfig::FieldNameSnakeCase; + + UNIT_ASSERT_NO_EXCEPTION(proto = Json2Proto<TFlatOptional>(modelStr, config)); + UNIT_ASSERT(proto.GetOneString() == "value"); + } + { + TString modelStr(R"_({"one_two_string":"value"})_"); + + TFlatOptional proto; + TJson2ProtoConfig config; + config.FieldNameMode = TJson2ProtoConfig::FieldNameSnakeCase; + + UNIT_ASSERT_NO_EXCEPTION(proto = Json2Proto<TFlatOptional>(modelStr, config)); + UNIT_ASSERT(proto.GetOneTwoString() == "value"); + } + // Original case, repeated { TString modelStr(R"_({"I32":[1,2]})_"); @@ -743,22 +743,22 @@ Y_UNIT_TEST(TestValueVectorizer) { Y_UNIT_TEST(TestMapAsObject) { TMapType modelProto; - + auto& items = *modelProto.MutableItems(); items["key1"] = "value1"; items["key2"] = "value2"; items["key3"] = "value3"; - + TString modelStr(R"_({"Items":{"key1":"value1","key2":"value2","key3":"value3"}})_"); - + TJson2ProtoConfig config; config.MapAsObject = true; TMapType proto; UNIT_ASSERT_NO_EXCEPTION(proto = Json2Proto<TMapType>(modelStr, config)); - + UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); } // TestMapAsObject - + Y_UNIT_TEST(TestComplexMapAsObject_I32) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -769,7 +769,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_I32) { }, R"_({"I32":{"1":1,"-2":-2,"3":3}})_"); } // TestComplexMapAsObject_I32 - + Y_UNIT_TEST(TestComplexMapAsObject_I64) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -780,7 +780,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_I64) { }, R"_({"I64":{"2147483649":2147483649,"-2147483650":-2147483650,"2147483651":2147483651}})_"); } // TestComplexMapAsObject_I64 - + Y_UNIT_TEST(TestComplexMapAsObject_UI32) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -791,7 +791,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_UI32) { }, R"_({"UI32":{"1073741825":1073741825,"1073741826":1073741826,"1073741827":1073741827}})_"); } // TestComplexMapAsObject_UI32 - + Y_UNIT_TEST(TestComplexMapAsObject_UI64) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -802,7 +802,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_UI64) { }, R"_({"UI64":{"9223372036854775809":9223372036854775809,"9223372036854775810":9223372036854775810,"9223372036854775811":9223372036854775811}})_"); } // TestComplexMapAsObject_UI64 - + Y_UNIT_TEST(TestComplexMapAsObject_SI32) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -813,7 +813,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_SI32) { }, R"_({"SI32":{"1":1,"-2":-2,"3":3}})_"); } // TestComplexMapAsObject_SI32 - + Y_UNIT_TEST(TestComplexMapAsObject_SI64) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -824,7 +824,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_SI64) { }, R"_({"SI64":{"2147483649":2147483649,"-2147483650":-2147483650,"2147483651":2147483651}})_"); } // TestComplexMapAsObject_SI64 - + Y_UNIT_TEST(TestComplexMapAsObject_FI32) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -835,7 +835,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_FI32) { }, R"_({"FI32":{"1073741825":1073741825,"1073741826":1073741826,"1073741827":1073741827}})_"); } // TestComplexMapAsObject_FI32 - + Y_UNIT_TEST(TestComplexMapAsObject_FI64) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -846,7 +846,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_FI64) { }, R"_({"FI64":{"9223372036854775809":9223372036854775809,"9223372036854775810":9223372036854775810,"9223372036854775811":9223372036854775811}})_"); } // TestComplexMapAsObject_FI64 - + Y_UNIT_TEST(TestComplexMapAsObject_SFI32) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -857,7 +857,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_SFI32) { }, R"_({"SFI32":{"1":1,"-2":-2,"3":3}})_"); } // TestComplexMapAsObject_SFI32 - + Y_UNIT_TEST(TestComplexMapAsObject_SFI64) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -868,7 +868,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_SFI64) { }, R"_({"SFI64":{"2147483649":2147483649,"-2147483650":-2147483650,"2147483651":2147483651}})_"); } // TestComplexMapAsObject_SFI64 - + Y_UNIT_TEST(TestComplexMapAsObject_Bool) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -878,7 +878,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_Bool) { }, R"_({"Bool":{"true":true,"false":false}})_"); } // TestComplexMapAsObject_Bool - + Y_UNIT_TEST(TestComplexMapAsObject_String) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -890,7 +890,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_String) { }, R"_({"String":{"key1":"value1","key2":"value2","key3":"value3","":"value4"}})_"); } // TestComplexMapAsObject_String - + Y_UNIT_TEST(TestComplexMapAsObject_Enum) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -901,7 +901,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_Enum) { }, R"_({"Enum":{"key1":1,"key2":2,"key3":3}})_"); } // TestComplexMapAsObject_Enum - + Y_UNIT_TEST(TestComplexMapAsObject_EnumString) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -953,7 +953,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_Float) { }, R"_({"Float":{"key1":0.1,"key2":0.2,"key3":0.3}})_"); } // TestComplexMapAsObject_Float - + Y_UNIT_TEST(TestComplexMapAsObject_Double) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -964,7 +964,7 @@ Y_UNIT_TEST(TestComplexMapAsObject_Double) { }, R"_({"Double":{"key1":0.1,"key2":0.2,"key3":0.3}})_"); } // TestComplexMapAsObject_Double - + Y_UNIT_TEST(TestComplexMapAsObject_Nested) { TestComplexMapAsObject( [](TComplexMapType& proto) { @@ -978,10 +978,10 @@ Y_UNIT_TEST(TestComplexMapAsObject_Nested) { }, R"_({"Nested":{"key1":{"String":{"key":"value"}},"key2":{"String":{"key":"value"}},"key3":{"String":{"key":"value"}}}})_"); } // TestComplexMapAsObject_Nested - + Y_UNIT_TEST(TestMapAsObjectConfigNotSet) { TString modelStr(R"_({"Items":{"key":"value"}})_"); - + TJson2ProtoConfig config; UNIT_ASSERT_EXCEPTION_CONTAINS( Json2Proto<TMapType>(modelStr, config), yexception, diff --git a/library/cpp/protobuf/json/ut/proto2json_ut.cpp b/library/cpp/protobuf/json/ut/proto2json_ut.cpp index 7cfdd3b14f..07e52d7f2f 100644 --- a/library/cpp/protobuf/json/ut/proto2json_ut.cpp +++ b/library/cpp/protobuf/json/ut/proto2json_ut.cpp @@ -756,72 +756,72 @@ Y_UNIT_TEST(TestFieldNameMode) { UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } - // snake_case - { - TString modelStr(R"_({"string":"value"})_"); - - TFlatOptional proto; - proto.SetString("value"); - TStringStream jsonStr; - TProto2JsonConfig config; - config.FieldNameMode = TProto2JsonConfig::FieldNameSnakeCase; - - UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); - UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); - } - { - TString modelStr(R"_({"one_string":"value"})_"); - - TFlatOptional proto; - proto.SetOneString("value"); - TStringStream jsonStr; - TProto2JsonConfig config; - config.FieldNameMode = TProto2JsonConfig::FieldNameSnakeCase; - - UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); - UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); - } - { - TString modelStr(R"_({"one_two_string":"value"})_"); - - TFlatOptional proto; - proto.SetOneTwoString("value"); - TStringStream jsonStr; - TProto2JsonConfig config; - config.FieldNameMode = TProto2JsonConfig::FieldNameSnakeCase; - - UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); - UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); - } - { - TString modelStr(R"_({"a_b_c":"value","user_i_d":"value"})_"); - - TFlatOptional proto; - proto.SetABC("value"); - proto.SetUserID("value"); - TStringStream jsonStr; - TProto2JsonConfig config; - config.FieldNameMode = TProto2JsonConfig::FieldNameSnakeCase; - - UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); - UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); - } - - // snake_case_dense - { - TString modelStr(R"_({"abc":"value","user_id":"value"})_"); - - TFlatOptional proto; - proto.SetABC("value"); - proto.SetUserID("value"); - TStringStream jsonStr; - TProto2JsonConfig config; - config.FieldNameMode = TProto2JsonConfig::FieldNameSnakeCaseDense; - - UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); - UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); - } - + // snake_case + { + TString modelStr(R"_({"string":"value"})_"); + + TFlatOptional proto; + proto.SetString("value"); + TStringStream jsonStr; + TProto2JsonConfig config; + config.FieldNameMode = TProto2JsonConfig::FieldNameSnakeCase; + + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); + UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); + } + { + TString modelStr(R"_({"one_string":"value"})_"); + + TFlatOptional proto; + proto.SetOneString("value"); + TStringStream jsonStr; + TProto2JsonConfig config; + config.FieldNameMode = TProto2JsonConfig::FieldNameSnakeCase; + + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); + UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); + } + { + TString modelStr(R"_({"one_two_string":"value"})_"); + + TFlatOptional proto; + proto.SetOneTwoString("value"); + TStringStream jsonStr; + TProto2JsonConfig config; + config.FieldNameMode = TProto2JsonConfig::FieldNameSnakeCase; + + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); + UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); + } + { + TString modelStr(R"_({"a_b_c":"value","user_i_d":"value"})_"); + + TFlatOptional proto; + proto.SetABC("value"); + proto.SetUserID("value"); + TStringStream jsonStr; + TProto2JsonConfig config; + config.FieldNameMode = TProto2JsonConfig::FieldNameSnakeCase; + + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); + UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); + } + + // snake_case_dense + { + TString modelStr(R"_({"abc":"value","user_id":"value"})_"); + + TFlatOptional proto; + proto.SetABC("value"); + proto.SetUserID("value"); + TStringStream jsonStr; + TProto2JsonConfig config; + config.FieldNameMode = TProto2JsonConfig::FieldNameSnakeCaseDense; + + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); + UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); + } + // Original case, repeated { TString modelStr(R"_({"I32":[1,2]})_"); @@ -933,22 +933,22 @@ Y_UNIT_TEST(TestMap) { Y_UNIT_TEST(TestMapAsObject) { TMapType proto; - + auto& items = *proto.MutableItems(); items["key1"] = "value1"; items["key2"] = "value2"; items["key3"] = "value3"; - + TString modelStr(R"_({"Items":{"key3":"value3","key2":"value2","key1":"value1"}})_"); - + TStringStream jsonStr; TProto2JsonConfig config; config.MapAsObject = true; UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); - + UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } // TestMapAsObject - + Y_UNIT_TEST(TestMapWTF) { TMapType proto; diff --git a/library/cpp/protobuf/json/ut/test.proto b/library/cpp/protobuf/json/ut/test.proto index 0a04bdd528..0fa996fd41 100644 --- a/library/cpp/protobuf/json/ut/test.proto +++ b/library/cpp/protobuf/json/ut/test.proto @@ -1,7 +1,7 @@ package NProtobufJsonTest; enum EEnum { - E_0 = 0; + E_0 = 0; E_1 = 1; E_2 = 2; E_3 = 3; @@ -31,8 +31,8 @@ message TFlatOptional { optional string OneString = 17; optional string OneTwoString = 18; - optional string ABC = 19; - optional string UserID = 20; + optional string ABC = 19; + optional string UserID = 20; }; message TFlatRequired { @@ -59,8 +59,8 @@ message TFlatRequired { required string OneString = 17; required string OneTwoString = 18; - required string ABC = 19; - required string UserID = 20; + required string ABC = 19; + required string UserID = 20; }; message TFlatRepeated { @@ -87,8 +87,8 @@ message TFlatRepeated { repeated string OneString = 17; repeated string OneTwoString = 18; - repeated string ABC = 19; - repeated string UserID = 20; + repeated string ABC = 19; + repeated string UserID = 20; }; message TFlatDefault { @@ -115,8 +115,8 @@ message TFlatDefault { optional string OneString = 17 [default = "string"]; optional string OneTwoString = 18 [default = "string"]; - optional string ABC = 19 [default = "abc"]; - optional string UserID = 20 [default = "some_id"]; + optional string ABC = 19 [default = "abc"]; + optional string UserID = 20 [default = "some_id"]; }; message TCompositeOptional { @@ -147,30 +147,30 @@ message TEnumValueGeneratorType { optional EEnum Enum = 1; }; -message TComplexMapType { - map<int32, int32> I32 = 1; - map<int64, int64> I64 = 2; - map<uint32, uint32> UI32 = 3; - map<uint64, uint64> UI64 = 4; - map<sint32, sint32> SI32 = 5; - map<sint64, sint64> SI64 = 6; - map<fixed32, fixed32> FI32 = 7; - map<fixed64, fixed64> FI64 = 8; - map<sfixed32, sfixed32> SFI32 = 9; - map<sfixed64, sfixed64> SFI64 = 10; - - map<bool, bool> Bool = 11; - - map<string, string> String = 12; - - map<string, EEnum> Enum = 13; - - map<string, float> Float = 14; - map<string, double> Double = 15; - - map<string, TComplexMapType> Nested = 16; -}; - +message TComplexMapType { + map<int32, int32> I32 = 1; + map<int64, int64> I64 = 2; + map<uint32, uint32> UI32 = 3; + map<uint64, uint64> UI64 = 4; + map<sint32, sint32> SI32 = 5; + map<sint64, sint64> SI64 = 6; + map<fixed32, fixed32> FI32 = 7; + map<fixed64, fixed64> FI64 = 8; + map<sfixed32, sfixed32> SFI32 = 9; + map<sfixed64, sfixed64> SFI64 = 10; + + map<bool, bool> Bool = 11; + + map<string, string> String = 12; + + map<string, EEnum> Enum = 13; + + map<string, float> Float = 14; + map<string, double> Double = 15; + + map<string, TComplexMapType> Nested = 16; +}; + message TWithJsonName { optional int32 my_upper = 1 [json_name = "My-Upper"]; optional int32 My_lower = 2 [json_name = "my-lower"]; |