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

OZG-6748 Cleanup VorgangServiceTest

parent 3cf1c33a
No related branches found
No related tags found
No related merge requests found
......@@ -41,11 +41,13 @@ public class VorgangService {
private final VorgangRemoteService remoteService;
public String createVorgang(FormData formData) {
var preparedFormData = preserveConsistency(formData);
var organisationseinheitIds = getOrganisationsEinheitIds(formData);
return organisationseinheitIds.isEmpty()
return createVorgangForOrganisationsEinheitIds(getOrganisationsEinheitIds(formData), preserveConsistency(formData));
}
String createVorgangForOrganisationsEinheitIds(List<String> organisationsEinheitIds, FormData preparedFormData) {
return organisationsEinheitIds.isEmpty()
? createVorgangOnMissingZustaendigeStelle(preparedFormData)
: createMultipleVorgangs(preparedFormData, organisationseinheitIds).getFirst();
: createMultipleVorgangs(preparedFormData, organisationsEinheitIds).getFirst();
}
String createVorgangOnMissingZustaendigeStelle(FormData formData) {
......
......@@ -53,87 +53,88 @@ class VorgangServiceTest {
@Spy
@InjectMocks
private VorgangService service;
@Mock
private VorgangRemoteService remoteService;
@DisplayName("Create vorgang")
@Nested
class TestCreateVorgangs {
private FormData formData;
private FormData preservedFormData;
private static final String ORGANISATIONSEINHEIT_ID_2 = "08150816";
class TestCreateVorgang {
private final FormData formData = FormDataTestFactory.create();
private final FormData preservedFormData = FormDataTestFactory.create();
private final List<String> organisationseinheitIds = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
@BeforeEach
void setup() {
formData = FormDataTestFactory.create();
preservedFormData = FormDataTestFactory.createBuilder()
.zustaendigeStelle(ZustaendigeStelleTestFactory.createBuilder()
.organisationseinheitenId(ORGANISATIONSEINHEIT_ID_2)
.build())
.build();
doReturn(preservedFormData).when(service).preserveConsistency(any());
void mockEingangMapper() {
doReturn(preservedFormData).when(service).preserveConsistency(formData);
doReturn(organisationseinheitIds).when(service).getOrganisationsEinheitIds(any());
doReturn(VORGANG_ID).when(service).createVorgangForOrganisationsEinheitIds(organisationseinheitIds, preservedFormData);
}
@DisplayName("should call preserve consistency")
@Test
void shouldCallPreserveConsistency() {
mockOrganisationseinheitId();
void shouldPreserverConsistency() {
callCreateVorgang();
verify(service).preserveConsistency(formData);
}
createVorgang();
@DisplayName("should call create vorgang for organisationseinheitIds")
@Test
void shouldCallCreateVorgangForOrganisationseinheitIds() {
callCreateVorgang();
verify(service).preserveConsistency(eq(formData));
verify(service).createVorgangForOrganisationsEinheitIds(organisationseinheitIds, preservedFormData);
}
@DisplayName("should call get organisationseinheit ids")
@Test
void shouldCallGetOrganisationseinheitIds() {
mockOrganisationseinheitId();
callCreateVorgang();
verify(service).getOrganisationsEinheitIds(formData);
}
createVorgang();
@DisplayName("should return vorgang id")
@Test
void shouldReturn() {
var vorgangId = callCreateVorgang();
verify(service).getOrganisationsEinheitIds(eq(formData));
assertThat(vorgangId).isEqualTo(VORGANG_ID);
}
private String callCreateVorgang() {
return service.createVorgang(formData);
}
}
@DisplayName("create vorgang for organisationsEinheitIds")
@Nested
class TestCreateVorgangForOrganisationsEinheitIds {
private final FormData preservedFormData = FormDataTestFactory.create();
private final List<String> organisationseinheitIds = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
@DisplayName("should call create multiple vorgangs")
@Test
void shouldCallCreateMultipleVorgangs() {
var organisationseinheitIds = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID, ORGANISATIONSEINHEIT_ID_2);
mockOrganisationseinheitIds(organisationseinheitIds);
service.createVorgangForOrganisationsEinheitIds(organisationseinheitIds, preservedFormData);
createVorgang();
verify(service).createMultipleVorgangs(eq(preservedFormData), eq(organisationseinheitIds));
verify(service).createMultipleVorgangs(preservedFormData, 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());
var vorgangId = service.createVorgangForOrganisationsEinheitIds(organisationseinheitIds, preservedFormData);
assertThat(vorgangId).isEqualTo(VORGANG_ID);
}
@DisplayName("should call create vorgang on missing zustaendige stelle if organisationseinheit is missing")
@Test
void shouldCallCreateVorgangOnMissingZustaendigeStelleIfOrganisationseinheitIsMissing() {
mockMissingOrganisationseinheitIds();
createVorgang();
service.createVorgangForOrganisationsEinheitIds(emptyList(), preservedFormData);
verify(service).createVorgangOnMissingZustaendigeStelle(eq(preservedFormData));
}
......@@ -141,21 +142,13 @@ class VorgangServiceTest {
@DisplayName("should return single vorgang id if organisationseinheit is missing")
@Test
void shouldReturnSingleVorgangIdIfOrganisationseinheitIsMissing() {
mockMissingOrganisationseinheitIds();
doReturn(VORGANG_ID).when(service).createVorgangOnMissingZustaendigeStelle(any());
var firstVorgangId = createVorgang();
var firstVorgangId = service.createVorgangForOrganisationsEinheitIds(emptyList(), preservedFormData);
assertThat(firstVorgangId).isEqualTo(VORGANG_ID);
}
private void mockMissingOrganisationseinheitIds() {
doReturn(emptyList()).when(service).getOrganisationsEinheitIds(any());
doReturn(VORGANG_ID).when(service).createVorgangOnMissingZustaendigeStelle(any());
}
private String createVorgang() {
return service.createVorgang(formData);
}
}
@DisplayName("create vorgang on missing zustaendige stelle")
......@@ -189,63 +182,43 @@ class VorgangServiceTest {
@DisplayName("create multiple vorgangs")
@Nested
class TestCreateMultipleVorgangs {
private static final String ORGANISATIONSEINHEIT_ID_2 = "08150816";
private static final String VORGANG_ID_2 = "vorgangId2";
private static final List<String> ORGANISATIONSEINHEIT_IDS = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID,
ORGANISATIONSEINHEIT_ID_2);
@Mock
private FormData formData;
@BeforeEach
void mock() {
when(remoteService.createVorgang(any(), any()))
.thenReturn(VORGANG_ID)
.thenReturn(VORGANG_ID_2);
when(remoteService.createVorgang(any(), any())).thenReturn(VORGANG_ID);
}
@DisplayName("should call create vorgang twice")
@Test
void shouldCallCreateVorgangTwice() {
service.createMultipleVorgangs(formData, ORGANISATIONSEINHEIT_IDS);
service.createMultipleVorgangs(formData, List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID));
verify(remoteService).createVorgang(formData, Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID));
verify(remoteService).createVorgang(formData, Optional.of(ORGANISATIONSEINHEIT_ID_2));
}
@DisplayName("should return")
@Test
void shouldReturn() {
var vorgangIds = service.createMultipleVorgangs(formData, ORGANISATIONSEINHEIT_IDS);
var vorgangIds = service.createMultipleVorgangs(formData, List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID));
assertThat(vorgangIds).containsExactlyInAnyOrder(VORGANG_ID, VORGANG_ID_2);
assertThat(vorgangIds).containsExactly(VORGANG_ID);
}
}
@DisplayName("get organisationseinheit ids")
@Nested
class TestGetOrganisationseinheitIds {
private static final String ORGANISATIONSEINHEIT_ID_2 = "08150816";
private FormData preservedFormData;
@BeforeEach
void mock() {
preservedFormData = FormDataTestFactory.createBuilder()
.zustaendigeStelle(ZustaendigeStelleTestFactory.createBuilder()
.organisationseinheitenId(ORGANISATIONSEINHEIT_ID_2)
.build())
.build();
}
private final FormData preservedFormData = FormDataTestFactory.create();
@DisplayName("should return")
@Test
void shouldReturn() {
var organisationseinheitIds = service.getOrganisationsEinheitIds(preservedFormData);
assertThat(organisationseinheitIds).containsExactly(
ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID,
ORGANISATIONSEINHEIT_ID_2
);
assertThat(organisationseinheitIds).containsExactly(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment