@@ -130,7 +130,7 @@ class TIndexProcesorTests : public TTestBase {
130130 UNIT_ASSERT (statusVal.IsSuccess ());
131131 }
132132 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 = "{}" )
134134 {
135135 if (ts == TInstant::Zero())
136136 ts = CurrTs;
@@ -143,12 +143,12 @@ class TIndexProcesorTests : public TTestBase {
143143 << " \" myQueueCustomName\" , "
144144 << ts.MilliSeconds() << " , "
145145 << " \" myFolder\" , "
146- << " \" " << labels << " \" "
146+ << (labels.Defined() ? " \" " + labels.GetRef() + " \" " : " NULL " )
147147 << " );" ;
148148 ExecDataQuery (queryBuilder.c_str());
149149 }
150150
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 = "{}" ) {
152152 if (ts == TInstant::Zero())
153153 ts = CurrTs;
154154 TStringBuilder queryBuilder;
@@ -159,12 +159,12 @@ class TIndexProcesorTests : public TTestBase {
159159 << " \" myQueueCustomName\" , "
160160 << ts.MilliSeconds() << " , "
161161 << " \" myFolder\" , "
162- << " \" " << tags << " \" "
162+ << (tags.Defined() ? " \" " + tags.GetRef() + " \" " : " NULL " )
163163 << " );" ;
164164 ExecDataQuery (queryBuilder.c_str());
165165 }
166166
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 = " {}" ) {
168168 Cerr << " ===Started add queue batch\n " ;
169169 TDeque<NYdb::NTable::TAsyncDataQueryResult> results;
170170 ui64 maxInflight = 1 ;
@@ -181,7 +181,7 @@ class TIndexProcesorTests : public TTestBase {
181181 << " \" myQueueCustomName\" , "
182182 << CurrTs.MilliSeconds () << " , "
183183 << " \" myFolder\" , "
184- << " \" " << tags << " \" "
184+ << (tags. Defined () ? " \" " + tags. GetRef () + " \" " : " NULL " )
185185 << " );" ;
186186
187187 auto preparedResult = session.PrepareDataQuery (queryBuilder.c_str ()).GetValueSync ();
@@ -323,41 +323,56 @@ class TIndexProcesorTests : public TTestBase {
323323 TTestRunner (" CreateIndexProcessor" , this );
324324 }
325325
326- void TestSingleCreateQueueEvent ( ) {
326+ void CheckSingleCreateQueueEvent ( bool nullLabels ) {
327327 TTestRunner runner{" SingleCreateQueueEvent" , this };
328328 const TString labels = " {\" k1\" : \" v1\" }" ;
329329 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) );
331331 runner.DispatchEvents ();
332332 auto messages = runner.EventsWriter ->GetMessages ();
333333 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);
336336 UNIT_ASSERT_VALUES_EQUAL (runner.CountEvents (), 0 );
337337 }
338338
339- void TestReindexSingleQueue () {
339+ void TestSingleCreateQueueEvent () {
340+ CheckSingleCreateQueueEvent (false );
341+ CheckSingleCreateQueueEvent (true );
342+ }
343+
344+ void CheckReindexSingleQueue (bool nullLabels) {
340345 TTestRunner runner{" ReindexSingleQueue" , this };
341346 const TString labels = " {\" k1\" : \" v1\" }" ;
342347 const TString escapedLabels = EscapeC (labels);
343- runner.AddQueue (" cloud1" , " queue1" , {}, escapedLabels);
348+ runner.AddQueue (" cloud1" , " queue1" , {}, nullLabels ? Nothing () : TMaybe<TString>( escapedLabels) );
344349 runner.DispatchEvents ();
345350 auto messages = runner.EventsWriter ->GetMessages ();
346351 UNIT_ASSERT_VALUES_EQUAL (messages.size (), 1 );
347- CheckEventsLine (messages[0 ], EEvType::Existed, {}, labels);
352+ CheckEventsLine (messages[0 ], EEvType::Existed, {}, nullLabels ? " {} " : labels);
348353 }
349354
350- void TestDeletedQueueNotReindexed () {
355+ void TestReindexSingleQueue () {
356+ CheckReindexSingleQueue (false );
357+ CheckReindexSingleQueue (true );
358+ }
359+
360+ void CheckDeletedQueueNotReindexed (bool nullLabels) {
351361 TTestRunner runner{" DeletedQueueNotReindexed" , this };
352362 const TString labels = " {\" k1\" : \" v1\" }" ;
353363 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) );
356366 Sleep (TDuration::Seconds (1 ));
357367 runner.DispatchEvents ();
358368 auto messages = runner.EventsWriter ->GetMessages ();
359369 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 );
361376 }
362377
363378 void TestManyMessages () {
0 commit comments