1010import org .mockito .Mock ;
1111import org .mockito .junit .jupiter .MockitoExtension ;
1212import org .opensearch .client .opensearch .OpenSearchClient ;
13- import org .opensearch .client .opensearch .core .DeleteRequest ;
14- import org .opensearch .client .opensearch .core .DeleteResponse ;
1513import org .opensearch .client .opensearch .core .MsearchRequest ;
1614import org .opensearch .client .opensearch .core .MsearchResponse ;
1715import org .opensearch .client .opensearch .core .msearch .MultiSearchItem ;
1816import org .opensearch .client .opensearch .core .msearch .MultiSearchResponseItem ;
1917import org .opensearch .client .opensearch .core .search .Hit ;
2018import org .opensearch .client .opensearch .core .search .HitsMetadata ;
21- import org .opensearch .client .util .ObjectBuilder ;
2219import org .opensearch .dataprepper .metrics .PluginMetrics ;
2320import org .opensearch .dataprepper .plugins .sink .opensearch .BulkOperationWrapper ;
2421import org .opensearch .dataprepper .test .helper .ReflectivelySetField ;
3027import java .util .Set ;
3128import java .util .UUID ;
3229import java .util .concurrent .atomic .AtomicInteger ;
33- import java .util .function .Function ;
3430
3531import static org .hamcrest .CoreMatchers .equalTo ;
3632import static org .hamcrest .CoreMatchers .notNullValue ;
4642import static org .opensearch .dataprepper .plugins .sink .opensearch .index .ExistingDocumentQueryManager .EVENTS_ADDED_FOR_QUERYING ;
4743import static org .opensearch .dataprepper .plugins .sink .opensearch .index .ExistingDocumentQueryManager .EVENTS_DROPPED_AND_RELEASED ;
4844import static org .opensearch .dataprepper .plugins .sink .opensearch .index .ExistingDocumentQueryManager .EVENTS_RETURNED_FOR_INDEXING ;
49- import static org .opensearch .dataprepper .plugins .sink .opensearch .index .ExistingDocumentQueryManager .POTENTIAL_DUPLICATES_DELETED ;
45+ import static org .opensearch .dataprepper .plugins .sink .opensearch .index .ExistingDocumentQueryManager .POTENTIAL_DUPLICATES ;
5046
5147@ ExtendWith (MockitoExtension .class )
5248public class ExistingDocumentQueryManagerTest {
@@ -73,7 +69,7 @@ public class ExistingDocumentQueryManagerTest {
7369 private Counter duplicateEventsAddedToQueryManager ;
7470
7571 @ Mock
76- private Counter potentialDuplicatesDeleted ;
72+ private Counter potentialDuplicates ;
7773
7874 @ Mock
7975 private AtomicInteger documentsCurrentlyQueried ;
@@ -87,7 +83,7 @@ void setup() {
8783 when (pluginMetrics .counter (EVENTS_RETURNED_FOR_INDEXING )).thenReturn (eventsReturnedForIndexing );
8884 when (pluginMetrics .counter (DUPLICATE_EVENTS_IN_QUERY_MANAGER )).thenReturn (duplicateEventsAddedToQueryManager );
8985 when (pluginMetrics .gauge (eq (DOCUMENTS_CURRENTLY_BEING_QUERIED ), any (AtomicInteger .class ), any ())).thenReturn (documentsCurrentlyQueried );
90- when (pluginMetrics .counter (POTENTIAL_DUPLICATES_DELETED )).thenReturn (potentialDuplicatesDeleted );
86+ when (pluginMetrics .counter (POTENTIAL_DUPLICATES )).thenReturn (potentialDuplicates );
9187 queryTerm = UUID .randomUUID ().toString ();
9288 when (indexConfiguration .getQueryTerm ()).thenReturn (queryTerm );
9389 }
@@ -138,6 +134,7 @@ void add_bulk_operation_and_found_in_query_drops_and_releases_event() throws IOE
138134 verify (eventsDroppedAndReleased ).increment ();
139135 verify (eventsAddedForQuerying ).increment ();
140136 verify (documentsCurrentlyQueried ).incrementAndGet ();
137+ verify (documentsCurrentlyQueried ).decrementAndGet ();
141138 verify (bulkOperationWrapper ).releaseEventHandle (true );
142139
143140 verifyNoMoreInteractions (indexConfiguration );
@@ -247,7 +244,7 @@ void add_bulk_operation_for_same_term_value_increments_duplicate_events_metric()
247244 }
248245
249246 @ Test
250- void query_response_with_two_documents_with_same_term_value_deletes_duplicate_document () throws IOException {
247+ void query_response_with_two_documents_with_same_term_value_tracks_duplicate_document () throws IOException {
251248 final BulkOperationWrapper bulkOperationWrapper = mock (BulkOperationWrapper .class );
252249 final String index = UUID .randomUUID ().toString ();
253250 final String termValue = UUID .randomUUID ().toString ();
@@ -287,27 +284,15 @@ void query_response_with_two_documents_with_same_term_value_deletes_duplicate_do
287284 when (openSearchClient .msearch (any (MsearchRequest .class ), eq (ObjectNode .class )))
288285 .thenReturn (msearchResponse );
289286
290- when (openSearchClient .delete (any (Function .class ))).thenReturn (mock (DeleteResponse .class ));
291-
292287 final ExistingDocumentQueryManager objectUnderTest = createObjectUnderTest ();
293288
294289 objectUnderTest .addBulkOperation (bulkOperationWrapper );
295290
296291 objectUnderTest .runQueryLoop ();
297292
298- final ArgumentCaptor <Function > deleteRequestArgumentCaptor = ArgumentCaptor .forClass (Function .class );
299-
300293 verify (openSearchClient ).msearch (any (MsearchRequest .class ), eq (ObjectNode .class ));
301- verify (openSearchClient ).delete (deleteRequestArgumentCaptor .capture ());
302- verify (potentialDuplicatesDeleted ).increment ();
303-
304- assertThat (deleteRequestArgumentCaptor .getAllValues ().size (), equalTo (1 ));
305- final Function <DeleteRequest .Builder , ObjectBuilder <DeleteRequest >> deleteRequestFunction = deleteRequestArgumentCaptor .getValue ();
306-
307- DeleteRequest actualRequest = deleteRequestFunction .apply (new DeleteRequest .Builder ()).build ();
308- assertThat (actualRequest , notNullValue ());
309- assertThat (actualRequest .id (), equalTo (duplicateHit .id ()));
310- assertThat (actualRequest .index (), equalTo (index ));
294+ verify (potentialDuplicates ).increment ();
295+ verifyNoMoreInteractions (openSearchClient );
311296
312297 }
313298}
0 commit comments