|
15 | 15 | import org.opensearch.dataprepper.metrics.PluginMetrics; |
16 | 16 | import org.opensearch.dataprepper.model.source.coordinator.enhanced.EnhancedSourceCoordinator; |
17 | 17 | import org.opensearch.dataprepper.model.source.coordinator.enhanced.EnhancedSourcePartition; |
| 18 | +import org.opensearch.dataprepper.plugins.source.dynamodb.coordination.partition.DataFilePartition; |
18 | 19 | import org.opensearch.dataprepper.plugins.source.dynamodb.coordination.partition.ExportPartition; |
| 20 | +import org.opensearch.dataprepper.plugins.source.dynamodb.coordination.partition.GlobalState; |
19 | 21 | import org.opensearch.dataprepper.plugins.source.dynamodb.coordination.state.ExportProgressState; |
20 | 22 | import org.opensearch.dataprepper.plugins.source.dynamodb.model.ExportSummary; |
21 | 23 | import org.opensearch.dataprepper.plugins.source.dynamodb.utils.DynamoDBSourceAggregateMetrics; |
|
30 | 32 | import software.amazon.awssdk.services.dynamodb.model.InternalServerErrorException; |
31 | 33 |
|
32 | 34 | import java.time.Instant; |
| 35 | +import java.util.List; |
33 | 36 | import java.util.Map; |
34 | 37 | import java.util.Optional; |
35 | 38 | import java.util.UUID; |
|
40 | 43 |
|
41 | 44 | import static org.hamcrest.MatcherAssert.assertThat; |
42 | 45 | import static org.hamcrest.Matchers.equalTo; |
| 46 | +import static org.hamcrest.Matchers.instanceOf; |
43 | 47 | import static org.mockito.ArgumentMatchers.any; |
44 | 48 | import static org.mockito.ArgumentMatchers.anyString; |
45 | 49 | import static org.mockito.BDDMockito.given; |
@@ -171,7 +175,16 @@ public void test_run_exportJob_correctly() throws InterruptedException { |
171 | 175 | verify(dynamoDBClient, times(2)).describeExport(any(DescribeExportRequest.class)); |
172 | 176 |
|
173 | 177 | // Create 2 data file partitions + 1 global state |
174 | | - verify(coordinator, times(3)).createPartition(any(EnhancedSourcePartition.class)); |
| 178 | + final ArgumentCaptor<EnhancedSourcePartition> argumentCaptorPartitionsCreated = ArgumentCaptor.forClass(EnhancedSourcePartition.class); |
| 179 | + |
| 180 | + verify(coordinator, times(3)).createPartition(argumentCaptorPartitionsCreated.capture()); |
| 181 | + |
| 182 | + final List<EnhancedSourcePartition> createdPartitions = argumentCaptorPartitionsCreated.getAllValues(); |
| 183 | + assertThat(createdPartitions.size(), equalTo(3)); |
| 184 | + assertThat(createdPartitions.get(0), instanceOf(GlobalState.class)); |
| 185 | + assertThat(createdPartitions.get(1), instanceOf(DataFilePartition.class)); |
| 186 | + assertThat(createdPartitions.get(2), instanceOf(DataFilePartition.class)); |
| 187 | + |
175 | 188 | // Complete the export partition |
176 | 189 | verify(coordinator).completePartition(any(EnhancedSourcePartition.class)); |
177 | 190 | verify(exportJobSuccess).increment(); |
|
0 commit comments