diff options
author | familom <familom@yandex-team.ru> | 2022-02-10 16:49:49 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:49 +0300 |
commit | 9c61d3a2cac2a16341e82c613b030fcc03bf277a (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/protobuf/json/ut | |
parent | f281aaf77179d27d6208b873e95ae6cd45765a63 (diff) | |
download | ydb-9c61d3a2cac2a16341e82c613b030fcc03bf277a.tar.gz |
Restoring authorship annotation for <familom@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 | 38 | ||||
-rw-r--r-- | library/cpp/protobuf/json/ut/json.h | 50 | ||||
-rw-r--r-- | library/cpp/protobuf/json/ut/json2proto_ut.cpp | 84 | ||||
-rw-r--r-- | library/cpp/protobuf/json/ut/proto.h | 32 | ||||
-rw-r--r-- | library/cpp/protobuf/json/ut/proto2json_ut.cpp | 204 | ||||
-rw-r--r-- | library/cpp/protobuf/json/ut/repeated_fields.incl | 34 | ||||
-rw-r--r-- | library/cpp/protobuf/json/ut/test.proto | 176 | ||||
-rw-r--r-- | library/cpp/protobuf/json/ut/ya.make | 16 |
8 files changed, 317 insertions, 317 deletions
diff --git a/library/cpp/protobuf/json/ut/fields.incl b/library/cpp/protobuf/json/ut/fields.incl index de255a08da..4b22985836 100644 --- a/library/cpp/protobuf/json/ut/fields.incl +++ b/library/cpp/protobuf/json/ut/fields.incl @@ -1,22 +1,22 @@ -// Intentionally no #pragma once - -// (Field name == JSON key, Value) -DEFINE_FIELD(I32, Min<i32>()) -DEFINE_FIELD(I64, Min<i64>()) -DEFINE_FIELD(UI32, Max<ui32>()) -DEFINE_FIELD(UI64, Max<ui64>()) -DEFINE_FIELD(SI32, Min<i32>()) -DEFINE_FIELD(SI64, Min<i64>()) -DEFINE_FIELD(FI32, Max<ui32>()) -DEFINE_FIELD(FI64, Max<ui64>()) -DEFINE_FIELD(SFI32, Min<i32>()) -DEFINE_FIELD(SFI64, Min<i64>()) -DEFINE_FIELD(Bool, true) -DEFINE_FIELD(String, "Lorem ipsum") -DEFINE_FIELD(Bytes, "מחשב") -DEFINE_FIELD(Enum, E_1) -DEFINE_FIELD(Float, 1.123f) -DEFINE_FIELD(Double, 1.123456789012) +// Intentionally no #pragma once + +// (Field name == JSON key, Value) +DEFINE_FIELD(I32, Min<i32>()) +DEFINE_FIELD(I64, Min<i64>()) +DEFINE_FIELD(UI32, Max<ui32>()) +DEFINE_FIELD(UI64, Max<ui64>()) +DEFINE_FIELD(SI32, Min<i32>()) +DEFINE_FIELD(SI64, Min<i64>()) +DEFINE_FIELD(FI32, Max<ui32>()) +DEFINE_FIELD(FI64, Max<ui64>()) +DEFINE_FIELD(SFI32, Min<i32>()) +DEFINE_FIELD(SFI64, Min<i64>()) +DEFINE_FIELD(Bool, true) +DEFINE_FIELD(String, "Lorem ipsum") +DEFINE_FIELD(Bytes, "מחשב") +DEFINE_FIELD(Enum, E_1) +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") diff --git a/library/cpp/protobuf/json/ut/json.h b/library/cpp/protobuf/json/ut/json.h index 4f942f347b..c1f108e6e4 100644 --- a/library/cpp/protobuf/json/ut/json.h +++ b/library/cpp/protobuf/json/ut/json.h @@ -1,34 +1,34 @@ -#pragma once - +#pragma once + #include <library/cpp/protobuf/json/ut/test.pb.h> - + #include <library/cpp/json/json_value.h> - -#include <cstdarg> - -#include <util/generic/hash_set.h> + +#include <cstdarg> + +#include <util/generic/hash_set.h> #include <util/generic/string.h> - -#include <util/system/defaults.h> - -namespace NProtobufJsonTest { + +#include <util/system/defaults.h> + +namespace NProtobufJsonTest { inline NJson::TJsonValue CreateFlatJson(const THashSet<TString>& skippedKeys = THashSet<TString>()) { NJson::TJsonValue json; - + #define DEFINE_FIELD(name, value) \ if (skippedKeys.find(#name) == skippedKeys.end()) \ - json.InsertValue(#name, value); -#include "fields.incl" -#undef DEFINE_FIELD - + json.InsertValue(#name, value); +#include "fields.incl" +#undef DEFINE_FIELD + return json; } - + inline NJson::TJsonValue CreateRepeatedFlatJson(const THashSet<TString>& skippedKeys = THashSet<TString>()) { NJson::TJsonValue json; - + #define DEFINE_REPEATED_FIELD(name, type, ...) \ if (skippedKeys.find(#name) == skippedKeys.end()) { \ type values[] = {__VA_ARGS__}; \ @@ -37,22 +37,22 @@ namespace NProtobufJsonTest { array.AppendValue(values[i]); \ } \ json.InsertValue(#name, array); \ - } -#include "repeated_fields.incl" -#undef DEFINE_REPEATED_FIELD - + } +#include "repeated_fields.incl" +#undef DEFINE_REPEATED_FIELD + return json; } - + inline NJson::TJsonValue CreateCompositeJson(const THashSet<TString>& skippedKeys = THashSet<TString>()) { const NJson::TJsonValue& part = CreateFlatJson(skippedKeys); NJson::TJsonValue json; json.InsertValue("Part", part); - + return json; } - + #define UNIT_ASSERT_JSONS_EQUAL(lhs, rhs) \ if (lhs != rhs) { \ UNIT_ASSERT_STRINGS_EQUAL(lhs.GetStringRobust(), rhs.GetStringRobust()); \ diff --git a/library/cpp/protobuf/json/ut/json2proto_ut.cpp b/library/cpp/protobuf/json/ut/json2proto_ut.cpp index 4752d2dfa6..0dfe57bc7a 100644 --- a/library/cpp/protobuf/json/ut/json2proto_ut.cpp +++ b/library/cpp/protobuf/json/ut/json2proto_ut.cpp @@ -1,28 +1,28 @@ -#include "json.h" -#include "proto.h" +#include "json.h" +#include "proto.h" #include "proto2json.h" - + #include <library/cpp/protobuf/json/ut/test.pb.h> #include <library/cpp/json/json_value.h> #include <library/cpp/json/json_reader.h> #include <library/cpp/json/json_writer.h> - + #include <library/cpp/protobuf/json/json2proto.h> - + #include <library/cpp/testing/unittest/registar.h> - -#include <util/generic/hash_set.h> + +#include <util/generic/hash_set.h> #include <util/generic/string.h> -#include <util/generic/ylimits.h> -#include <util/stream/str.h> +#include <util/generic/ylimits.h> +#include <util/stream/str.h> #include <util/string/cast.h> -#include <util/system/defaults.h> -#include <util/system/yassert.h> - -using namespace NProtobufJson; -using namespace NProtobufJsonTest; - +#include <util/system/defaults.h> +#include <util/system/yassert.h> + +using namespace NProtobufJson; +using namespace NProtobufJsonTest; + namespace google { namespace protobuf { namespace internal { @@ -79,7 +79,7 @@ Y_UNIT_TEST_SUITE(TJson2ProtoTest) { FillFlatProto(&modelProto); UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); } - + // Try to skip each field #define DEFINE_FIELD(name, value) \ { \ @@ -93,9 +93,9 @@ Y_UNIT_TEST_SUITE(TJson2ProtoTest) { UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); \ } #include <library/cpp/protobuf/json/ut/fields.incl> -#undef DEFINE_FIELD +#undef DEFINE_FIELD } // TestFlatOptional - + Y_UNIT_TEST(TestFlatRequired){ {const NJson::TJsonValue& json = CreateFlatJson(); TFlatRequired proto; @@ -104,7 +104,7 @@ TFlatRequired modelProto; FillFlatProto(&modelProto); UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); } - + // Try to skip each field #define DEFINE_FIELD(name, value) \ { \ @@ -115,9 +115,9 @@ UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); UNIT_ASSERT_EXCEPTION(Json2Proto(json, proto), yexception); \ } #include <library/cpp/protobuf/json/ut/fields.incl> -#undef DEFINE_FIELD +#undef DEFINE_FIELD } // TestFlatRequired - + Y_UNIT_TEST(TestNameGenerator) { TJson2ProtoConfig cfg; cfg.SetNameGenerator([](const NProtoBuf::FieldDescriptor&) { return "42"; }); @@ -165,7 +165,7 @@ TFlatRepeated modelProto; FillRepeatedProto(&modelProto); UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); } - + // Try to skip each field #define DEFINE_REPEATED_FIELD(name, ...) \ { \ @@ -179,9 +179,9 @@ UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); \ } #include <library/cpp/protobuf/json/ut/repeated_fields.incl> -#undef DEFINE_REPEATED_FIELD +#undef DEFINE_REPEATED_FIELD } // TestFlatRepeated - + Y_UNIT_TEST(TestCompositeOptional){ {const NJson::TJsonValue& json = CreateCompositeJson(); TCompositeOptional proto; @@ -190,7 +190,7 @@ TCompositeOptional modelProto; FillCompositeProto(&modelProto); UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); } - + // Try to skip each field #define DEFINE_FIELD(name, value) \ { \ @@ -204,9 +204,9 @@ UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); \ } #include <library/cpp/protobuf/json/ut/fields.incl> -#undef DEFINE_FIELD +#undef DEFINE_FIELD } // TestCompositeOptional - + Y_UNIT_TEST(TestCompositeOptionalStringBuf){ {NJson::TJsonValue json = CreateCompositeJson(); json["Part"]["Double"] = 42.5; @@ -249,37 +249,37 @@ Y_UNIT_TEST(TestCompositeRequired) { FillCompositeProto(&modelProto); UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); } - + { NJson::TJsonValue json; TCompositeRequired proto; UNIT_ASSERT_EXCEPTION(Json2Proto(json, proto), yexception); } } // TestCompositeRequired - + Y_UNIT_TEST(TestCompositeRepeated) { { NJson::TJsonValue json; NJson::TJsonValue array; array.AppendValue(CreateFlatJson()); json.InsertValue("Part", array); - + TCompositeRepeated proto; Json2Proto(json, proto); - + TFlatOptional partModelProto; FillFlatProto(&partModelProto); TCompositeRepeated modelProto; modelProto.AddPart()->CopyFrom(partModelProto); - + UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); } - + { // Array of messages with each field skipped TCompositeRepeated modelProto; NJson::TJsonValue array; - + #define DEFINE_REPEATED_FIELD(name, ...) \ { \ THashSet<TString> skippedField; \ @@ -290,18 +290,18 @@ Y_UNIT_TEST(TestCompositeRepeated) { array.AppendValue(CreateFlatJson(skippedField)); \ } #include <library/cpp/protobuf/json/ut/repeated_fields.incl> -#undef DEFINE_REPEATED_FIELD - +#undef DEFINE_REPEATED_FIELD + NJson::TJsonValue json; json.InsertValue("Part", array); - + TCompositeRepeated proto; Json2Proto(json, proto); - + UNIT_ASSERT_PROTOS_EQUAL(proto, modelProto); } } // TestCompositeRepeated - + Y_UNIT_TEST(TestInvalidEnum) { { NJson::TJsonValue json; @@ -309,13 +309,13 @@ Y_UNIT_TEST(TestInvalidEnum) { TFlatOptional proto; UNIT_ASSERT_EXCEPTION(Json2Proto(json, proto), yexception); } - + { NJson::TJsonValue json; json.InsertValue("Enum", 100); TFlatOptional proto; UNIT_ASSERT_EXCEPTION(Json2Proto(json, proto), yexception); - } + } } Y_UNIT_TEST(TestFieldNameMode) { @@ -1144,4 +1144,4 @@ Y_UNIT_TEST(TestAllowComments) { UNIT_ASSERT_VALUES_EQUAL(proto.GetI64(), 3423); } // TestAllowComments -} // TJson2ProtoTest +} // TJson2ProtoTest diff --git a/library/cpp/protobuf/json/ut/proto.h b/library/cpp/protobuf/json/ut/proto.h index db27ed52c7..8183bfc8e1 100644 --- a/library/cpp/protobuf/json/ut/proto.h +++ b/library/cpp/protobuf/json/ut/proto.h @@ -1,11 +1,11 @@ -#pragma once - -#include <util/generic/hash_set.h> +#pragma once + +#include <util/generic/hash_set.h> #include <util/generic/string.h> - -#include <util/system/defaults.h> - -namespace NProtobufJsonTest { + +#include <util/system/defaults.h> + +namespace NProtobufJsonTest { template <typename TProto> inline void FillFlatProto(TProto* proto, @@ -14,20 +14,20 @@ namespace NProtobufJsonTest { if (skippedFields.find(#name) == skippedFields.end()) \ proto->Set##name(value); #include <library/cpp/protobuf/json/ut/fields.incl> -#undef DEFINE_FIELD +#undef DEFINE_FIELD } - + template <typename TRepeatedField, typename TValue> inline void AddValue(TRepeatedField* field, TValue value) { field->Add(value); } - + inline void AddValue(google::protobuf::RepeatedPtrField<TString>* field, const TString& value) { *(field->Add()) = value; } - + inline void FillRepeatedProto(TFlatRepeated* proto, const THashSet<TString>& skippedFields = THashSet<TString>()) { @@ -37,17 +37,17 @@ namespace NProtobufJsonTest { for (size_t i = 0, end = Y_ARRAY_SIZE(values); i < end; ++i) { \ AddValue(proto->Mutable##name(), values[i]); \ } \ - } + } #include <library/cpp/protobuf/json/ut/repeated_fields.incl> -#undef DEFINE_REPEATED_FIELD +#undef DEFINE_REPEATED_FIELD } - + template <typename TProto> inline void FillCompositeProto(TProto* proto, const THashSet<TString>& skippedFields = THashSet<TString>()) { FillFlatProto(proto->MutablePart(), skippedFields); } - + #define UNIT_ASSERT_PROTOS_EQUAL(lhs, rhs) \ do { \ if (lhs.SerializeAsString() != rhs.SerializeAsString()) { \ @@ -58,5 +58,5 @@ namespace NProtobufJsonTest { UNIT_ASSERT_STRINGS_EQUAL(lhs.SerializeAsString(), rhs.SerializeAsString()); \ } \ } while (false); - + } diff --git a/library/cpp/protobuf/json/ut/proto2json_ut.cpp b/library/cpp/protobuf/json/ut/proto2json_ut.cpp index 0de60cbe8c..07e52d7f2f 100644 --- a/library/cpp/protobuf/json/ut/proto2json_ut.cpp +++ b/library/cpp/protobuf/json/ut/proto2json_ut.cpp @@ -1,30 +1,30 @@ -#include "json.h" -#include "proto.h" - +#include "json.h" +#include "proto.h" + #include <library/cpp/protobuf/json/ut/test.pb.h> #include <library/cpp/json/json_value.h> #include <library/cpp/json/json_reader.h> #include <library/cpp/json/json_writer.h> - + #include <library/cpp/protobuf/json/proto2json.h> - + #include <library/cpp/testing/unittest/registar.h> - -#include <util/generic/hash_set.h> + +#include <util/generic/hash_set.h> #include <util/generic/string.h> -#include <util/generic/ylimits.h> - -#include <util/stream/str.h> - -#include <util/system/defaults.h> -#include <util/system/yassert.h> - +#include <util/generic/ylimits.h> + +#include <util/stream/str.h> + +#include <util/system/defaults.h> +#include <util/system/yassert.h> + #include <limits> -using namespace NProtobufJson; -using namespace NProtobufJsonTest; - +using namespace NProtobufJson; +using namespace NProtobufJsonTest; + Y_UNIT_TEST_SUITE(TProto2JsonFlatTest) { Y_UNIT_TEST(TestFlatDefault) { using namespace ::google::protobuf; @@ -109,7 +109,7 @@ Y_UNIT_TEST_SUITE(TProto2JsonFlatTest) { UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } - + { TStringStream jsonStream; NJson::TJsonValue json; @@ -118,7 +118,7 @@ Y_UNIT_TEST_SUITE(TProto2JsonFlatTest) { UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } // streamed } - + // Try to skip each field #define DEFINE_FIELD(name, value) \ { \ @@ -138,9 +138,9 @@ Y_UNIT_TEST_SUITE(TProto2JsonFlatTest) { } \ } #include <library/cpp/protobuf/json/ut/fields.incl> -#undef DEFINE_FIELD +#undef DEFINE_FIELD } // TestFlatOptional - + Y_UNIT_TEST(TestFlatRequired){ {TFlatRequired proto; FillFlatProto(&proto); @@ -150,7 +150,7 @@ const NJson::TJsonValue& modelJson = CreateFlatJson(); UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } - + { TStringStream jsonStream; NJson::TJsonValue json; @@ -159,7 +159,7 @@ const NJson::TJsonValue& modelJson = CreateFlatJson(); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } // streamed } - + // Try to skip each field #define DEFINE_FIELD(name, value) \ { \ @@ -179,20 +179,20 @@ const NJson::TJsonValue& modelJson = CreateFlatJson(); } \ } #include <library/cpp/protobuf/json/ut/fields.incl> -#undef DEFINE_FIELD +#undef DEFINE_FIELD } // TestFlatRequired - + Y_UNIT_TEST(TestFlatRepeated) { { TFlatRepeated proto; FillRepeatedProto(&proto); const NJson::TJsonValue& modelJson = CreateRepeatedFlatJson(); - { + { NJson::TJsonValue json; UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); - } - + } + { TStringStream jsonStream; NJson::TJsonValue json; @@ -224,9 +224,9 @@ Y_UNIT_TEST(TestFlatRepeated) { } \ } #include <library/cpp/protobuf/json/ut/repeated_fields.incl> -#undef DEFINE_REPEATED_FIELD +#undef DEFINE_REPEATED_FIELD } // TestFlatRepeated - + Y_UNIT_TEST(TestCompositeOptional){ {TCompositeOptional proto; FillCompositeProto(&proto); @@ -236,7 +236,7 @@ const NJson::TJsonValue& modelJson = CreateCompositeJson(); UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } - + { TStringStream jsonStream; NJson::TJsonValue json; @@ -245,7 +245,7 @@ const NJson::TJsonValue& modelJson = CreateCompositeJson(); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } // streamed } - + // Try to skip each field #define DEFINE_FIELD(name, value) \ { \ @@ -265,9 +265,9 @@ const NJson::TJsonValue& modelJson = CreateCompositeJson(); } \ } #include <library/cpp/protobuf/json/ut/fields.incl> -#undef DEFINE_FIELD +#undef DEFINE_FIELD } // TestCompositeOptional - + Y_UNIT_TEST(TestCompositeRequired){ {TCompositeRequired proto; FillCompositeProto(&proto); @@ -277,7 +277,7 @@ const NJson::TJsonValue& modelJson = CreateCompositeJson(); UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } - + { TStringStream jsonStream; NJson::TJsonValue json; @@ -286,7 +286,7 @@ const NJson::TJsonValue& modelJson = CreateCompositeJson(); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } // streamed } - + // Try to skip each field #define DEFINE_FIELD(name, value) \ { \ @@ -306,9 +306,9 @@ const NJson::TJsonValue& modelJson = CreateCompositeJson(); } \ } #include <library/cpp/protobuf/json/ut/fields.incl> -#undef DEFINE_FIELD +#undef DEFINE_FIELD } // TestCompositeRequired - + Y_UNIT_TEST(TestCompositeRepeated) { { TFlatOptional partProto; @@ -320,13 +320,13 @@ Y_UNIT_TEST(TestCompositeRepeated) { NJson::TJsonValue modelArray; modelArray.AppendValue(CreateFlatJson()); modelJson.InsertValue("Part", modelArray); - { + { NJson::TJsonValue json; UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); - } - - { + } + + { TStringStream jsonStream; NJson::TJsonValue json; UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStream)); @@ -334,7 +334,7 @@ Y_UNIT_TEST(TestCompositeRepeated) { UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } // streamed } - + { // Array of messages with each field skipped TCompositeRepeated proto; @@ -350,27 +350,27 @@ Y_UNIT_TEST(TestCompositeRepeated) { modelArray.AppendValue(CreateFlatJson(skippedField)); \ } #include <library/cpp/protobuf/json/ut/repeated_fields.incl> -#undef DEFINE_REPEATED_FIELD - +#undef DEFINE_REPEATED_FIELD + NJson::TJsonValue modelJson; modelJson.InsertValue("Part", modelArray); - - { - NJson::TJsonValue json; + + { + NJson::TJsonValue json; UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); - } - - { + } + + { TStringStream jsonStream; - NJson::TJsonValue json; + NJson::TJsonValue json; UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStream)); UNIT_ASSERT(ReadJsonTree(&jsonStream, &json)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } // streamed } } // TestCompositeRepeated - + Y_UNIT_TEST(TestEnumConfig) { { TFlatOptional proto; @@ -380,11 +380,11 @@ Y_UNIT_TEST(TestEnumConfig) { NJson::TJsonValue json; TProto2JsonConfig config; config.EnumMode = TProto2JsonConfig::EnumNumber; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json, config)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } - + { TFlatOptional proto; proto.SetEnum(E_1); @@ -393,11 +393,11 @@ Y_UNIT_TEST(TestEnumConfig) { NJson::TJsonValue json; TProto2JsonConfig config; config.EnumMode = TProto2JsonConfig::EnumName; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json, config)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } - + { TFlatOptional proto; proto.SetEnum(E_1); @@ -406,11 +406,11 @@ Y_UNIT_TEST(TestEnumConfig) { NJson::TJsonValue json; TProto2JsonConfig config; config.EnumMode = TProto2JsonConfig::EnumFullName; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json, config)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } - + { TFlatOptional proto; proto.SetEnum(E_1); @@ -419,11 +419,11 @@ Y_UNIT_TEST(TestEnumConfig) { NJson::TJsonValue json; TProto2JsonConfig config; config.EnumMode = TProto2JsonConfig::EnumNameLowerCase; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json, config)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } - + { TFlatOptional proto; proto.SetEnum(E_1); @@ -455,13 +455,13 @@ Y_UNIT_TEST(TestMissingSingleKeyConfig) { #define DEFINE_FIELD(name, value) \ modelJson.InsertValue(#name, NJson::TJsonValue(NJson::JSON_NULL)); #include <library/cpp/protobuf/json/ut/fields.incl> -#undef DEFINE_FIELD - +#undef DEFINE_FIELD + TFlatOptional proto; NJson::TJsonValue json; TProto2JsonConfig config; config.MissingSingleKeyMode = TProto2JsonConfig::MissingKeyNull; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json, config)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } @@ -512,7 +512,7 @@ Y_UNIT_TEST(TestMissingSingleKeyConfig) { UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } } // TestMissingSingleKeyConfig - + Y_UNIT_TEST(TestMissingRepeatedKeyNoConfig) { { TFlatRepeated proto; @@ -531,23 +531,23 @@ Y_UNIT_TEST(TestMissingRepeatedKeyConfig) { NJson::TJsonValue json; TProto2JsonConfig config; config.MissingRepeatedKeyMode = TProto2JsonConfig::MissingKeySkip; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json, config)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } - + { NJson::TJsonValue modelJson; #define DEFINE_FIELD(name, value) \ modelJson.InsertValue(#name, NJson::TJsonValue(NJson::JSON_NULL)); #include <library/cpp/protobuf/json/ut/fields.incl> -#undef DEFINE_FIELD - +#undef DEFINE_FIELD + TFlatRepeated proto; NJson::TJsonValue json; TProto2JsonConfig config; config.MissingRepeatedKeyMode = TProto2JsonConfig::MissingKeyNull; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json, config)); UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } @@ -563,63 +563,63 @@ Y_UNIT_TEST(TestMissingRepeatedKeyConfig) { UNIT_ASSERT_JSONS_EQUAL(json, modelJson); } } // TestMissingRepeatedKeyConfig - + Y_UNIT_TEST(TestEscaping) { // No escape { TString modelStr(R"_({"String":"value\""})_"); - + TFlatOptional proto; proto.SetString(R"_(value")_"); TStringStream jsonStr; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr)); UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } - + // TEscapeJTransform { TString modelStr(R"_({"String":"value\""})_"); - + TFlatOptional proto; proto.SetString(R"_(value")_"); TProto2JsonConfig config; config.StringTransforms.push_back(new TEscapeJTransform<false, true>()); TStringStream jsonStr; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); UNIT_ASSERT_JSON_STRINGS_EQUAL(modelStr, jsonStr.Str()); } - + // TCEscapeTransform { TString modelStr(R"_({"String":"value\""})_"); - + TFlatOptional proto; proto.SetString(R"_(value")_"); TProto2JsonConfig config; config.StringTransforms.push_back(new TCEscapeTransform()); TStringStream jsonStr; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } - + // TSafeUtf8CEscapeTransform { TString modelStr(R"_({"String":"value\""})_"); - + TFlatOptional proto; proto.SetString(R"_(value")_"); TProto2JsonConfig config; config.StringTransforms.push_back(new TSafeUtf8CEscapeTransform()); TStringStream jsonStr; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } } // TestEscaping - + class TBytesTransform: public IStringTransform { public: int GetType() const override { @@ -666,58 +666,58 @@ Y_UNIT_TEST(TestFieldNameMode) { // Original case 1 { TString modelStr(R"_({"String":"value"})_"); - + TFlatOptional proto; proto.SetString("value"); TStringStream jsonStr; TProto2JsonConfig config; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } - + // Original case 2 { TString modelStr(R"_({"String":"value"})_"); - + TFlatOptional proto; proto.SetString("value"); TStringStream jsonStr; TProto2JsonConfig config; config.FieldNameMode = TProto2JsonConfig::FieldNameOriginalCase; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } - + // Lowercase { TString modelStr(R"_({"string":"value"})_"); - + TFlatOptional proto; proto.SetString("value"); TStringStream jsonStr; TProto2JsonConfig config; config.FieldNameMode = TProto2JsonConfig::FieldNameLowerCase; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } - + // Uppercase { TString modelStr(R"_({"STRING":"value"})_"); - + TFlatOptional proto; proto.SetString("value"); TStringStream jsonStr; TProto2JsonConfig config; config.FieldNameMode = TProto2JsonConfig::FieldNameUpperCase; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } - + // Camelcase { TString modelStr(R"_({"string":"value"})_"); @@ -825,33 +825,33 @@ Y_UNIT_TEST(TestFieldNameMode) { // Original case, repeated { TString modelStr(R"_({"I32":[1,2]})_"); - + TFlatRepeated proto; proto.AddI32(1); proto.AddI32(2); TStringStream jsonStr; TProto2JsonConfig config; config.FieldNameMode = TProto2JsonConfig::FieldNameOriginalCase; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } - + // Lower case, repeated { TString modelStr(R"_({"i32":[1,2]})_"); - + TFlatRepeated proto; proto.AddI32(1); proto.AddI32(2); TStringStream jsonStr; TProto2JsonConfig config; config.FieldNameMode = TProto2JsonConfig::FieldNameLowerCase; - + UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr); } - + // UseJsonName { // FIXME(CONTRIB-139): see the comment about UseJsonName in json2proto_ut.cpp: @@ -1019,4 +1019,4 @@ Y_UNIT_TEST(TestExtension) { UNIT_ASSERT_EQUAL(Proto2Json(proto, cfg), "{\"bar\":1}"); } // TestExtension -} // TProto2JsonTest +} // TProto2JsonTest diff --git a/library/cpp/protobuf/json/ut/repeated_fields.incl b/library/cpp/protobuf/json/ut/repeated_fields.incl index 53c1dc94a7..e9548917d8 100644 --- a/library/cpp/protobuf/json/ut/repeated_fields.incl +++ b/library/cpp/protobuf/json/ut/repeated_fields.incl @@ -1,21 +1,21 @@ -// Intentionally no #pragma once - -// (Field name == JSON key, Type, Values...) -DEFINE_REPEATED_FIELD(I32, i32, Min<i32>(), -1, 0, 1, Max<i32>()) -DEFINE_REPEATED_FIELD(I64, i64, Min<i64>(), -1ll, 0ll, 1ll, Max<i64>()) -DEFINE_REPEATED_FIELD(UI32, ui32, 0ul, 1ul, Max<ui32>()) -DEFINE_REPEATED_FIELD(UI64, ui64, 0ull, 1ull, Max<ui64>()) -DEFINE_REPEATED_FIELD(SI32, i32, Min<i32>(), -1, 0, 1, Max<i32>()) -DEFINE_REPEATED_FIELD(SI64, i64, Min<i64>(), -1ll, 0ll, 1ll, Max<i64>()) -DEFINE_REPEATED_FIELD(FI32, ui32, 0, 1, Max<ui32>()) -DEFINE_REPEATED_FIELD(FI64, ui64, 0ull, 1ull, Max<ui64>()) -DEFINE_REPEATED_FIELD(SFI32, i32, Min<i32>(), -1, 0, 1, Max<i32>()) -DEFINE_REPEATED_FIELD(SFI64, i64, Min<i64>(), -1ll, 0ll, 1ll, Max<i64>()) -DEFINE_REPEATED_FIELD(Bool, bool, false, true) +// Intentionally no #pragma once + +// (Field name == JSON key, Type, Values...) +DEFINE_REPEATED_FIELD(I32, i32, Min<i32>(), -1, 0, 1, Max<i32>()) +DEFINE_REPEATED_FIELD(I64, i64, Min<i64>(), -1ll, 0ll, 1ll, Max<i64>()) +DEFINE_REPEATED_FIELD(UI32, ui32, 0ul, 1ul, Max<ui32>()) +DEFINE_REPEATED_FIELD(UI64, ui64, 0ull, 1ull, Max<ui64>()) +DEFINE_REPEATED_FIELD(SI32, i32, Min<i32>(), -1, 0, 1, Max<i32>()) +DEFINE_REPEATED_FIELD(SI64, i64, Min<i64>(), -1ll, 0ll, 1ll, Max<i64>()) +DEFINE_REPEATED_FIELD(FI32, ui32, 0, 1, Max<ui32>()) +DEFINE_REPEATED_FIELD(FI64, ui64, 0ull, 1ull, Max<ui64>()) +DEFINE_REPEATED_FIELD(SFI32, i32, Min<i32>(), -1, 0, 1, Max<i32>()) +DEFINE_REPEATED_FIELD(SFI64, i64, Min<i64>(), -1ll, 0ll, 1ll, Max<i64>()) +DEFINE_REPEATED_FIELD(Bool, bool, false, true) DEFINE_REPEATED_FIELD(String, TString, "", "Lorem ipsum", "123123") DEFINE_REPEATED_FIELD(Bytes, TString, "", "מחשב", "\x1") -DEFINE_REPEATED_FIELD(Enum, EEnum, E_1, E_2, E_3) -DEFINE_REPEATED_FIELD(Float, float, 0.0f, 1.0f, 1.123f) -DEFINE_REPEATED_FIELD(Double, double, 0.0, 1.0, 1.123456789012) +DEFINE_REPEATED_FIELD(Enum, EEnum, E_1, E_2, E_3) +DEFINE_REPEATED_FIELD(Float, float, 0.0f, 1.0f, 1.123f) +DEFINE_REPEATED_FIELD(Double, double, 0.0, 1.0, 1.123456789012) DEFINE_REPEATED_FIELD(OneString, TString, "", "Lorem ipsum dolor", "1231231") DEFINE_REPEATED_FIELD(OneTwoString, TString, "", "Lorem ipsum dolor sit", "12312312") diff --git a/library/cpp/protobuf/json/ut/test.proto b/library/cpp/protobuf/json/ut/test.proto index fab7b6a5f2..0fa996fd41 100644 --- a/library/cpp/protobuf/json/ut/test.proto +++ b/library/cpp/protobuf/json/ut/test.proto @@ -1,96 +1,96 @@ -package NProtobufJsonTest; - -enum EEnum { +package NProtobufJsonTest; + +enum EEnum { E_0 = 0; - E_1 = 1; - E_2 = 2; - E_3 = 3; -}; - -message TFlatOptional { - optional int32 I32 = 1; - optional int64 I64 = 2; - optional uint32 UI32 = 3; - optional uint64 UI64 = 4; - optional sint32 SI32 = 5; - optional sint64 SI64 = 6; - optional fixed32 FI32 = 7; - optional fixed64 FI64 = 8; - optional sfixed32 SFI32 = 9; - optional sfixed64 SFI64 = 10; - - optional bool Bool = 11; - - optional string String = 12; - optional bytes Bytes = 13; - - optional EEnum Enum = 14; - - optional float Float = 15; - optional double Double = 16; + E_1 = 1; + E_2 = 2; + E_3 = 3; +}; + +message TFlatOptional { + optional int32 I32 = 1; + optional int64 I64 = 2; + optional uint32 UI32 = 3; + optional uint64 UI64 = 4; + optional sint32 SI32 = 5; + optional sint64 SI64 = 6; + optional fixed32 FI32 = 7; + optional fixed64 FI64 = 8; + optional sfixed32 SFI32 = 9; + optional sfixed64 SFI64 = 10; + + optional bool Bool = 11; + + optional string String = 12; + optional bytes Bytes = 13; + + optional EEnum Enum = 14; + + optional float Float = 15; + optional double Double = 16; optional string OneString = 17; optional string OneTwoString = 18; optional string ABC = 19; optional string UserID = 20; -}; - -message TFlatRequired { - required int32 I32 = 1; - required int64 I64 = 2; - required uint32 UI32 = 3; - required uint64 UI64 = 4; - required sint32 SI32 = 5; - required sint64 SI64 = 6; - required fixed32 FI32 = 7; - required fixed64 FI64 = 8; - required sfixed32 SFI32 = 9; - required sfixed64 SFI64 = 10; - - required bool Bool = 11; - - required string String = 12; - required bytes Bytes = 13; - - required EEnum Enum = 14; - - required float Float = 15; - required double Double = 16; +}; + +message TFlatRequired { + required int32 I32 = 1; + required int64 I64 = 2; + required uint32 UI32 = 3; + required uint64 UI64 = 4; + required sint32 SI32 = 5; + required sint64 SI64 = 6; + required fixed32 FI32 = 7; + required fixed64 FI64 = 8; + required sfixed32 SFI32 = 9; + required sfixed64 SFI64 = 10; + + required bool Bool = 11; + + required string String = 12; + required bytes Bytes = 13; + + required EEnum Enum = 14; + + required float Float = 15; + required double Double = 16; required string OneString = 17; required string OneTwoString = 18; required string ABC = 19; required string UserID = 20; -}; - -message TFlatRepeated { - repeated int32 I32 = 1; - repeated int64 I64 = 2; - repeated uint32 UI32 = 3; - repeated uint64 UI64 = 4; - repeated sint32 SI32 = 5; - repeated sint64 SI64 = 6; - repeated fixed32 FI32 = 7; - repeated fixed64 FI64 = 8; - repeated sfixed32 SFI32 = 9; - repeated sfixed64 SFI64 = 10; - - repeated bool Bool = 11; - - repeated string String = 12; - repeated bytes Bytes = 13; - - repeated EEnum Enum = 14; - - repeated float Float = 15; - repeated double Double = 16; +}; + +message TFlatRepeated { + repeated int32 I32 = 1; + repeated int64 I64 = 2; + repeated uint32 UI32 = 3; + repeated uint64 UI64 = 4; + repeated sint32 SI32 = 5; + repeated sint64 SI64 = 6; + repeated fixed32 FI32 = 7; + repeated fixed64 FI64 = 8; + repeated sfixed32 SFI32 = 9; + repeated sfixed64 SFI64 = 10; + + repeated bool Bool = 11; + + repeated string String = 12; + repeated bytes Bytes = 13; + + repeated EEnum Enum = 14; + + repeated float Float = 15; + repeated double Double = 16; repeated string OneString = 17; repeated string OneTwoString = 18; repeated string ABC = 19; repeated string UserID = 20; -}; - +}; + message TFlatDefault { optional int32 I32 = 1 [default = 132]; optional int64 I64 = 2 [default = 164]; @@ -119,17 +119,17 @@ message TFlatDefault { optional string UserID = 20 [default = "some_id"]; }; -message TCompositeOptional { - optional TFlatOptional Part = 1; -}; - -message TCompositeRequired { - required TFlatRequired Part = 1; -}; - -message TCompositeRepeated { - repeated TFlatOptional Part = 1; -}; +message TCompositeOptional { + optional TFlatOptional Part = 1; +}; + +message TCompositeRequired { + required TFlatRequired Part = 1; +}; + +message TCompositeRepeated { + repeated TFlatOptional Part = 1; +}; message TMapType { map<string, string> Items = 1; diff --git a/library/cpp/protobuf/json/ut/ya.make b/library/cpp/protobuf/json/ut/ya.make index 8f224e22fa..b60a6d3c17 100644 --- a/library/cpp/protobuf/json/ut/ya.make +++ b/library/cpp/protobuf/json/ut/ya.make @@ -1,23 +1,23 @@ UNITTEST_FOR(library/cpp/protobuf/json) - + OWNER(avitella) -SRCS( +SRCS( filter_ut.cpp - json2proto_ut.cpp - proto2json_ut.cpp + json2proto_ut.cpp + proto2json_ut.cpp inline_ut.proto inline_ut.cpp string_transform_ut.cpp filter_ut.proto test.proto util_ut.cpp -) - +) + GENERATE_ENUM_SERIALIZATION(test.pb.h) PEERDIR( library/cpp/protobuf/json ) - -END() + +END() |