Skip to content
Snippets Groups Projects
Commit 28d96bd3 authored by Jan Zickermann's avatar Jan Zickermann
Browse files

OZG-6748 Cleanup VorgangService::createVorgang

parent 222774d5
Branches
Tags
No related merge requests found
...@@ -40,12 +40,12 @@ public class VorgangService { ...@@ -40,12 +40,12 @@ public class VorgangService {
private final VorgangRemoteService remoteService; private final VorgangRemoteService remoteService;
public List<String> createVorgangs(FormData formData) { public String createVorgang(FormData formData) {
var preparedFormData = preserveConsistency(formData); var preparedFormData = preserveConsistency(formData);
var organisationseinheitIds = getOrganisationsEinheitIds(formData); var organisationseinheitIds = getOrganisationsEinheitIds(formData);
return organisationseinheitIds.isEmpty() return organisationseinheitIds.isEmpty()
? List.of(createVorgangOnMissingZustaendigeStelle(preparedFormData)) ? createVorgangOnMissingZustaendigeStelle(preparedFormData)
: createMultipleVorgangs(preparedFormData, organisationseinheitIds); : createMultipleVorgangs(preparedFormData, organisationseinheitIds).getFirst();
} }
String createVorgangOnMissingZustaendigeStelle(FormData formData) { String createVorgangOnMissingZustaendigeStelle(FormData formData) {
......
...@@ -57,12 +57,11 @@ class VorgangServiceTest { ...@@ -57,12 +57,11 @@ class VorgangServiceTest {
@Mock @Mock
private VorgangRemoteService remoteService; private VorgangRemoteService remoteService;
private static final String VORGANG_ID_2 = "vorgangId2";
private static final String ORGANISATIONSEINHEIT_ID_2 = "08150816"; private static final String ORGANISATIONSEINHEIT_ID_2 = "08150816";
public static final List<String> ORGANISATIONSEINHEIT_IDS = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID, @DisplayName("Create vorgang")
ORGANISATIONSEINHEIT_ID_2); @Nested
class TestCreateVorgangs {
private FormData formData; private FormData formData;
private FormData preservedFormData; private FormData preservedFormData;
...@@ -74,41 +73,91 @@ class VorgangServiceTest { ...@@ -74,41 +73,91 @@ class VorgangServiceTest {
.organisationseinheitenId(ORGANISATIONSEINHEIT_ID_2) .organisationseinheitenId(ORGANISATIONSEINHEIT_ID_2)
.build()) .build())
.build(); .build();
doReturn(preservedFormData).when(service).preserveConsistency(any());
} }
@DisplayName("Create vorgangs") @DisplayName("should call preserve consistency")
@Nested @Test
class TestCreateVorgangs { void shouldCallPreserveConsistency() {
mockOrganisationseinheitId();
@BeforeEach createVorgang();
void mockEingangMapper() {
doReturn(preservedFormData).when(service).preserveConsistency(formData); verify(service).preserveConsistency(eq(formData));
}
@DisplayName("should call get organisationseinheit ids")
@Test
void shouldCallGetOrganisationseinheitIds() {
mockOrganisationseinheitId();
createVorgang();
verify(service).getOrganisationsEinheitIds(eq(formData));
} }
@DisplayName("should return multiple vorgang ids for each organisationseinheit") @DisplayName("should call create multiple vorgangs")
@Test @Test
void shouldReturnMultipleVorgangIdsForEachOrganisationseinheit() { void shouldCallCreateMultipleVorgangs() {
doReturn(ORGANISATIONSEINHEIT_IDS).when(service).getOrganisationsEinheitIds(formData); var organisationseinheitIds = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID, ORGANISATIONSEINHEIT_ID_2);
doReturn(List.of(VORGANG_ID, VORGANG_ID_2)).when(service).createMultipleVorgangs(preservedFormData, ORGANISATIONSEINHEIT_IDS); mockOrganisationseinheitIds(organisationseinheitIds);
var vorgangIds = createVorgangs(); createVorgang();
assertThat(vorgangIds).containsExactly(VORGANG_ID, VORGANG_ID_2); verify(service).createMultipleVorgangs(
eq(preservedFormData),
eq(organisationseinheitIds));
}
@DisplayName("should return first vorgang id with multiple organisationseinheits")
@Test
void shouldReturnFirstVorgangIdWithMultipleOrganisationseinheits() {
var organisationseinheitIds = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID, ORGANISATIONSEINHEIT_ID_2);
mockOrganisationseinheitIds(organisationseinheitIds);
var vorgangIds = createVorgang();
assertThat(vorgangIds).isEqualTo(VORGANG_ID);
}
private void mockOrganisationseinheitId() {
doReturn(List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)).when(service).getOrganisationsEinheitIds(any());
doReturn(List.of(VORGANG_ID)).when(service).createMultipleVorgangs(any(), any());
}
private void mockOrganisationseinheitIds(List<String> organisationseinheitIds) {
doReturn(organisationseinheitIds).when(service)
.getOrganisationsEinheitIds(any());
doReturn(List.of(VORGANG_ID, "otherId")).when(service).createMultipleVorgangs(any(), any());
}
@DisplayName("should call create vorgang on missing zustaendige stelle if organisationseinheit is missing")
@Test
void shouldCallCreateVorgangOnMissingZustaendigeStelleIfOrganisationseinheitIsMissing() {
mockMissingOrganisationseinheitIds();
createVorgang();
verify(service).createVorgangOnMissingZustaendigeStelle(eq(preservedFormData));
} }
@DisplayName("should return single vorgang id if organisationseinheit is missing") @DisplayName("should return single vorgang id if organisationseinheit is missing")
@Test @Test
void shouldReturnSingleVorgangIdIfOrganisationseinheitIsMissing() { void shouldReturnSingleVorgangIdIfOrganisationseinheitIsMissing() {
doReturn(emptyList()).when(service).getOrganisationsEinheitIds(formData); mockMissingOrganisationseinheitIds();
doReturn(VORGANG_ID).when(service).createVorgangOnMissingZustaendigeStelle(preservedFormData);
var firstVorgangId = createVorgang();
var vorgangIds = createVorgangs(); assertThat(firstVorgangId).isEqualTo(VORGANG_ID);
}
assertThat(vorgangIds).containsExactly(VORGANG_ID); private void mockMissingOrganisationseinheitIds() {
doReturn(emptyList()).when(service).getOrganisationsEinheitIds(any());
doReturn(VORGANG_ID).when(service).createVorgangOnMissingZustaendigeStelle(any());
} }
private List<String> createVorgangs() { private String createVorgang() {
return service.createVorgangs(formData); return service.createVorgang(formData);
} }
} }
...@@ -118,11 +167,22 @@ class VorgangServiceTest { ...@@ -118,11 +167,22 @@ class VorgangServiceTest {
@Mock @Mock
private FormData formData; private FormData formData;
@BeforeEach
void mock() {
when(remoteService.createVorgang(any(), any())).thenReturn(VORGANG_ID);
}
@DisplayName("should call create vorgang")
@Test
void shouldCallCreateVorgang() {
service.createVorgangOnMissingZustaendigeStelle(formData);
verify(remoteService).createVorgang(formData, Optional.empty());
}
@DisplayName("should return") @DisplayName("should return")
@Test @Test
void shouldReturn() { void shouldReturn() {
when(remoteService.createVorgang(formData, Optional.empty())).thenReturn(VORGANG_ID);
var vorgangId = service.createVorgangOnMissingZustaendigeStelle(formData); var vorgangId = service.createVorgangOnMissingZustaendigeStelle(formData);
assertThat(vorgangId).isEqualTo(VORGANG_ID); assertThat(vorgangId).isEqualTo(VORGANG_ID);
...@@ -132,24 +192,54 @@ class VorgangServiceTest { ...@@ -132,24 +192,54 @@ class VorgangServiceTest {
@DisplayName("create multiple vorgangs") @DisplayName("create multiple vorgangs")
@Nested @Nested
class TestCreateMultipleVorgangs { class TestCreateMultipleVorgangs {
private static final String VORGANG_ID_2 = "vorgangId2";
private static final List<String> ORGANISATIONSEINHEIT_IDS = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID,
ORGANISATIONSEINHEIT_ID_2);
@Mock @Mock
private FormData formData; private FormData formData;
@BeforeEach
void mock() {
when(remoteService.createVorgang(any(), any()))
.thenReturn(VORGANG_ID)
.thenReturn(VORGANG_ID_2);
}
@DisplayName("should call create vorgang twice")
@Test
void shouldCallCreateVorgangTwice() {
service.createMultipleVorgangs(formData, ORGANISATIONSEINHEIT_IDS);
verify(remoteService).createVorgang(formData, Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID));
verify(remoteService).createVorgang(formData, Optional.of(ORGANISATIONSEINHEIT_ID_2));
}
@DisplayName("should return") @DisplayName("should return")
@Test @Test
void shouldReturn() { void shouldReturn() {
when(remoteService.createVorgang(formData, Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID))).thenReturn(VORGANG_ID);
when(remoteService.createVorgang(formData, Optional.of(ORGANISATIONSEINHEIT_ID_2))).thenReturn(VORGANG_ID_2);
var vorgangIds = service.createMultipleVorgangs(formData, ORGANISATIONSEINHEIT_IDS); var vorgangIds = service.createMultipleVorgangs(formData, ORGANISATIONSEINHEIT_IDS);
assertThat(vorgangIds).containsExactly(VORGANG_ID, VORGANG_ID_2); assertThat(vorgangIds).containsExactlyInAnyOrder(VORGANG_ID, VORGANG_ID_2);
} }
} }
@DisplayName("get organisationseinheit ids") @DisplayName("get organisationseinheit ids")
@Nested @Nested
class TestGetOrganisationseinheitIds { class TestGetOrganisationseinheitIds {
private FormData preservedFormData;
@BeforeEach
void mock() {
preservedFormData = FormDataTestFactory.createBuilder()
.zustaendigeStelle(ZustaendigeStelleTestFactory.createBuilder()
.organisationseinheitenId(ORGANISATIONSEINHEIT_ID_2)
.build())
.build();
}
@DisplayName("should return") @DisplayName("should return")
@Test @Test
void shouldReturn() { void shouldReturn() {
......
...@@ -34,7 +34,6 @@ import de.ozgcloud.eingang.semantik.enginebased.EngineBasedSemantikAdapter; ...@@ -34,7 +34,6 @@ import de.ozgcloud.eingang.semantik.enginebased.EngineBasedSemantikAdapter;
import de.ozgcloud.eingang.semantik.formbased.FormBasedSemantikAdapter; import de.ozgcloud.eingang.semantik.formbased.FormBasedSemantikAdapter;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
@Log4j2 @Log4j2
@Service @Service
public class SemantikAdapter { public class SemantikAdapter {
...@@ -50,7 +49,7 @@ public class SemantikAdapter { ...@@ -50,7 +49,7 @@ public class SemantikAdapter {
formData = parseByEngineAdapter(formData); formData = parseByEngineAdapter(formData);
formData = parseByFormAdapter(formData); formData = parseByFormAdapter(formData);
return vorgangService.createVorgangs(formData).getFirst(); return vorgangService.createVorgang(formData);
} }
private FormData parseByEngineAdapter(FormData formData) { private FormData parseByEngineAdapter(FormData formData) {
......
...@@ -99,7 +99,7 @@ class SemantikAdapterTest { ...@@ -99,7 +99,7 @@ class SemantikAdapterTest {
doReturn(List.of(engineAdapter)).when(adapter).getResponsibleEngineAdapters(formData); doReturn(List.of(engineAdapter)).when(adapter).getResponsibleEngineAdapters(formData);
when(engineAdapter.parseFormData(any())).thenReturn(engineAdapterResponse); when(engineAdapter.parseFormData(any())).thenReturn(engineAdapterResponse);
when(formAdapter.parseFormData(any())).thenReturn(formAdapterResponse); when(formAdapter.parseFormData(any())).thenReturn(formAdapterResponse);
when(vorgangService.createVorgangs(formAdapterResponse)).thenReturn(List.of(VORGANG_ID, "otherId")); when(vorgangService.createVorgang(any())).thenReturn(VORGANG_ID);
} }
@Test @Test
...@@ -127,7 +127,7 @@ class SemantikAdapterTest { ...@@ -127,7 +127,7 @@ class SemantikAdapterTest {
void shouldCallVorgangRemoteService() { void shouldCallVorgangRemoteService() {
adapter.processFormData(formData); adapter.processFormData(formData);
verify(vorgangService).createVorgangs(formAdapterResponse); verify(vorgangService).createVorgang(formAdapterResponse);
} }
@DisplayName("should return first vorgang id") @DisplayName("should return first vorgang id")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment