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

OZG-7846 ignore deleted vorgaenge, if formIdentifier is given

parent a24c59f3
No related branches found
No related tags found
1 merge request!13Ozg 7846 filter for form engine
...@@ -94,15 +94,17 @@ public class AggregationManagerRunner implements CommandLineRunner { ...@@ -94,15 +94,17 @@ 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());
loadVorgaengeIntoRepository(Stream.concat( var vorgaenge = extractBatchesOfVorgaengeFromDataSource(execution, formIdentifier);
extractBatchesOfVorgaengeFromDataSource(execution, formIdentifier), var deletedVorgaenge = Objects.isNull(formIdentifier) ? extractBatchesOfDeletedVorgaengeFromDataSource(execution)
extractBatchesOfDeletedVorgaengeFromDataSource(execution))); : Stream.<Batch>empty();
loadVorgaengeIntoRepository(Stream.concat(vorgaenge, deletedVorgaenge));
} finally { } finally {
ThreadContext.remove(MDC_EXECUTION); ThreadContext.remove(MDC_EXECUTION);
} }
} }
void loadVorgaengeIntoRepository(Stream<Batch> batches) { void loadVorgaengeIntoRepository(Stream<Batch> batches) {
repository.deleteAll();
batches.map(this::transformBatchToDocumentEntries).forEach(this::loadDocumentEntriesIntoRepository); batches.map(this::transformBatchToDocumentEntries).forEach(this::loadDocumentEntriesIntoRepository);
} }
......
...@@ -201,15 +201,12 @@ class AggregationManagerRunnerTest { ...@@ -201,15 +201,12 @@ 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());
doNothing().when(runner).loadVorgaengeIntoRepository(any()); doNothing().when(runner).loadVorgaengeIntoRepository(any());
} }
...@@ -220,22 +217,53 @@ class AggregationManagerRunnerTest { ...@@ -220,22 +217,53 @@ 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, formIdentifier); runner.runWithTransformation(transformation, null);
verify(runner).extractBatchesOfDeletedVorgaengeFromDataSource(argThat(hasTransformation)); verify(runner).extractBatchesOfDeletedVorgaengeFromDataSource(argThat(hasTransformation));
} }
@Test @Test
void shouldLoadVorgaengeIntoRepository() { void shouldLoadVorgaengeIntoRepository() {
runner.runWithTransformation(transformation, formIdentifier); runner.runWithTransformation(transformation, null);
verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture()); verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture());
assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge, batchOfDeletedVorgaenge); assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge, batchOfDeletedVorgaenge);
} }
} }
@Nested
class TestOnFormIdentifierIsNotNull {
@Test
void shouldNotExtractBatchesOfDeletedVorgaengeFromDataSource() {
runner.runWithTransformation(transformation, formIdentifier);
verify(runner, never()).extractBatchesOfDeletedVorgaengeFromDataSource(any());
}
@Test
void shouldLoadVorgaengeIntoRepository() {
runner.runWithTransformation(transformation, formIdentifier);
verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture());
assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge);
}
}
}
@Nested @Nested
class TestLoadVorgaengeIntoRepository { class TestLoadVorgaengeIntoRepository {
...@@ -253,6 +281,13 @@ class AggregationManagerRunnerTest { ...@@ -253,6 +281,13 @@ class AggregationManagerRunnerTest {
doNothing().when(runner).loadDocumentEntriesIntoRepository(any()); doNothing().when(runner).loadDocumentEntriesIntoRepository(any());
} }
@Test
void shouldDropCollection() {
loadVorgaengeIntoRepository();
verify(repository).deleteAll();
}
@Test @Test
void shouldTransform() { void shouldTransform() {
loadVorgaengeIntoRepository(); loadVorgaengeIntoRepository();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment