/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
contrib/ydb/library/binary_json/ut/identity_ut.cpp
71 строка
2 KB
alexv-smirnov
KIKIMR-18630 Switch Arcadia to contrib/ydb
05 ноя 2023, 22:32
05 ноя 2023, 22:32
e24498b
Код
Авторство
О чём код?
#include "test_base.h" #include <contrib/ydb/library/binary_json/write.h> #include <contrib/ydb/library/binary_json/read.h> #include <contrib/ydb/library/yql/minikql/dom/json.h> using namespace NKikimr; class TBinaryJsonIdentityTest : public TBinaryJsonTestBase { public: TBinaryJsonIdentityTest() : TBinaryJsonTestBase() { } UNIT_TEST_SUITE(TBinaryJsonIdentityTest); UNIT_TEST(TestReadToJsonDom); UNIT_TEST(TestSerializeToJson); UNIT_TEST(TestSerializeDomToBinaryJson); UNIT_TEST_SUITE_END(); const TVector<TString> TestCases = { "false", "true", "null", "\"test string\"", "\"\"", "1.2345", "1", "-23", "0", "0.12345", "{}", "{\"a\":1}", "[]", "[1]", R"([{"key":[true,false,null,"first","second","second","third"]},"fourth",0.34])", }; void TestReadToJsonDom() { for (const TStringBuf json : TestCases) { const auto binaryJson = *NBinaryJson::SerializeToBinaryJson(json); const auto value = NBinaryJson::ReadToJsonDom(binaryJson, &ValueBuilder); const auto jsonAfterBinaryJson = NDom::SerializeJsonDom(value); UNIT_ASSERT_VALUES_EQUAL(json, jsonAfterBinaryJson); } } void TestSerializeToJson() { for (const TStringBuf json : TestCases) { const auto binaryJson = *NBinaryJson::SerializeToBinaryJson(json); const auto jsonAfterBinaryJson = NBinaryJson::SerializeToJson(binaryJson); UNIT_ASSERT_VALUES_EQUAL(json, jsonAfterBinaryJson); } } void TestSerializeDomToBinaryJson() { for (const TStringBuf json : TestCases) { const auto dom = NDom::TryParseJsonDom(json, &ValueBuilder); const auto binaryJson = NBinaryJson::SerializeToBinaryJson(dom); const auto jsonAfterBinaryJson = NBinaryJson::SerializeToJson(binaryJson); UNIT_ASSERT_VALUES_EQUAL(json, jsonAfterBinaryJson); } } }; UNIT_TEST_SUITE_REGISTRATION(TBinaryJsonIdentityTest);