aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/protobuf/json/ut/proto2json_ut.cpp
diff options
context:
space:
mode:
authorbulatman <bulatman@yandex-team.com>2022-12-16 16:19:13 +0300
committerbulatman <bulatman@yandex-team.com>2022-12-16 16:19:13 +0300
commitb7ee1c8a87b97e1ce35c3b9c101230e67daebac4 (patch)
treed65aa8374285ad88fad00e980f930b535110b506 /library/cpp/protobuf/json/ut/proto2json_ut.cpp
parentdcce88f9fa7e94021bf0221b8d43b5ac747f4829 (diff)
downloadydb-b7ee1c8a87b97e1ce35c3b9c101230e67daebac4.tar.gz
Do not print missing oneof field in proto2json even MissingKeyDefault is specified
Diffstat (limited to 'library/cpp/protobuf/json/ut/proto2json_ut.cpp')
-rw-r--r--library/cpp/protobuf/json/ut/proto2json_ut.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/library/cpp/protobuf/json/ut/proto2json_ut.cpp b/library/cpp/protobuf/json/ut/proto2json_ut.cpp
index d4d6d374e9..3f154645a1 100644
--- a/library/cpp/protobuf/json/ut/proto2json_ut.cpp
+++ b/library/cpp/protobuf/json/ut/proto2json_ut.cpp
@@ -74,6 +74,22 @@ Y_UNIT_TEST_SUITE(TProto2JsonFlatTest) {
#undef DEFINE_FIELD
}
+ Y_UNIT_TEST(TestOneOfDefault) {
+ using namespace ::google::protobuf;
+ TFlatOneOfDefault proto;
+ NJson::TJsonValue json;
+ TProto2JsonConfig cfg;
+ cfg.SetMissingSingleKeyMode(TProto2JsonConfig::MissingKeyDefault);
+ UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json, cfg));
+
+ UNIT_ASSERT(!json.Has("ChoiceOne"));
+ UNIT_ASSERT(!json.Has("ChoiceTwo"));
+
+ proto.SetChoiceOne("one");
+ UNIT_ASSERT_NO_EXCEPTION(Proto2Json(proto, json, cfg));
+ UNIT_ASSERT_EQUAL("one", json["ChoiceOne"].GetStringRobust());
+ }
+
Y_UNIT_TEST(TestNameGenerator) {
TNameGeneratorType proto;
proto.SetField(42);