1010
1111import org .opensearch .dataprepper .model .record .Record ;
1212import org .opensearch .dataprepper .model .event .Event ;
13+ import org .opensearch .dataprepper .model .event .DefaultEventHandle ;
1314import org .opensearch .dataprepper .model .event .EventMetadata ;
1415import org .opensearch .dataprepper .model .pipeline .HeadlessPipeline ;
1516
1617import static org .junit .jupiter .api .Assertions .assertThrows ;
1718import static org .hamcrest .MatcherAssert .assertThat ;
1819import static org .hamcrest .Matchers .equalTo ;
1920import static org .mockito .Mockito .mock ;
21+ import static org .mockito .Mockito .doNothing ;
2022import static org .mockito .ArgumentMatchers .eq ;
2123import static org .mockito .ArgumentMatchers .any ;
2224import static org .mockito .Mockito .when ;
@@ -78,23 +80,27 @@ public void testForwardToPipelinesWithPipelineMap() {
7880 Record <Event > record = mock (Record .class );
7981 EventMetadata eventMetadata = mock (EventMetadata .class );
8082 Event event = mock (Event .class );
83+ DefaultEventHandle eventHandle = mock (DefaultEventHandle .class );
84+ doNothing ().when (eventHandle ).acquireReference ();
85+ when (event .getEventHandle ()).thenReturn (eventHandle );
8186 when (record .getData ()).thenReturn (event );
8287 when (event .getMetadata ()).thenReturn (eventMetadata );
8388 Collection <Record <Event >> records = Collections .singletonList (record );
89+ SinkForwardRecordsContext sinkForwardRecordsContext = sinkContext .prepareRecordsForForwarding (records );
8490
85- assertThat (sinkContext .forwardRecords (records , Map .of ("datakey1" , "datavalue1" ), Map .of ("metadataKey1" , "metadataValue1" )), equalTo (true ));
91+ assertThat (sinkContext .forwardRecords (sinkForwardRecordsContext , records , Map .of ("datakey1" , "datavalue1" ), Map .of ("metadataKey1" , "metadataValue1" )), equalTo (true ));
8692 verify (forwardPipeline1 , times (1 )).sendEvents (eq (records ));
8793 verify (forwardPipeline2 , times (1 )).sendEvents (eq (records ));
8894 verify (event , times (1 )).put (any (String .class ), any (Object .class ));
8995 verify (event , times (1 )).getMetadata ();
9096 verify (eventMetadata , times (1 )).setAttribute (any (String .class ), any (Object .class ));
91- assertThat (sinkContext .forwardRecords (records , null , null ), equalTo (true ));
97+ assertThat (sinkContext .forwardRecords (sinkForwardRecordsContext , records , null , null ), equalTo (true ));
9298 verify (forwardPipeline1 , times (2 )).sendEvents (eq (records ));
9399 verify (forwardPipeline2 , times (2 )).sendEvents (eq (records ));
94- assertThat (sinkContext .forwardRecords (records , Map .of (), Map .of ()), equalTo (true ));
100+ assertThat (sinkContext .forwardRecords (sinkForwardRecordsContext , records , Map .of (), Map .of ()), equalTo (true ));
95101 verify (forwardPipeline1 , times (3 )).sendEvents (eq (records ));
96102 verify (forwardPipeline2 , times (3 )).sendEvents (eq (records ));
97- assertThat (sinkContext .forwardRecords (null , Map .of (), Map .of ()), equalTo (true ));
103+ assertThat (sinkContext .forwardRecords (sinkForwardRecordsContext , null , Map .of (), Map .of ()), equalTo (true ));
98104 verify (forwardPipeline1 , times (3 )).sendEvents (eq (records ));
99105 verify (forwardPipeline2 , times (3 )).sendEvents (eq (records ));
100106 }
@@ -113,7 +119,8 @@ public void testForwardToPipelinesWithPipelineMapAndFailureCases() {
113119 HeadlessPipeline forwardPipeline1 = mock (HeadlessPipeline .class );
114120 assertThrows (RuntimeException .class , () -> sinkContext .setForwardToPipelines (Map .of ("forward-pipeline1" , forwardPipeline1 )));
115121 Collection <Record <Event >> records = mock (Collection .class );
116- assertThat (sinkContext .forwardRecords (records , Map .of (), Map .of ()), equalTo (false ));
122+ SinkForwardRecordsContext sinkForwardRecordsContext = sinkContext .prepareRecordsForForwarding (records );
123+ assertThat (sinkContext .forwardRecords (sinkForwardRecordsContext , records , Map .of (), Map .of ()), equalTo (false ));
117124 }
118125
119126 @ Test
@@ -125,7 +132,8 @@ public void testWithNoForwardToPipelines() {
125132 final List <String > testForwardToPipelineNames = Collections .emptyList ();
126133 sinkContext = new SinkContext (testTagsTargetKey , testRoutes , testIncludeKeys , testExcludeKeys , testForwardToPipelineNames );
127134 Collection <Record <Event >> records = mock (Collection .class );
128- assertThat (sinkContext .forwardRecords (records , Map .of (), Map .of ()), equalTo (false ));
135+ SinkForwardRecordsContext sinkForwardRecordsContext = sinkContext .prepareRecordsForForwarding (records );
136+ assertThat (sinkContext .forwardRecords (sinkForwardRecordsContext , records , Map .of (), Map .of ()), equalTo (false ));
129137 }
130138}
131139
0 commit comments