Skip to content
Snippets Groups Projects
Commit 74beb0df authored by Felix Reichenbach's avatar Felix Reichenbach
Browse files

OZG-7846 move null check

parent f64523ea
No related branches found
No related tags found
1 merge request!13Ozg 7846 filter for form engine
...@@ -94,10 +94,9 @@ public class AggregationManagerRunner implements CommandLineRunner { ...@@ -94,10 +94,9 @@ public class AggregationManagerRunner implements CommandLineRunner {
void runWithTransformation(Transformation transformation, FormIdentifier formIdentifier) { void runWithTransformation(Transformation transformation, FormIdentifier formIdentifier) {
try (Execution execution = new Execution(transformation)) { try (Execution execution = new Execution(transformation)) {
ThreadContext.put(MDC_EXECUTION, execution.id.toString()); ThreadContext.put(MDC_EXECUTION, execution.id.toString());
var vorgaenge = extractBatchesOfVorgaengeFromDataSource(execution, formIdentifier); loadVorgaengeIntoRepository(Stream.concat(
var deletedVorgaenge = Objects.isNull(formIdentifier) ? extractBatchesOfDeletedVorgaengeFromDataSource(execution) extractBatchesOfVorgaengeFromDataSource(execution, formIdentifier),
: Stream.<Batch>empty(); extractBatchesOfDeletedVorgaengeFromDataSource(execution, formIdentifier)));
loadVorgaengeIntoRepository(Stream.concat(vorgaenge, deletedVorgaenge));
} finally { } finally {
ThreadContext.remove(MDC_EXECUTION); ThreadContext.remove(MDC_EXECUTION);
} }
...@@ -132,8 +131,9 @@ public class AggregationManagerRunner implements CommandLineRunner { ...@@ -132,8 +131,9 @@ public class AggregationManagerRunner implements CommandLineRunner {
.build()); .build());
} }
Stream<Batch> extractBatchesOfDeletedVorgaengeFromDataSource(Execution execution) { Stream<Batch> extractBatchesOfDeletedVorgaengeFromDataSource(Execution execution, FormIdentifier formIdentifier) {
return extractBatchesFromDataSource(execution, getPagedDeletedVorgaenge(vorgangService.findDeleted())); return Objects.isNull(formIdentifier) ? extractBatchesFromDataSource(execution, getPagedDeletedVorgaenge(vorgangService.findDeleted()))
: Stream.empty();
} }
Function<Page, List<OzgCloudVorgang>> getPagedDeletedVorgaenge(Stream<OzgCloudVorgangStub> allDeletedVorgaenge) { Function<Page, List<OzgCloudVorgang>> getPagedDeletedVorgaenge(Stream<OzgCloudVorgangStub> allDeletedVorgaenge) {
......
...@@ -201,12 +201,15 @@ class AggregationManagerRunnerTest { ...@@ -201,12 +201,15 @@ class AggregationManagerRunnerTest {
private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create(); private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create();
@Mock @Mock
private Batch batchOfVorgaenge; private Batch batchOfVorgaenge;
@Mock
private Batch batchOfDeletedVorgaenge;
@Captor @Captor
private ArgumentCaptor<Stream<Batch>> batchStreamCaptor; private ArgumentCaptor<Stream<Batch>> batchStreamCaptor;
@BeforeEach @BeforeEach
void init() { void init() {
doReturn(Stream.of(batchOfVorgaenge)).when(runner).extractBatchesOfVorgaengeFromDataSource(any(), any()); doReturn(Stream.of(batchOfVorgaenge)).when(runner).extractBatchesOfVorgaengeFromDataSource(any(), any());
doReturn(Stream.of(batchOfDeletedVorgaenge)).when(runner).extractBatchesOfDeletedVorgaengeFromDataSource(any(), any());
doNothing().when(runner).loadVorgaengeIntoRepository(any()); doNothing().when(runner).loadVorgaengeIntoRepository(any());
} }
...@@ -217,41 +220,11 @@ class AggregationManagerRunnerTest { ...@@ -217,41 +220,11 @@ class AggregationManagerRunnerTest {
verify(runner).extractBatchesOfVorgaengeFromDataSource(argThat(hasTransformation), eq(formIdentifier)); 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 @Test
void shouldExtractBatchesOfDeletedVorgaengeFromDataSource() { void shouldExtractBatchesOfDeletedVorgaengeFromDataSource() {
runner.runWithTransformation(transformation, null);
verify(runner).extractBatchesOfDeletedVorgaengeFromDataSource(argThat(hasTransformation));
}
@Test
void shouldLoadVorgaengeIntoRepository() {
runner.runWithTransformation(transformation, null);
verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture());
assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge, batchOfDeletedVorgaenge);
}
}
@Nested
class TestOnFormIdentifierIsNotNull {
@Test
void shouldNotExtractBatchesOfDeletedVorgaengeFromDataSource() {
runner.runWithTransformation(transformation, formIdentifier); runner.runWithTransformation(transformation, formIdentifier);
verify(runner, never()).extractBatchesOfDeletedVorgaengeFromDataSource(any()); verify(runner).extractBatchesOfDeletedVorgaengeFromDataSource(argThat(hasTransformation), eq(formIdentifier));
} }
@Test @Test
...@@ -259,8 +232,7 @@ class AggregationManagerRunnerTest { ...@@ -259,8 +232,7 @@ class AggregationManagerRunnerTest {
runner.runWithTransformation(transformation, formIdentifier); runner.runWithTransformation(transformation, formIdentifier);
verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture()); verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture());
assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge); assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge, batchOfDeletedVorgaenge);
}
} }
} }
...@@ -443,6 +415,9 @@ class AggregationManagerRunnerTest { ...@@ -443,6 +415,9 @@ class AggregationManagerRunnerTest {
@Mock @Mock
private Batch batch; private Batch batch;
@Nested
class TestOnNullFormIdentifier {
@BeforeEach @BeforeEach
void init() { void init() {
when(vorgangService.findDeleted()).thenReturn(deletedVorgaenge.stream()); when(vorgangService.findDeleted()).thenReturn(deletedVorgaenge.stream());
...@@ -452,34 +427,49 @@ class AggregationManagerRunnerTest { ...@@ -452,34 +427,49 @@ class AggregationManagerRunnerTest {
@Test @Test
void shouldFindDeleted() { void shouldFindDeleted() {
runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution); runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null);
verify(vorgangService).findDeleted(); verify(vorgangService).findDeleted();
} }
@Test @Test
void shouldGetPagedDeletedVorgaenge() { void shouldGetPagedDeletedVorgaenge() {
runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution); runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null);
verify(runner).getPagedDeletedVorgaenge(deletedVorgaengeCaptor.capture()); verify(runner).getPagedDeletedVorgaenge(deletedVorgaengeCaptor.capture());
assertThat(deletedVorgaengeCaptor.getValue()).usingRecursiveFieldByFieldElementComparator().containsExactlyElementsOf(deletedVorgaenge); assertThat(deletedVorgaengeCaptor.getValue()).usingRecursiveFieldByFieldElementComparator()
.containsExactlyElementsOf(deletedVorgaenge);
} }
@Test @Test
void shouldExtractWithDataRetrievalFunction() { void shouldExtractWithDataRetrievalFunction() {
runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution); runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null);
verify(runner).extractBatchesFromDataSource(execution, functionToRetrieveData); verify(runner).extractBatchesFromDataSource(execution, functionToRetrieveData);
} }
@Test @Test
void shouldReturnExtractedBatches() { void shouldReturnExtractedBatches() {
var extracted = runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution); var extracted = runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null);
assertThat(extracted).containsExactly(batch); assertThat(extracted).containsExactly(batch);
} }
} }
@Nested
class TestOnFormIdentifierNotNull {
private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create();
@Test
void shouldReturnEmptyStream() {
var extracted = runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, formIdentifier);
assertThat(extracted).isEmpty();
}
}
}
@Nested @Nested
class TestGetPagedDeletedVorgaenge { class TestGetPagedDeletedVorgaenge {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment