|
1 | 1 | package gov.cms.qpp.conversion.api.services;
|
2 | 2 |
|
| 3 | +import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper; |
| 4 | +import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBQueryExpression; |
| 5 | +import com.amazonaws.services.dynamodbv2.datamodeling.QueryResultPage; |
| 6 | +import gov.cms.qpp.conversion.api.model.Constants; |
| 7 | +import gov.cms.qpp.conversion.api.model.Metadata; |
| 8 | +import gov.cms.qpp.test.MockitoExtension; |
| 9 | +import org.junit.jupiter.api.BeforeEach; |
| 10 | +import org.junit.jupiter.api.Test; |
| 11 | +import org.junit.jupiter.api.extension.ExtendWith; |
| 12 | +import org.mockito.InjectMocks; |
| 13 | +import org.mockito.Mock; |
| 14 | +import org.springframework.core.env.Environment; |
| 15 | +import org.springframework.core.task.TaskExecutor; |
| 16 | + |
| 17 | +import java.util.List; |
| 18 | +import java.util.concurrent.CompletableFuture; |
| 19 | +import java.util.stream.Collectors; |
| 20 | +import java.util.stream.Stream; |
| 21 | + |
3 | 22 | import static com.google.common.truth.Truth.assertThat;
|
4 | 23 | import static com.google.common.truth.Truth.assertWithMessage;
|
5 | 24 | import static org.mockito.ArgumentMatchers.any;
|
|
12 | 31 | import static org.mockito.Mockito.verifyZeroInteractions;
|
13 | 32 | import static org.mockito.Mockito.when;
|
14 | 33 |
|
15 |
| -import java.util.List; |
16 |
| -import java.util.concurrent.CompletableFuture; |
17 |
| -import java.util.stream.Stream; |
18 |
| - |
19 |
| -import org.junit.jupiter.api.BeforeEach; |
20 |
| -import org.junit.jupiter.api.Test; |
21 |
| -import org.junit.jupiter.api.extension.ExtendWith; |
22 |
| -import org.mockito.InjectMocks; |
23 |
| -import org.mockito.Mock; |
24 |
| -import org.springframework.core.env.Environment; |
25 |
| -import org.springframework.core.task.TaskExecutor; |
26 |
| - |
27 |
| -import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper; |
28 |
| -import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBQueryExpression; |
29 |
| -import com.amazonaws.services.dynamodbv2.datamodeling.PaginatedQueryList; |
30 |
| - |
31 |
| -import gov.cms.qpp.conversion.api.model.Constants; |
32 |
| -import gov.cms.qpp.conversion.api.model.Metadata; |
33 |
| -import gov.cms.qpp.test.MockitoExtension; |
34 |
| - |
35 | 34 | @ExtendWith(MockitoExtension.class)
|
36 | 35 | class DbServiceImplTest {
|
37 | 36 |
|
@@ -92,14 +91,16 @@ void testNoWriteBecauseNoAudit() {
|
92 | 91 |
|
93 | 92 | @Test
|
94 | 93 | void testGetUnprocessedCpcPlusMetaData() {
|
95 |
| - PaginatedQueryList<Metadata> mockMetadataList = mock(PaginatedQueryList.class); |
96 |
| - when(mockMetadataList.stream()).thenAnswer(invocationOnMock -> Stream.of(new Metadata(), new Metadata())); |
97 |
| - when(dbMapper.query(eq(Metadata.class), any(DynamoDBQueryExpression.class))).thenReturn(mockMetadataList); |
| 94 | + int itemsPerPartition = 2; |
| 95 | + |
| 96 | + QueryResultPage<Metadata> mockMetadataPage = mock(QueryResultPage.class); |
| 97 | + when(mockMetadataPage.getResults()).thenReturn(Stream.generate(Metadata::new).limit(itemsPerPartition).collect(Collectors.toList())); |
| 98 | + when(dbMapper.queryPage(eq(Metadata.class), any(DynamoDBQueryExpression.class))).thenReturn(mockMetadataPage); |
98 | 99 |
|
99 | 100 | List<Metadata> metaDataList = underTest.getUnprocessedCpcPlusMetaData();
|
100 | 101 |
|
101 |
| - verify(dbMapper, times(Constants.CPC_DYNAMO_PARTITIONS)).query(any(Class.class), any(DynamoDBQueryExpression.class)); |
102 |
| - assertThat(metaDataList).hasSize(2 * Constants.CPC_DYNAMO_PARTITIONS); |
| 102 | + verify(dbMapper, times(Constants.CPC_DYNAMO_PARTITIONS)).queryPage(any(Class.class), any(DynamoDBQueryExpression.class)); |
| 103 | + assertThat(metaDataList).hasSize(itemsPerPartition * Constants.CPC_DYNAMO_PARTITIONS); |
103 | 104 | }
|
104 | 105 |
|
105 | 106 | @Test
|
|
0 commit comments