@@ -130,7 +130,7 @@ class TIndexProcesorTests : public TTestBase {
130
130
UNIT_ASSERT (statusVal.IsSuccess ());
131
131
}
132
132
void AddEvent (
133
- const TString& account, const TString& queueName, const EEvType& type, TInstant ts = TInstant::Zero(), TString labels = "{}" )
133
+ const TString& account, const TString& queueName, const EEvType& type, TInstant ts = TInstant::Zero(), TMaybe< TString> labels = "{}" )
134
134
{
135
135
if (ts == TInstant::Zero())
136
136
ts = CurrTs;
@@ -143,12 +143,12 @@ class TIndexProcesorTests : public TTestBase {
143
143
<< " \" myQueueCustomName\" , "
144
144
<< ts.MilliSeconds() << " , "
145
145
<< " \" myFolder\" , "
146
- << " \" " << labels << " \" "
146
+ << (labels.Defined() ? " \" " + labels.GetRef() + " \" " : " NULL " )
147
147
<< " );" ;
148
148
ExecDataQuery (queryBuilder.c_str());
149
149
}
150
150
151
- void AddQueue (const TString& account, const TString& queueName, TInstant ts = TInstant::Zero(), TString tags = "{}" ) {
151
+ void AddQueue (const TString& account, const TString& queueName, TInstant ts = TInstant::Zero(), TMaybe< TString> tags = "{}" ) {
152
152
if (ts == TInstant::Zero())
153
153
ts = CurrTs;
154
154
TStringBuilder queryBuilder;
@@ -159,12 +159,12 @@ class TIndexProcesorTests : public TTestBase {
159
159
<< " \" myQueueCustomName\" , "
160
160
<< ts.MilliSeconds() << " , "
161
161
<< " \" myFolder\" , "
162
- << " \" " << tags << " \" "
162
+ << (tags.Defined() ? " \" " + tags.GetRef() + " \" " : " NULL " )
163
163
<< " );" ;
164
164
ExecDataQuery (queryBuilder.c_str());
165
165
}
166
166
167
- void AddQueuesBatch (const TString& account, const TString& queueNameBase, ui64 count, ui64 startIndex = 0 , TString tags = " {}" ) {
167
+ void AddQueuesBatch (const TString& account, const TString& queueNameBase, ui64 count, ui64 startIndex = 0 , TMaybe< TString> tags = " {}" ) {
168
168
Cerr << " ===Started add queue batch\n " ;
169
169
TDeque<NYdb::NTable::TAsyncDataQueryResult> results;
170
170
ui64 maxInflight = 1 ;
@@ -181,7 +181,7 @@ class TIndexProcesorTests : public TTestBase {
181
181
<< " \" myQueueCustomName\" , "
182
182
<< CurrTs.MilliSeconds () << " , "
183
183
<< " \" myFolder\" , "
184
- << " \" " << tags << " \" "
184
+ << (tags. Defined () ? " \" " + tags. GetRef () + " \" " : " NULL " )
185
185
<< " );" ;
186
186
187
187
auto preparedResult = session.PrepareDataQuery (queryBuilder.c_str ()).GetValueSync ();
@@ -323,41 +323,56 @@ class TIndexProcesorTests : public TTestBase {
323
323
TTestRunner (" CreateIndexProcessor" , this );
324
324
}
325
325
326
- void TestSingleCreateQueueEvent ( ) {
326
+ void CheckSingleCreateQueueEvent ( bool nullLabels ) {
327
327
TTestRunner runner{" SingleCreateQueueEvent" , this };
328
328
const TString labels = " {\" k1\" : \" v1\" }" ;
329
329
const TString escapedLabels = EscapeC (labels);
330
- runner.AddEvent ( " cloud1" , " queue1" , EEvType::Created, {}, escapedLabels);
330
+ runner.AddEvent (" cloud1" , " queue1" , EEvType::Created, {}, nullLabels ? Nothing () : TMaybe<TString>( escapedLabels) );
331
331
runner.DispatchEvents ();
332
332
auto messages = runner.EventsWriter ->GetMessages ();
333
333
UNIT_ASSERT_VALUES_EQUAL (messages.size (), 2 ); // Events, reindex
334
- CheckEventsLine (messages[0 ], EEvType::Created, {}, labels);
335
- CheckEventsLine (messages[1 ], EEvType::Existed, {}, labels);
334
+ CheckEventsLine (messages[0 ], EEvType::Created, {}, nullLabels ? " {} " : labels);
335
+ CheckEventsLine (messages[1 ], EEvType::Existed, {}, nullLabels ? " {} " : labels);
336
336
UNIT_ASSERT_VALUES_EQUAL (runner.CountEvents (), 0 );
337
337
}
338
338
339
- void TestReindexSingleQueue () {
339
+ void TestSingleCreateQueueEvent () {
340
+ CheckSingleCreateQueueEvent (false );
341
+ CheckSingleCreateQueueEvent (true );
342
+ }
343
+
344
+ void CheckReindexSingleQueue (bool nullLabels) {
340
345
TTestRunner runner{" ReindexSingleQueue" , this };
341
346
const TString labels = " {\" k1\" : \" v1\" }" ;
342
347
const TString escapedLabels = EscapeC (labels);
343
- runner.AddQueue (" cloud1" , " queue1" , {}, escapedLabels);
348
+ runner.AddQueue (" cloud1" , " queue1" , {}, nullLabels ? Nothing () : TMaybe<TString>( escapedLabels) );
344
349
runner.DispatchEvents ();
345
350
auto messages = runner.EventsWriter ->GetMessages ();
346
351
UNIT_ASSERT_VALUES_EQUAL (messages.size (), 1 );
347
- CheckEventsLine (messages[0 ], EEvType::Existed, {}, labels);
352
+ CheckEventsLine (messages[0 ], EEvType::Existed, {}, nullLabels ? " {} " : labels);
348
353
}
349
354
350
- void TestDeletedQueueNotReindexed () {
355
+ void TestReindexSingleQueue () {
356
+ CheckReindexSingleQueue (false );
357
+ CheckReindexSingleQueue (true );
358
+ }
359
+
360
+ void CheckDeletedQueueNotReindexed (bool nullLabels) {
351
361
TTestRunner runner{" DeletedQueueNotReindexed" , this };
352
362
const TString labels = " {\" k1\" : \" v1\" }" ;
353
363
const TString escapedLabels = EscapeC (labels);
354
- runner.AddQueue (" cloud1" , " queue2" , runner.PrevTs , escapedLabels);
355
- runner.AddEvent (" cloud1" , " queue2" , EEvType::Deleted, {}, escapedLabels);
364
+ runner.AddQueue (" cloud1" , " queue2" , runner.PrevTs , nullLabels ? Nothing () : TMaybe<TString>( escapedLabels) );
365
+ runner.AddEvent (" cloud1" , " queue2" , EEvType::Deleted, {}, nullLabels ? Nothing () : TMaybe<TString>( escapedLabels) );
356
366
Sleep (TDuration::Seconds (1 ));
357
367
runner.DispatchEvents ();
358
368
auto messages = runner.EventsWriter ->GetMessages ();
359
369
UNIT_ASSERT_VALUES_EQUAL (messages.size (), 1 );
360
- CheckEventsLine (messages[0 ], EEvType::Deleted, {}, labels);
370
+ CheckEventsLine (messages[0 ], EEvType::Deleted, {}, nullLabels ? " {}" : labels);
371
+ }
372
+
373
+ void TestDeletedQueueNotReindexed () {
374
+ CheckDeletedQueueNotReindexed (false );
375
+ CheckDeletedQueueNotReindexed (true );
361
376
}
362
377
363
378
void TestManyMessages () {
0 commit comments