diff --git a/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java b/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java index 3be3763cad02f515e502468eaab4ddfd66fa8486..ccfe40139c90b6f80ff097426b707ad7515f42ce 100644 --- a/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java +++ b/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java @@ -83,15 +83,15 @@ public class AggregationManagerRunner implements CommandLineRunner { var identifier = transformationProperties.getIdentifier(); var aggregationMappings = transformationProperties.getAggregationMappings(); if (Objects.isNull(aggregationMappings) || aggregationMappings.isEmpty()) { - runWithTransformation(transformationService.load(identifier, null), null); + runWithTransformation(transformationService.load(identifier, null), Optional.empty()); } else { aggregationMappings.stream() .forEach(aggregationMapping -> runWithTransformation(transformationService.load(identifier, aggregationMapping), - aggregationMapping.getFormIdentifier())); + Optional.of(aggregationMapping.getFormIdentifier()))); } } - void runWithTransformation(Transformation transformation, FormIdentifier formIdentifier) { + void runWithTransformation(Transformation transformation, Optional<FormIdentifier> formIdentifier) { try (Execution execution = new Execution(transformation)) { ThreadContext.put(MDC_EXECUTION, execution.id.toString()); loadVorgaengeIntoRepository(Stream.concat( @@ -107,32 +107,32 @@ public class AggregationManagerRunner implements CommandLineRunner { batches.map(this::transformBatchToDocumentEntries).forEach(this::loadDocumentEntriesIntoRepository); } - Stream<Batch> extractBatchesOfVorgaengeFromDataSource(Execution execution, FormIdentifier formIdentifier) { + Stream<Batch> extractBatchesOfVorgaengeFromDataSource(Execution execution, Optional<FormIdentifier> formIdentifier) { return extractBatchesFromDataSource(execution, page -> getVorgaengeFromDataSource(page, formIdentifier)); } - List<OzgCloudVorgang> getVorgaengeFromDataSource(Page page, FormIdentifier formIdentifier) { + List<OzgCloudVorgang> getVorgaengeFromDataSource(Page page, Optional<FormIdentifier> formIdentifier) { return vorgangService.find(buildFindByFormEngineQuery(formIdentifier), page).stream() .map(vorgangStub -> vorgangService.getById(vorgangStub.getId())) .toList(); } - OzgCloudVorgangQuery buildFindByFormEngineQuery(FormIdentifier formIdentifier) { + OzgCloudVorgangQuery buildFindByFormEngineQuery(Optional<FormIdentifier> formIdentifier) { return OzgCloudVorgangQuery.builder() .form(mapToFormIdentification(formIdentifier)) .build(); } - private Optional<FormIdentification> mapToFormIdentification(FormIdentifier formIdentifier) { - return Optional.ofNullable(formIdentifier) + private Optional<FormIdentification> mapToFormIdentification(Optional<FormIdentifier> formIdentifier) { + return formIdentifier .map(identifier -> FormIdentification.builder() .formId(identifier.getFormId()) .formEngineName(identifier.getFormEngineName()) .build()); } - Stream<Batch> extractBatchesOfDeletedVorgaengeFromDataSource(Execution execution, FormIdentifier formIdentifier) { - return Objects.isNull(formIdentifier) ? extractBatchesFromDataSource(execution, getPagedDeletedVorgaenge(vorgangService.findDeleted())) + Stream<Batch> extractBatchesOfDeletedVorgaengeFromDataSource(Execution execution, Optional<FormIdentifier> formIdentifier) { + return formIdentifier.isEmpty() ? extractBatchesFromDataSource(execution, getPagedDeletedVorgaenge(vorgangService.findDeleted())) : Stream.empty(); } diff --git a/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java b/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java index 8ae63547a9c93fbc32de62b39f8a4409b24d7e9f..1e578c804c4a8caa7022cce046ec08f37c059fcc 100644 --- a/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java +++ b/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java @@ -29,6 +29,7 @@ import static org.mockito.Mockito.*; import java.util.Collections; import java.util.List; +import java.util.Optional; import java.util.UUID; import java.util.function.Function; import java.util.stream.Stream; @@ -134,8 +135,8 @@ class AggregationManagerRunnerTest { void shouldRunWithTransformationForEachTransformation() { runner.run(); - verify(runner).runWithTransformation(firstTransformation, AggregationMappingTestFactory.FORM_IDENTIFIER); - verify(runner).runWithTransformation(secondTransformation, AggregationMappingTestFactory.FORM_IDENTIFIER); + verify(runner).runWithTransformation(firstTransformation, Optional.of(AggregationMappingTestFactory.FORM_IDENTIFIER)); + verify(runner).runWithTransformation(secondTransformation, Optional.of(AggregationMappingTestFactory.FORM_IDENTIFIER)); } } @@ -161,7 +162,7 @@ class AggregationManagerRunnerTest { void shouldCallRunWithTransformation() { runner.run(); - verify(runner).runWithTransformation(transformation, null); + verify(runner).runWithTransformation(transformation, Optional.empty()); } } @@ -187,7 +188,7 @@ class AggregationManagerRunnerTest { void shouldCallRunWithTransformation() { runner.run(); - verify(runner).runWithTransformation(transformation, null); + verify(runner).runWithTransformation(transformation, Optional.empty()); } } } @@ -198,7 +199,7 @@ class AggregationManagerRunnerTest { @Mock private Transformation transformation; private final ArgumentMatcher<Execution> hasTransformation = execution -> execution.getTransformation().equals(transformation); - private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create(); + private final Optional<FormIdentifier> formIdentifier = Optional.of(FormIdentifierTestFactory.create()); @Mock private Batch batchOfVorgaenge; @Mock @@ -283,7 +284,7 @@ class AggregationManagerRunnerTest { @Nested class TestExtractBatchesOfVorgaengeFromDataSource { - private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create(); + private final Optional<FormIdentifier> formIdentifier = Optional.of(FormIdentifierTestFactory.create()); @Mock private Execution execution; @Captor @@ -326,7 +327,7 @@ class AggregationManagerRunnerTest { class TestGetVorgaengeFromDataSource { private final Page page = Page.builder().offset(10).limit(2).build(); - private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create(); + private final Optional<FormIdentifier> formIdentifier = Optional.of(FormIdentifierTestFactory.create()); private final OzgCloudVorgangQuery query = OzgCloudVorgangQuery.builder().build(); @BeforeEach @@ -373,18 +374,20 @@ class AggregationManagerRunnerTest { class TestBuildFindByFormEngineQuery { @Nested - class TestOnFormIdentifierNull { + class TestOnEmptyFormIdentifier { + @Test - void shouldReturnFindAllQueryOnNullFormIdentifier() { - var query = runner.buildFindByFormEngineQuery(null); + void shouldReturnFindAllQueryOnEmptyFormIdentifier() { + var query = runner.buildFindByFormEngineQuery(Optional.empty()); assertThat(query).usingRecursiveComparison().isEqualTo(OzgCloudVorgangQuery.builder().build()); } } @Nested - class TestOnFormIdentifierNotNull { - private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create(); + class TestOnFormIdentifierNotEmpty { + + private final Optional<FormIdentifier> formIdentifier = Optional.of(FormIdentifierTestFactory.create()); @Test void shouldSetFormIdInQuery() { @@ -416,7 +419,7 @@ class AggregationManagerRunnerTest { private Batch batch; @Nested - class TestOnNullFormIdentifier { + class TestOnEmptyFormIdentifier { @BeforeEach void init() { @@ -427,14 +430,14 @@ class AggregationManagerRunnerTest { @Test void shouldFindDeleted() { - runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null); + runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, Optional.empty()); verify(vorgangService).findDeleted(); } @Test void shouldGetPagedDeletedVorgaenge() { - runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null); + runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, Optional.empty()); verify(runner).getPagedDeletedVorgaenge(deletedVorgaengeCaptor.capture()); assertThat(deletedVorgaengeCaptor.getValue()).usingRecursiveFieldByFieldElementComparator() @@ -443,23 +446,23 @@ class AggregationManagerRunnerTest { @Test void shouldExtractWithDataRetrievalFunction() { - runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null); + runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, Optional.empty()); verify(runner).extractBatchesFromDataSource(execution, functionToRetrieveData); } @Test void shouldReturnExtractedBatches() { - var extracted = runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null); + var extracted = runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, Optional.empty()); assertThat(extracted).containsExactly(batch); } } @Nested - class TestOnFormIdentifierNotNull { + class TestOnFormIdentifierNotEmpty { - private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create(); + private final Optional<FormIdentifier> formIdentifier = Optional.of(FormIdentifierTestFactory.create()); @Test void shouldReturnEmptyStream() {