diff --git a/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java b/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java index 9584200a47f784405c35ea92172122bd7068e455..3be3763cad02f515e502468eaab4ddfd66fa8486 100644 --- a/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java +++ b/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java @@ -94,10 +94,9 @@ public class AggregationManagerRunner implements CommandLineRunner { void runWithTransformation(Transformation transformation, FormIdentifier formIdentifier) { try (Execution execution = new Execution(transformation)) { ThreadContext.put(MDC_EXECUTION, execution.id.toString()); - var vorgaenge = extractBatchesOfVorgaengeFromDataSource(execution, formIdentifier); - var deletedVorgaenge = Objects.isNull(formIdentifier) ? extractBatchesOfDeletedVorgaengeFromDataSource(execution) - : Stream.<Batch>empty(); - loadVorgaengeIntoRepository(Stream.concat(vorgaenge, deletedVorgaenge)); + loadVorgaengeIntoRepository(Stream.concat( + extractBatchesOfVorgaengeFromDataSource(execution, formIdentifier), + extractBatchesOfDeletedVorgaengeFromDataSource(execution, formIdentifier))); } finally { ThreadContext.remove(MDC_EXECUTION); } @@ -132,8 +131,9 @@ public class AggregationManagerRunner implements CommandLineRunner { .build()); } - Stream<Batch> extractBatchesOfDeletedVorgaengeFromDataSource(Execution execution) { - return extractBatchesFromDataSource(execution, getPagedDeletedVorgaenge(vorgangService.findDeleted())); + Stream<Batch> extractBatchesOfDeletedVorgaengeFromDataSource(Execution execution, FormIdentifier formIdentifier) { + return Objects.isNull(formIdentifier) ? extractBatchesFromDataSource(execution, getPagedDeletedVorgaenge(vorgangService.findDeleted())) + : Stream.empty(); } Function<Page, List<OzgCloudVorgang>> getPagedDeletedVorgaenge(Stream<OzgCloudVorgangStub> allDeletedVorgaenge) { diff --git a/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java b/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java index fde2d1ad0d8cc5ec8e87d724c7ea4a76fae3bb4a..8ae63547a9c93fbc32de62b39f8a4409b24d7e9f 100644 --- a/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java +++ b/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java @@ -201,12 +201,15 @@ class AggregationManagerRunnerTest { private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create(); @Mock private Batch batchOfVorgaenge; + @Mock + private Batch batchOfDeletedVorgaenge; @Captor private ArgumentCaptor<Stream<Batch>> batchStreamCaptor; @BeforeEach void init() { doReturn(Stream.of(batchOfVorgaenge)).when(runner).extractBatchesOfVorgaengeFromDataSource(any(), any()); + doReturn(Stream.of(batchOfDeletedVorgaenge)).when(runner).extractBatchesOfDeletedVorgaengeFromDataSource(any(), any()); doNothing().when(runner).loadVorgaengeIntoRepository(any()); } @@ -217,50 +220,19 @@ class AggregationManagerRunnerTest { verify(runner).extractBatchesOfVorgaengeFromDataSource(argThat(hasTransformation), eq(formIdentifier)); } - @Nested - class TestOnFormIdentifierIsNull { - - @Mock - private Batch batchOfDeletedVorgaenge; - - @BeforeEach - void mock() { - doReturn(Stream.of(batchOfDeletedVorgaenge)).when(runner).extractBatchesOfDeletedVorgaengeFromDataSource(any()); - } - - @Test - void shouldExtractBatchesOfDeletedVorgaengeFromDataSource() { - runner.runWithTransformation(transformation, null); - - verify(runner).extractBatchesOfDeletedVorgaengeFromDataSource(argThat(hasTransformation)); - } - - @Test - void shouldLoadVorgaengeIntoRepository() { - runner.runWithTransformation(transformation, null); + @Test + void shouldExtractBatchesOfDeletedVorgaengeFromDataSource() { + runner.runWithTransformation(transformation, formIdentifier); - verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture()); - assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge, batchOfDeletedVorgaenge); - } + verify(runner).extractBatchesOfDeletedVorgaengeFromDataSource(argThat(hasTransformation), eq(formIdentifier)); } - @Nested - class TestOnFormIdentifierIsNotNull { - - @Test - void shouldNotExtractBatchesOfDeletedVorgaengeFromDataSource() { - runner.runWithTransformation(transformation, formIdentifier); - - verify(runner, never()).extractBatchesOfDeletedVorgaengeFromDataSource(any()); - } - - @Test - void shouldLoadVorgaengeIntoRepository() { - runner.runWithTransformation(transformation, formIdentifier); + @Test + void shouldLoadVorgaengeIntoRepository() { + runner.runWithTransformation(transformation, formIdentifier); - verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture()); - assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge); - } + verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture()); + assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge, batchOfDeletedVorgaenge); } } @@ -443,40 +415,58 @@ class AggregationManagerRunnerTest { @Mock private Batch batch; - @BeforeEach - void init() { - when(vorgangService.findDeleted()).thenReturn(deletedVorgaenge.stream()); - doReturn(functionToRetrieveData).when(runner).getPagedDeletedVorgaenge(any()); - doReturn(Stream.of(batch)).when(runner).extractBatchesFromDataSource(any(), any()); - } + @Nested + class TestOnNullFormIdentifier { - @Test - void shouldFindDeleted() { - runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution); + @BeforeEach + void init() { + when(vorgangService.findDeleted()).thenReturn(deletedVorgaenge.stream()); + doReturn(functionToRetrieveData).when(runner).getPagedDeletedVorgaenge(any()); + doReturn(Stream.of(batch)).when(runner).extractBatchesFromDataSource(any(), any()); + } - verify(vorgangService).findDeleted(); - } + @Test + void shouldFindDeleted() { + runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null); - @Test - void shouldGetPagedDeletedVorgaenge() { - runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution); + verify(vorgangService).findDeleted(); + } - verify(runner).getPagedDeletedVorgaenge(deletedVorgaengeCaptor.capture()); - assertThat(deletedVorgaengeCaptor.getValue()).usingRecursiveFieldByFieldElementComparator().containsExactlyElementsOf(deletedVorgaenge); - } + @Test + void shouldGetPagedDeletedVorgaenge() { + runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null); - @Test - void shouldExtractWithDataRetrievalFunction() { - runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution); + verify(runner).getPagedDeletedVorgaenge(deletedVorgaengeCaptor.capture()); + assertThat(deletedVorgaengeCaptor.getValue()).usingRecursiveFieldByFieldElementComparator() + .containsExactlyElementsOf(deletedVorgaenge); + } + + @Test + void shouldExtractWithDataRetrievalFunction() { + runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null); - verify(runner).extractBatchesFromDataSource(execution, functionToRetrieveData); + verify(runner).extractBatchesFromDataSource(execution, functionToRetrieveData); + } + + @Test + void shouldReturnExtractedBatches() { + var extracted = runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null); + + assertThat(extracted).containsExactly(batch); + } } - @Test - void shouldReturnExtractedBatches() { - var extracted = runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution); + @Nested + class TestOnFormIdentifierNotNull { - assertThat(extracted).containsExactly(batch); + private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create(); + + @Test + void shouldReturnEmptyStream() { + var extracted = runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, formIdentifier); + + assertThat(extracted).isEmpty(); + } } }