aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/protobuf/json/ut/json2proto_ut.cpp
diff options
context:
space:
mode:
authorbbiff <bbiff@yandex-team.com>2022-09-11 00:15:54 +0300
committerbbiff <bbiff@yandex-team.com>2022-09-11 00:15:54 +0300
commit67576a8962c2506b8ee10da48dffba311acb0042 (patch)
tree51a695bbddbb9be4e5a0cc5c7ec558ca233c2be5 /library/cpp/protobuf/json/ut/json2proto_ut.cpp
parenta8945929eb162f6910b228697c3d2db3b7cb2ca9 (diff)
downloadydb-67576a8962c2506b8ee10da48dffba311acb0042.tar.gz
support duration and timestamp as string in json2proto
Diffstat (limited to 'library/cpp/protobuf/json/ut/json2proto_ut.cpp')
-rw-r--r--library/cpp/protobuf/json/ut/json2proto_ut.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/library/cpp/protobuf/json/ut/json2proto_ut.cpp b/library/cpp/protobuf/json/ut/json2proto_ut.cpp
index 0dfe57bc7a..d213c9e913 100644
--- a/library/cpp/protobuf/json/ut/json2proto_ut.cpp
+++ b/library/cpp/protobuf/json/ut/json2proto_ut.cpp
@@ -8,6 +8,7 @@
#include <library/cpp/json/json_reader.h>
#include <library/cpp/json/json_writer.h>
+#include <library/cpp/protobuf/interop/cast.h>
#include <library/cpp/protobuf/json/json2proto.h>
#include <library/cpp/testing/unittest/registar.h>
@@ -1144,4 +1145,29 @@ Y_UNIT_TEST(TestAllowComments) {
UNIT_ASSERT_VALUES_EQUAL(proto.GetI64(), 3423);
} // TestAllowComments
+Y_UNIT_TEST(TestSimplifiedDuration) {
+ NJson::TJsonValue json;
+ TSingleDuration simpleDuration;
+ json["Duration"] = "10.1s";
+ NProtobufJson::Json2Proto(json, simpleDuration, NProtobufJson::TJson2ProtoConfig().SetAllowString2TimeConversion(true));
+ UNIT_ASSERT_EQUAL(NProtoInterop::CastFromProto(simpleDuration.GetDuration()), TDuration::MilliSeconds(10100));
+} // TestSimplifiedDuration
+
+Y_UNIT_TEST(TestUnwrappedDuration) {
+ NJson::TJsonValue json;
+ TSingleDuration duration;
+ json["Duration"]["seconds"] = 2;
+ NProtobufJson::Json2Proto(json, duration, NProtobufJson::TJson2ProtoConfig());
+ UNIT_ASSERT_EQUAL(NProtoInterop::CastFromProto(duration.GetDuration()), TDuration::MilliSeconds(2000));
+} // TestUnwrappedDuration
+
+Y_UNIT_TEST(TestSimplifiedTimestamp) {
+ NJson::TJsonValue json;
+ TSingleTimestamp simpleTimestamp;
+ json["Timestamp"] = "2014-08-26T15:52:15Z";
+ NProtobufJson::Json2Proto(json, simpleTimestamp, NProtobufJson::TJson2ProtoConfig().SetAllowString2TimeConversion(true));
+ UNIT_ASSERT_EQUAL(NProtoInterop::CastFromProto(simpleTimestamp.GetTimestamp()), TInstant::ParseIso8601("2014-08-26T15:52:15Z"));
+
+} // TestSimplifiedTimestamp
+
} // TJson2ProtoTest