1
1
#include < ydb-cpp-sdk/client/params/params.h>
2
2
3
- #include < ydb/public/lib/yson_value/ydb_yson_value.h>
4
-
5
3
#include < library/cpp/testing/unittest/registar.h>
6
4
#include < library/cpp/testing/unittest/tests_data.h>
5
+ #include < google/protobuf/text_format.h>
6
+ #include < src/api/protos/ydb_value.pb.h>
7
7
8
8
using namespace NYdb ;
9
9
10
10
using TExpectedErrorException = yexception;
11
11
12
+ void CheckProtoValue (const Ydb::Value& value, const TString& expected) {
13
+ TStringType protoStr;
14
+ google::protobuf::TextFormat::PrintToString (value, &protoStr);
15
+ UNIT_ASSERT_NO_DIFF (protoStr, expected);
16
+ }
17
+
12
18
Y_UNIT_TEST_SUITE (ParamsBuilder) {
13
19
Y_UNIT_TEST (Build) {
14
20
auto params = TParamsBuilder ()
@@ -27,15 +33,18 @@ Y_UNIT_TEST_SUITE(ParamsBuilder) {
27
33
.Build ()
28
34
.Build ();
29
35
30
- UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param1" )->GetType ()),
31
- R"( List<Uint64?>)" );
32
- UNIT_ASSERT_NO_DIFF (FormatValueYson (*params.GetValue (" $param1" )),
33
- R"( [[10u];#])" );
36
+ UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param1" )->GetType ()), " List<Uint64?>" );
34
37
35
- UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param2" )->GetType ()),
36
- R"( String)" );
37
- UNIT_ASSERT_NO_DIFF (FormatValueYson (*params.GetValue (" $param2" )),
38
- R"( "test")" );
38
+ CheckProtoValue (params.GetValue (" $param1" )->GetProto (),
39
+ " items {\n "
40
+ " uint64_value: 10\n "
41
+ " }\n "
42
+ " items {\n "
43
+ " null_flag_value: NULL_VALUE\n "
44
+ " }\n " );
45
+
46
+ UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param2" )->GetType ()), " String" );
47
+ CheckProtoValue (params.GetValue (" $param2" )->GetProto (), " bytes_value: \" test\"\n " );
39
48
}
40
49
41
50
Y_UNIT_TEST (BuildFromValue) {
@@ -62,15 +71,23 @@ Y_UNIT_TEST_SUITE(ParamsBuilder) {
62
71
.AddParam (" $param2" , value2)
63
72
.Build ();
64
73
65
- UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param1" )->GetType ()),
66
- R"( Utf8)" );
67
- UNIT_ASSERT_NO_DIFF (FormatValueYson (*params.GetValue (" $param1" )),
68
- R"( "test1")" );
69
-
70
- UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param2" )->GetType ()),
71
- R"( List<Tuple<Int32,String>?>)" );
72
- UNIT_ASSERT_NO_DIFF (FormatValueYson (*params.GetValue (" $param2" )),
73
- R"( [[[-11;"test2"]];#])" );
74
+ UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param1" )->GetType ()), " Utf8" );
75
+
76
+ CheckProtoValue (params.GetValue (" $param1" )->GetProto (), " text_value: \" test1\"\n " );
77
+
78
+ UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param2" )->GetType ()), " List<Tuple<Int32,String>?>" );
79
+ CheckProtoValue (params.GetValue (" $param2" )->GetProto (),
80
+ " items {\n "
81
+ " items {\n "
82
+ " int32_value: -11\n "
83
+ " }\n "
84
+ " items {\n "
85
+ " bytes_value: \" test2\"\n "
86
+ " }\n "
87
+ " }\n "
88
+ " items {\n "
89
+ " null_flag_value: NULL_VALUE\n "
90
+ " }\n " );
74
91
}
75
92
76
93
Y_UNIT_TEST (BuildWithTypeInfo) {
@@ -106,15 +123,17 @@ Y_UNIT_TEST_SUITE(ParamsBuilder) {
106
123
.Build ()
107
124
.Build ();
108
125
109
- UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param1" )->GetType ()),
110
- R"( List<String>)" );
111
- UNIT_ASSERT_NO_DIFF (FormatValueYson (*params.GetValue (" $param1" )),
112
- R"( ["str1";"str2"])" );
113
-
114
- UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param2" )->GetType ()),
115
- R"( Uint32?)" );
116
- UNIT_ASSERT_NO_DIFF (FormatValueYson (*params.GetValue (" $param2" )),
117
- R"( #)" );
126
+ UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param1" )->GetType ()), " List<String>" );
127
+ CheckProtoValue (params.GetValue (" $param1" )->GetProto (),
128
+ " items {\n "
129
+ " bytes_value: \" str1\"\n "
130
+ " }\n "
131
+ " items {\n "
132
+ " bytes_value: \" str2\"\n "
133
+ " }\n " );
134
+
135
+ UNIT_ASSERT_NO_DIFF (FormatType (params.GetValue (" $param2" )->GetType ()), " Uint32?" );
136
+ CheckProtoValue (params.GetValue (" $param2" )->GetProto (), " null_flag_value: NULL_VALUE\n " );
118
137
}
119
138
120
139
Y_UNIT_TEST (MissingParam) {
0 commit comments