aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/protobuf/json/ut/proto2json_ut.cpp
diff options
context:
space:
mode:
authordddlatyshev <dddlatyshev@yandex-team.com>2023-02-22 19:30:31 +0300
committerdddlatyshev <dddlatyshev@yandex-team.com>2023-02-22 19:30:31 +0300
commite335b244b0805b9744c35500685750135c97bd8f (patch)
treea9492ee15bafec49139dbd31234defc4da8ba4c7 /library/cpp/protobuf/json/ut/proto2json_ut.cpp
parentd6db0fa7fd05eea98ca692ecc6bd29c2b08700c3 (diff)
downloadydb-e335b244b0805b9744c35500685750135c97bd8f.tar.gz
Add StringifyInt64Always mode
Diffstat (limited to 'library/cpp/protobuf/json/ut/proto2json_ut.cpp')
-rw-r--r--library/cpp/protobuf/json/ut/proto2json_ut.cpp80
1 files changed, 44 insertions, 36 deletions
diff --git a/library/cpp/protobuf/json/ut/proto2json_ut.cpp b/library/cpp/protobuf/json/ut/proto2json_ut.cpp
index bf8b4994f2..b70329181d 100644
--- a/library/cpp/protobuf/json/ut/proto2json_ut.cpp
+++ b/library/cpp/protobuf/json/ut/proto2json_ut.cpp
@@ -981,46 +981,54 @@ Y_UNIT_TEST(TestMapWTF) {
UNIT_ASSERT_JSON_STRINGS_EQUAL(jsonStr.Str(), modelStr);
} // TestMapWTF
-Y_UNIT_TEST(TestStringifyLongNumbers) {
-#define TEST_SINGLE(flag, value, expectString) \
- do { \
- TFlatOptional proto; \
- proto.SetSI64(value); \
- \
- TStringStream jsonStr; \
- TProto2JsonConfig config; \
- config.SetStringifyLongNumbers(flag); \
- UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); \
- if (expectString) { \
- UNIT_ASSERT_EQUAL(jsonStr.Str(), "{\"SI64\":\"" #value "\"}"); \
- } else { \
- UNIT_ASSERT_EQUAL(jsonStr.Str(), "{\"SI64\":" #value "}"); \
- } \
+Y_UNIT_TEST(TestStringifyNumbers) {
+#define TEST_SINGLE(flag, field, value, expectString) \
+ do { \
+ TFlatOptional proto; \
+ proto.Set##field(value); \
+ \
+ TStringStream jsonStr; \
+ TProto2JsonConfig config; \
+ config.SetStringifyNumbers(flag); \
+ UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, jsonStr, config)); \
+ if (expectString) { \
+ UNIT_ASSERT_EQUAL(jsonStr.Str(), "{\"" #field "\":\"" #value "\"}"); \
+ } else { \
+ UNIT_ASSERT_EQUAL(jsonStr.Str(), "{\"" #field "\":" #value "}"); \
+ } \
} while (false)
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, 1, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, 1000000000, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, 10000000000000000, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, -1, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, -1000000000, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, -10000000000000000, false);
-
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, 1, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, 1000000000, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, 10000000000000000, true);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, -1, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, -1000000000, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, -10000000000000000, true);
-
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, 1, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, 1000000000, true);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, 10000000000000000, true);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, -1, false);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, -1000000000, true);
- TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, -10000000000000000, true);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, SI64, 1, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, SI64, 1000000000, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, SI64, 10000000000000000, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, SI64, -1, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, SI64, -1000000000, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersNever, SI64, -10000000000000000, false);
+
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, SI64, 1, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, SI64, 1000000000, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, SI64, 10000000000000000, true);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, SI64, -1, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, SI64, -1000000000, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForDouble, SI64, -10000000000000000, true);
+
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, SI64, 1, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, SI64, 1000000000, true);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, SI64, 10000000000000000, true);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, SI64, -1, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, SI64, -1000000000, true);
+ TEST_SINGLE(TProto2JsonConfig::StringifyLongNumbersForFloat, SI64, -10000000000000000, true);
+
+
+ TEST_SINGLE(TProto2JsonConfig::StringifyInt64Always, UI64, 1, true);
+ TEST_SINGLE(TProto2JsonConfig::StringifyInt64Always, UI32, 1000000000, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyInt64Always, UI64, 10000000000000000, true);
+ TEST_SINGLE(TProto2JsonConfig::StringifyInt64Always, SI64, -1, true);
+ TEST_SINGLE(TProto2JsonConfig::StringifyInt64Always, SI32, -1000000000, false);
+ TEST_SINGLE(TProto2JsonConfig::StringifyInt64Always, SI64, -10000000000000000, true);
#undef TEST_SINGLE
-} // TestStringifyLongNumbers
+} // TestStringifyNumbers
Y_UNIT_TEST(TestExtension) {
TExtensionField proto;