aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/protobuf/json/ut
diff options
context:
space:
mode:
authorv01d <v01d@yandex-team.ru>2022-02-10 16:49:40 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:49:40 +0300
commit5c6482e8c13dfaad60e604f0474606a0ec153b1d (patch)
tree5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/protobuf/json/ut
parentfa8b0420162dd36d4f569fdc3f63da0bef8bb8c7 (diff)
downloadydb-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.incl4
-rw-r--r--library/cpp/protobuf/json/ut/json2proto_ut.cpp152
-rw-r--r--library/cpp/protobuf/json/ut/proto2json_ut.cpp142
-rw-r--r--library/cpp/protobuf/json/ut/test.proto66
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"];