diff options
author | bbiff <bbiff@yandex-team.com> | 2022-09-11 00:15:54 +0300 |
---|---|---|
committer | bbiff <bbiff@yandex-team.com> | 2022-09-11 00:15:54 +0300 |
commit | 67576a8962c2506b8ee10da48dffba311acb0042 (patch) | |
tree | 51a695bbddbb9be4e5a0cc5c7ec558ca233c2be5 /library/cpp/protobuf/json/ut/json2proto_ut.cpp | |
parent | a8945929eb162f6910b228697c3d2db3b7cb2ca9 (diff) | |
download | ydb-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.cpp | 26 |
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 |