From b77e55e47fecc8df4c03cac28cf9954fe389aacc Mon Sep 17 00:00:00 2001 From: Felix Reichenbach <felix.reichenbach@mgm-tp.com> Date: Mon, 10 Mar 2025 10:56:17 +0100 Subject: [PATCH 1/6] OZG-7572 OZG-7901 add forwarded links to root resource --- .../de/ozgcloud/alfa/RootViewLinkHandler.java | 2 +- .../de/ozgcloud/alfa/LinkTestFactory.java | 19 ++++ .../alfa/RootViewLinkHandlerTest.java | 87 ++++++++++++------- 3 files changed, 75 insertions(+), 33 deletions(-) create mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/LinkTestFactory.java diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java index a8af53edb7..6a832f1fd2 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java @@ -72,7 +72,7 @@ class RootViewLinkHandler { private final SystemStatusService systemStatusService; private final List<VorgangStatus> statusList = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, - VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN); + VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET); public void addViewLinks(EntityModel<Root> model, Optional<UserId> userId) { model.add(buildGetAllVorgaengeLink()); diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/LinkTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/LinkTestFactory.java new file mode 100644 index 0000000000..011dd9db09 --- /dev/null +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/LinkTestFactory.java @@ -0,0 +1,19 @@ +package de.ozgcloud.alfa; + +import java.util.List; +import java.util.stream.Stream; + +import org.springframework.hateoas.Link; + +import com.thedeanda.lorem.LoremIpsum; + +public class LinkTestFactory { + + public static Link create() { + return Link.of(LoremIpsum.getInstance().getUrl()); + } + + public static List<Link> createList(int size) { + return Stream.iterate(0, i -> i + 1).limit(size).map(i -> create()).toList(); + } +} diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java index 6f0e2b6558..0b8fd47ccb 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java @@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; +import java.util.List; import java.util.Optional; import org.junit.jupiter.api.BeforeEach; @@ -36,6 +37,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; import org.junit.jupiter.params.provider.EnumSource.Mode; +import org.mockito.AdditionalAnswers; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; @@ -433,29 +435,66 @@ class RootViewLinkHandlerTest { class TestBuildVorgangStatusLinks { private final UserId userId = UserProfileTestFactory.ID; + private final List<VorgangStatus> statuses = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, + VorgangStatus.BESCHIEDEN, + VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET); @Test void shouldCallBuildVorgangListByPageLink() { viewLinkHandler.buildVorgangStatusLinks(RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE, UserProfileTestFactory.ID); - verify(viewLinkHandler, times(7)).buildGetAllVorgaengeByAssignedToAndStatus( - any(VorgangStatus.class), - eq(RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE), - eq(userId)); + statuses.forEach(status -> verify(viewLinkHandler).buildGetAllVorgaengeByAssignedToAndStatus(status, + RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE, userId)); } @Test - void shouldCallFormatLinkRelTemplate() { - viewLinkHandler.buildVorgangStatusLinks(RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE, UserProfileTestFactory.ID); + void shouldReturnLinks() { + var expectedLinks = LinkTestFactory.createList(8); + doAnswer(AdditionalAnswers.returnsElementsOf(expectedLinks)).when(viewLinkHandler).buildGetAllVorgaengeByAssignedToAndStatus(any(), + any(), any()); + + var links = viewLinkHandler.buildVorgangStatusLinks(RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE, UserProfileTestFactory.ID); - verify(viewLinkHandler, times(7)).formatLinkRelTemplate(eq(RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE), any(VorgangStatus.class)); + assertThat(links).containsExactlyInAnyOrderElementsOf(expectedLinks); } + } - @Test - void shouldBuildLinks() { - var links = viewLinkHandler.buildVorgangStatusLinks(RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE, UserProfileTestFactory.ID); + @DisplayName("build get all vorgaenge by assignedTo and status") + @Nested + class TestBuildGetAllVorgaengeByAssignedToAndStatus { + + @ParameterizedTest + @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", + "ZU_LOESCHEN", "WEITERGELEITET" }) + void shouldCallFormatLinkRelTemplate(VorgangStatus status) { + viewLinkHandler.buildGetAllVorgaengeByAssignedToAndStatus(status, RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE, + UserProfileTestFactory.ID); + + verify(viewLinkHandler).formatLinkRelTemplate(RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE, status); + } + + @ParameterizedTest + @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", + "ZU_LOESCHEN", "WEITERGELEITET" }) + void shouldAddByAssignedToAndStatus(VorgangStatus status) { + var link = viewLinkHandler.buildGetAllVorgaengeByAssignedToAndStatus(status, RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE, + UserProfileTestFactory.ID); + + assertThat(link.getHref()).isEqualTo( + "/api/vorgangs?page=0&limit=100&assignedTo=" + UserProfileTestFactory.ID.toString() + "&status=" + status.toString()); + } + + @ParameterizedTest + @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", + "ZU_LOESCHEN", "WEITERGELEITET" }) + void shouldHaveFormattedRelation(VorgangStatus status) { + var expectedRelation = LoremIpsum.getInstance().getWords(1); + doReturn(expectedRelation).when(viewLinkHandler).formatLinkRelTemplate(any(), any()); + + var link = viewLinkHandler.buildGetAllVorgaengeByAssignedToAndStatus(status, RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE, + UserProfileTestFactory.ID); - assertThat(links).hasSize(7); + assertThat(link.getRel()).isEqualTo(LinkRelation.of(expectedRelation)); } } @@ -465,7 +504,7 @@ class RootViewLinkHandlerTest { @ParameterizedTest @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", - "ZU_LOESCHEN" }) + "ZU_LOESCHEN", "WEITERGELEITET" }) void shouldCallFormatLinkRelTemplateWithAllVorgaengeTemplate(VorgangStatus status) { var linkRel = viewLinkHandler.formatLinkRelTemplate(RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE, status); @@ -474,7 +513,7 @@ class RootViewLinkHandlerTest { @ParameterizedTest @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", - "ZU_LOESCHEN" }) + "ZU_LOESCHEN", "WEITERGELEITET" }) void shouldCallFormatLinkRelTemplateWithMyVorgaengeTemplate(VorgangStatus status) { var linkRel = viewLinkHandler.formatLinkRelTemplate(RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE, status); @@ -483,7 +522,7 @@ class RootViewLinkHandlerTest { @ParameterizedTest @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", - "ZU_LOESCHEN" }) + "ZU_LOESCHEN", "WEITERGELEITET" }) void shouldCallFormatLinkRelTemplateWithUnassignedVorgaengeTemplate(VorgangStatus status) { var linkRel = viewLinkHandler.formatLinkRelTemplate(RootViewLinkHandler.VORGAENGE_UNASSIGNED_REL_TEMPLATE, status); @@ -497,7 +536,7 @@ class RootViewLinkHandlerTest { @ParameterizedTest @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", - "ZU_LOESCHEN" }) + "ZU_LOESCHEN", "WEITERGELEITET" }) void shouldAddByStatus(VorgangStatus status) { var link = viewLinkHandler.buildGetAllVorgaengeByStatus(status, RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE); @@ -506,29 +545,13 @@ class RootViewLinkHandlerTest { } - @DisplayName("build get all vorgaenge by assignedTo and status") - @Nested - class TestBuildGetAllVorgaengeByAssignedToAndStatus { - - @ParameterizedTest - @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", - "ZU_LOESCHEN" }) - void shouldAddByAssignedToAndStatus(VorgangStatus status) { - var link = viewLinkHandler.buildGetAllVorgaengeByAssignedToAndStatus(status, RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE, - UserProfileTestFactory.ID); - - assertThat(link.getHref()).isEqualTo( - "/api/vorgangs?page=0&limit=100&assignedTo=" + UserProfileTestFactory.ID.toString() + "&status=" + status.toString()); - } - } - @DisplayName("build get all unassigned vorgaenge by status") @Nested class TestBuildGetAllUnassignedVorgaengeByStatus { @ParameterizedTest @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", - "ZU_LOESCHEN" }) + "ZU_LOESCHEN", "WEITERGELEITET" }) void shouldAddByUnassignedToAndStatus(VorgangStatus status) { var link = viewLinkHandler.buildGetAllVorgaengeByAssignedToAndStatus(status, RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE, UserId.empty()); -- GitLab From 2ce6e43de57047e459b4a7d86401c3b7a5f8954a Mon Sep 17 00:00:00 2001 From: Felix Reichenbach <felix.reichenbach@mgm-tp.com> Date: Mon, 10 Mar 2025 11:20:41 +0100 Subject: [PATCH 2/6] OZG-7501 OZG-7902 add count of vorgangs in status weitergeleitet --- .../de/ozgcloud/alfa/statistic/ByStatus.java | 1 + .../alfa/statistic/StatisticService.java | 19 +++++++++--------- .../alfa/statistic/StatisticServiceTest.java | 20 ++++++++++++++++--- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/ByStatus.java b/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/ByStatus.java index 6f0a4929e0..852c8cfc85 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/ByStatus.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/ByStatus.java @@ -39,4 +39,5 @@ class ByStatus { private int abgeschlossen; private int verworfen; private int zuLoeschen; + private int weitergeleitet; } \ No newline at end of file diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java index 9e8cbd8c31..26cbc36abf 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java @@ -28,26 +28,26 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import de.ozgcloud.alfa.common.user.CurrentUserService; import de.ozgcloud.alfa.common.user.UserRole; import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus; +import lombok.RequiredArgsConstructor; @Service +@RequiredArgsConstructor class StatisticService { - static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_VERWALTUNG_USER = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, - VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN); - static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_POSTSTELLE_USER = Collections.emptyList(); - static final List<VorgangStatus> COUNT_BY_VORGANG_EINHEITLICHER_ANSPRECHPARTNER = Collections.emptyList(); + private static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_VERWALTUNG_USER = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, + VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, + VorgangStatus.WEITERGELEITET); + private static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_POSTSTELLE_USER = Collections.emptyList(); + private static final List<VorgangStatus> COUNT_BY_VORGANG_EINHEITLICHER_ANSPRECHPARTNER = Collections.emptyList(); - @Autowired - private StatisticRemoteService remoteService; + private final StatisticRemoteService remoteService; - @Autowired - private CurrentUserService currentUserService; + private final CurrentUserService currentUserService; public Statistic getVorgaengeStatistic() { var response = remoteService.getVorgaengeStatistics(getCountByVorgangStatusList()); @@ -80,6 +80,7 @@ class StatisticService { .verworfen(getIntResult(response, remoteService.buildCountByStatusResultName(VorgangStatus.VERWORFEN))) .inBearbeitung(getIntResult(response, remoteService.buildCountByStatusResultName(VorgangStatus.IN_BEARBEITUNG))) .zuLoeschen(getIntResult(response, remoteService.buildCountByStatusResultName(VorgangStatus.ZU_LOESCHEN))) + .weitergeleitet(getIntResult(response, remoteService.buildCountByStatusResultName(VorgangStatus.WEITERGELEITET))) .build()) .build(); } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticServiceTest.java index 61204730a5..180fe52812 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticServiceTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticServiceTest.java @@ -24,12 +24,12 @@ package de.ozgcloud.alfa.statistic; import static de.ozgcloud.alfa.statistic.StatisticRemoteService.*; -import static de.ozgcloud.alfa.statistic.StatisticService.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.util.Collections; +import java.util.List; import java.util.Map; import org.junit.jupiter.api.BeforeEach; @@ -155,6 +155,15 @@ class StatisticServiceTest { assertThat(statistic.getByStatus().getZuLoeschen()).isEqualTo(StatisticResultTestFactory.INT_VALUE); } + @Test + void shouldContainCountByStatusWeitergeleitet() { + var statistic = service.buildGetVorgaengeStatisticResult(Map.of( + String.format(COUNT_VORGANG_STATUS_RESULT_NAME_FORMAT, VorgangStatus.WEITERGELEITET.name()), + StatisticResultTestFactory.create())); + + assertThat(statistic.getByStatus().getWeitergeleitet()).isEqualTo(StatisticResultTestFactory.INT_VALUE); + } + @Test void shouldContainDefaultCountByStatus() { var statistic = service.buildGetVorgaengeStatisticResult(Map.of()); @@ -174,6 +183,10 @@ class StatisticServiceTest { @Nested class TestGetCountByVorgangStatusList { + private static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_VERWALTUNG_USER = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, + VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, + VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET); + @Test void shouldGetForVerwalungUser() { when(currentUserService.hasRole(UserRole.VERWALTUNG_USER)).thenReturn(true); @@ -190,7 +203,7 @@ class StatisticServiceTest { var result = service.getCountByVorgangStatusList(); - assertThat(result).containsAll(COUNT_BY_VORGANG_STATUS_POSTSTELLE_USER); + assertThat(result).containsAll(Collections.emptyList()); } @Test @@ -201,7 +214,7 @@ class StatisticServiceTest { var result = service.getCountByVorgangStatusList(); - assertThat(result).containsAll(COUNT_BY_VORGANG_EINHEITLICHER_ANSPRECHPARTNER); + assertThat(result).containsAll(Collections.emptyList()); } @Test @@ -222,6 +235,7 @@ class StatisticServiceTest { private final Statistic statistic = StatisticTestFactory.create(); private final Map<String, StatisticResult> getVorgangStatisticsResponse = Map.of(COUNT_WIEDERVORLAGE_NEXT_FRIST_RESULT_NAME, StatisticResultTestFactory.create()); + private static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_VERWALTUNG_USER = List.of(VorgangStatus.NEU); @BeforeEach void beforeEach() { -- GitLab From 40df4b8d4e1b6a2d6a426d28123d5eb0c94e6e32 Mon Sep 17 00:00:00 2001 From: Felix Reichenbach <felix.reichenbach@mgm-tp.com> Date: Mon, 10 Mar 2025 15:36:34 +0100 Subject: [PATCH 3/6] OZG-7572 OZG-7901 only add weitergeleitet status link if forward feature is enabled and add missing unit tests --- .../de/ozgcloud/alfa/RootViewLinkHandler.java | 18 ++- .../alfa/RootViewLinkHandlerTest.java | 132 +++++++++++++++++- 2 files changed, 139 insertions(+), 11 deletions(-) diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java index 6a832f1fd2..99d9c9dffd 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java @@ -27,12 +27,14 @@ import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import java.util.List; import java.util.Optional; +import java.util.stream.Stream; import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.Link; import org.springframework.hateoas.server.LinkBuilder; import org.springframework.stereotype.Component; +import de.ozgcloud.alfa.common.FeatureToggleProperties; import de.ozgcloud.alfa.common.user.CurrentUserService; import de.ozgcloud.alfa.common.user.UserId; import de.ozgcloud.alfa.common.user.UserRole; @@ -70,9 +72,7 @@ class RootViewLinkHandler { private final CurrentUserService currentUserService; private final SystemStatusService systemStatusService; - - private final List<VorgangStatus> statusList = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, - VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET); + private final FeatureToggleProperties featureToggleProperties; public void addViewLinks(EntityModel<Root> model, Optional<UserId> userId) { model.add(buildGetAllVorgaengeLink()); @@ -158,7 +158,7 @@ class RootViewLinkHandler { } void addVorgangStatusLinks(EntityModel<Root> model, String linkRelTemplate) { - statusList.forEach(status -> model.add(buildGetAllVorgaengeByStatus(status, linkRelTemplate))); + getVorgangStatusStream().forEach(status -> model.add(buildGetAllVorgaengeByStatus(status, linkRelTemplate))); } Link buildGetAllVorgaengeByStatus(VorgangStatus status, String linkRelTemplate) { @@ -175,7 +175,14 @@ class RootViewLinkHandler { } List<Link> buildVorgangStatusLinks(String linkRelTemplate, UserId userId) { - return statusList.stream().map(status -> buildGetAllVorgaengeByAssignedToAndStatus(status, linkRelTemplate, userId)).toList(); + return getVorgangStatusStream().map(status -> buildGetAllVorgaengeByAssignedToAndStatus(status, linkRelTemplate, userId)).toList(); + } + + Stream<VorgangStatus> getVorgangStatusStream() { + return Stream + .of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, + VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET) + .filter(status -> status != VorgangStatus.WEITERGELEITET || featureToggleProperties.isForwardByOzgCloudEnabled()); } Link buildGetAllVorgaengeByAssignedToAndStatus(VorgangStatus status, String linkRelTemplate, UserId userId) { @@ -214,4 +221,5 @@ class RootViewLinkHandler { .getAllByAssignedToAndUngeleseneNachrichten(0, PAGE_SIZE, userId, VorgangController.PARAM_NACHRICHTEN_UNGELESENE)) .withRel(linkRel); } + } \ No newline at end of file diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java index 0b8fd47ccb..6a1550ae25 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java @@ -47,6 +47,7 @@ import org.springframework.hateoas.LinkRelation; import com.thedeanda.lorem.LoremIpsum; +import de.ozgcloud.alfa.common.FeatureToggleProperties; import de.ozgcloud.alfa.common.user.CurrentUserService; import de.ozgcloud.alfa.common.user.UserId; import de.ozgcloud.alfa.common.user.UserProfileTestFactory; @@ -63,6 +64,8 @@ class RootViewLinkHandlerTest { private CurrentUserService currentUserService; @Mock private SystemStatusService systemStatusService; + @Mock + private FeatureToggleProperties featureToggleProperties; @DisplayName("Add view links") @Nested @@ -213,7 +216,7 @@ class RootViewLinkHandlerTest { } @Test - void shouldCallAddVorgangStatusLinks() { + void shouldCallAddAllVorgangStatusLinks() { viewLinkHandler.addViewLinksForVerwaltungUser(model, Optional.of(UserProfileTestFactory.ID)); verify(viewLinkHandler).addAllVorgangStatusLinks(model); @@ -435,9 +438,19 @@ class RootViewLinkHandlerTest { class TestBuildVorgangStatusLinks { private final UserId userId = UserProfileTestFactory.ID; - private final List<VorgangStatus> statuses = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, - VorgangStatus.BESCHIEDEN, - VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET); + private final List<VorgangStatus> statuses = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN); + + @BeforeEach + void mock() { + doReturn(statuses.stream()).when(viewLinkHandler).getVorgangStatusStream(); + } + + @Test + void shouldCallGetVorgangStatusStream() { + viewLinkHandler.buildVorgangStatusLinks(RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE, UserProfileTestFactory.ID); + + verify(viewLinkHandler).getVorgangStatusStream(); + } @Test void shouldCallBuildVorgangListByPageLink() { @@ -449,7 +462,7 @@ class RootViewLinkHandlerTest { @Test void shouldReturnLinks() { - var expectedLinks = LinkTestFactory.createList(8); + var expectedLinks = LinkTestFactory.createList(statuses.size()); doAnswer(AdditionalAnswers.returnsElementsOf(expectedLinks)).when(viewLinkHandler).buildGetAllVorgaengeByAssignedToAndStatus(any(), any(), any()); @@ -532,7 +545,7 @@ class RootViewLinkHandlerTest { @DisplayName("build get all vorgaenge by status") @Nested - class TestBuildGetAllByStatus { + class TestBuildGetAllVorgaengeByStatus { @ParameterizedTest @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", @@ -543,6 +556,27 @@ class RootViewLinkHandlerTest { assertThat(link.getHref()).isEqualTo("/api/vorgangs?page=0&limit=100&status=" + status.toString()); } + @ParameterizedTest + @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", + "ZU_LOESCHEN", "WEITERGELEITET" }) + void shouldCallFormatLinkRelTemplate(VorgangStatus status) { + viewLinkHandler.buildGetAllVorgaengeByStatus(status, RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE); + + verify(viewLinkHandler).formatLinkRelTemplate(RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE, status); + } + + @ParameterizedTest + @EnumSource(mode = Mode.INCLUDE, names = { "NEU", "ANGENOMMEN", "IN_BEARBEITUNG", "BESCHIEDEN", "ABGESCHLOSSEN", "VERWORFEN", + "ZU_LOESCHEN", "WEITERGELEITET" }) + void shouldHaveFormattedRelation(VorgangStatus status) { + var expectedRelation = LoremIpsum.getInstance().getWords(1); + doReturn(expectedRelation).when(viewLinkHandler).formatLinkRelTemplate(any(), any()); + + var link = viewLinkHandler.buildGetAllVorgaengeByStatus(status, RootViewLinkHandler.VORGAENGE_MY_REL_TEMPLATE); + + assertThat(link.getRel()).isEqualTo(LinkRelation.of(expectedRelation)); + } + } @DisplayName("build get all unassigned vorgaenge by status") @@ -729,4 +763,90 @@ class RootViewLinkHandlerTest { } } + + @Nested + class TestAddVorgangStatusLinks { + + private final EntityModel<Root> model = EntityModel.of(RootTestFactory.create()); + private final List<VorgangStatus> vorgangStatuses = List.of(VorgangStatus.NEU, VorgangStatus.BESCHIEDEN); + private final List<Link> links = LinkTestFactory.createList(vorgangStatuses.size()); + + @BeforeEach + void mock() { + doReturn(vorgangStatuses.stream()).when(viewLinkHandler).getVorgangStatusStream(); + doAnswer(AdditionalAnswers.returnsElementsOf(links)).when(viewLinkHandler).buildGetAllVorgaengeByStatus(any(), any()); + } + + @Test + void shouldCallGetVorgangStatusStream() { + viewLinkHandler.addVorgangStatusLinks(model, RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE); + + verify(viewLinkHandler).getVorgangStatusStream(); + } + + @Test + void shouldCallBuildGetAllVorgaengeByStatus() { + viewLinkHandler.addVorgangStatusLinks(model, RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE); + + vorgangStatuses + .forEach(status -> verify(viewLinkHandler).buildGetAllVorgaengeByStatus(status, RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE)); + } + + @Test + void shouldAddLinksToModel() { + viewLinkHandler.addVorgangStatusLinks(model, RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE); + + assertThat(model.getLinks()).containsExactlyInAnyOrderElementsOf(links); + } + } + + @Nested + class TestGetVorgangStatusStream { + + @Test + void shouldCallFeatureToggleProperties() { + viewLinkHandler.getVorgangStatusStream(); + + verify(featureToggleProperties).isForwardByOzgCloudEnabled(); + } + + @Nested + class TestOnIsForwardByOzgCloudEnabled { + + @BeforeEach + void mock() { + when(featureToggleProperties.isForwardByOzgCloudEnabled()).thenReturn(true); + } + + @Test + void shouldReturnStream() { + var expectedStatuses = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, + VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, + VorgangStatus.WEITERGELEITET); + + var stream = viewLinkHandler.getVorgangStatusStream(); + + assertThat(stream).containsExactlyInAnyOrderElementsOf(expectedStatuses); + } + } + + @Nested + class TestOnIsNotForwardByOzgCloudEnabled { + + @BeforeEach + void mock() { + when(featureToggleProperties.isForwardByOzgCloudEnabled()).thenReturn(false); + } + + @Test + void shouldReturnStream() { + var expectedStatuses = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, + VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN); + + var stream = viewLinkHandler.getVorgangStatusStream(); + + assertThat(stream).containsExactlyInAnyOrderElementsOf(expectedStatuses); + } + } + } } -- GitLab From c501390c9b30481c27172a4ee29dd45c4fff3f14 Mon Sep 17 00:00:00 2001 From: Felix Reichenbach <felix.reichenbach@mgm-tp.com> Date: Mon, 10 Mar 2025 15:41:07 +0100 Subject: [PATCH 4/6] OZG-7572 OZG-7901fix unit test --- .../src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java index 6a1550ae25..be76fab90e 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java @@ -805,7 +805,7 @@ class RootViewLinkHandlerTest { @Test void shouldCallFeatureToggleProperties() { - viewLinkHandler.getVorgangStatusStream(); + viewLinkHandler.getVorgangStatusStream().toList(); verify(featureToggleProperties).isForwardByOzgCloudEnabled(); } -- GitLab From b0dac5bc2ba67af7cf46b1e66b45d2387a2458ff Mon Sep 17 00:00:00 2001 From: Felix Reichenbach <felix.reichenbach@mgm-tp.com> Date: Mon, 10 Mar 2025 15:48:52 +0100 Subject: [PATCH 5/6] OZG-7572 OZG-7902 consider feature toggle in statisticService --- .../alfa/statistic/StatisticService.java | 17 +++-- .../alfa/statistic/StatisticServiceTest.java | 71 +++++++++++++++++-- 2 files changed, 78 insertions(+), 10 deletions(-) diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java index 26cbc36abf..9710c03464 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java @@ -27,9 +27,11 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Stream; import org.springframework.stereotype.Service; +import de.ozgcloud.alfa.common.FeatureToggleProperties; import de.ozgcloud.alfa.common.user.CurrentUserService; import de.ozgcloud.alfa.common.user.UserRole; import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus; @@ -39,15 +41,12 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor class StatisticService { - private static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_VERWALTUNG_USER = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, - VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, - VorgangStatus.WEITERGELEITET); private static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_POSTSTELLE_USER = Collections.emptyList(); private static final List<VorgangStatus> COUNT_BY_VORGANG_EINHEITLICHER_ANSPRECHPARTNER = Collections.emptyList(); private final StatisticRemoteService remoteService; - private final CurrentUserService currentUserService; + private final FeatureToggleProperties featureToggleProperties; public Statistic getVorgaengeStatistic() { var response = remoteService.getVorgaengeStatistics(getCountByVorgangStatusList()); @@ -56,7 +55,7 @@ class StatisticService { List<VorgangStatus> getCountByVorgangStatusList() { if (currentUserService.hasRole(UserRole.VERWALTUNG_USER)) { - return COUNT_BY_VORGANG_STATUS_VERWALTUNG_USER; + return getVerwaltungUserStatuses(); } if (currentUserService.hasRole(UserRole.VERWALTUNG_POSTSTELLE)) { return COUNT_BY_VORGANG_STATUS_POSTSTELLE_USER; @@ -92,4 +91,12 @@ class StatisticService { private boolean getBooleanResult(Map<String, StatisticResult> response, String resultName) { return Optional.ofNullable(response.get(resultName)).map(StatisticResult::getBoolValue).orElse(false); } + + List<VorgangStatus> getVerwaltungUserStatuses() { + return Stream + .of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, + VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET) + .filter(status -> status != VorgangStatus.WEITERGELEITET || featureToggleProperties.isForwardByOzgCloudEnabled()) + .toList(); + } } \ No newline at end of file diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticServiceTest.java index 180fe52812..58ef88e6ca 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticServiceTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/statistic/StatisticServiceTest.java @@ -39,6 +39,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; +import de.ozgcloud.alfa.common.FeatureToggleProperties; import de.ozgcloud.alfa.common.user.CurrentUserService; import de.ozgcloud.alfa.common.user.UserRole; import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus; @@ -52,6 +53,8 @@ class StatisticServiceTest { private StatisticRemoteService remoteService; @Mock private CurrentUserService currentUserService; + @Mock + private FeatureToggleProperties featureToggleProperties; @Nested class TestBuildGetVorgaengeStatisticResult { @@ -183,17 +186,25 @@ class StatisticServiceTest { @Nested class TestGetCountByVorgangStatusList { - private static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_VERWALTUNG_USER = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, - VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, - VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET); + private static final List<VorgangStatus> VORGANG_STATUS_VERWALTUNG_USER = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN); + + @Test + void shouldCallGetVerwaltungUserStatuses() { + when(currentUserService.hasRole(UserRole.VERWALTUNG_USER)).thenReturn(true); + + service.getCountByVorgangStatusList(); + + verify(service).getVerwaltungUserStatuses(); + } @Test - void shouldGetForVerwalungUser() { + void shouldReturnVerwaltungUserStatuses() { when(currentUserService.hasRole(UserRole.VERWALTUNG_USER)).thenReturn(true); + doReturn(VORGANG_STATUS_VERWALTUNG_USER).when(service).getVerwaltungUserStatuses(); var result = service.getCountByVorgangStatusList(); - assertThat(result).containsAll(COUNT_BY_VORGANG_STATUS_VERWALTUNG_USER); + assertThat(result).containsAll(VORGANG_STATUS_VERWALTUNG_USER); } @Test @@ -272,4 +283,54 @@ class StatisticServiceTest { assertThat(result).isEqualTo(statistic); } } + + @Nested + class TestGetVorgangStatuses { + + @Test + void shouldCallFeatureToggleProperties() { + service.getVerwaltungUserStatuses(); + + verify(featureToggleProperties).isForwardByOzgCloudEnabled(); + } + + @Nested + class TestOnIsForwardByOzgCloudEnabled { + + @BeforeEach + void mock() { + when(featureToggleProperties.isForwardByOzgCloudEnabled()).thenReturn(true); + } + + @Test + void shouldReturnStream() { + var expectedStatuses = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, + VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, + VorgangStatus.WEITERGELEITET); + + var stream = service.getVerwaltungUserStatuses(); + + assertThat(stream).containsExactlyInAnyOrderElementsOf(expectedStatuses); + } + } + + @Nested + class TestOnIsNotForwardByOzgCloudEnabled { + + @BeforeEach + void mock() { + when(featureToggleProperties.isForwardByOzgCloudEnabled()).thenReturn(false); + } + + @Test + void shouldReturnStream() { + var expectedStatuses = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, + VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN); + + var stream = service.getVerwaltungUserStatuses(); + + assertThat(stream).containsExactlyInAnyOrderElementsOf(expectedStatuses); + } + } + } } -- GitLab From 8e20f4e8bed7adc0605e00ec0f55587c429cb352 Mon Sep 17 00:00:00 2001 From: Felix Reichenbach <felix.reichenbach@mgm-tp.com> Date: Tue, 11 Mar 2025 13:53:24 +0100 Subject: [PATCH 6/6] OZG-7572 apply code review comments --- .../de/ozgcloud/alfa/RootViewLinkHandler.java | 14 ++++++------- .../alfa/statistic/StatisticService.java | 8 ++++---- .../alfa/RootViewLinkHandlerTest.java | 20 +++++++++---------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java index 99d9c9dffd..6b1eddb06b 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/RootViewLinkHandler.java @@ -70,6 +70,9 @@ class RootViewLinkHandler { static final int PAGE_SIZE = 100; + private static final List<VorgangStatus> STATUS_LIST = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, + VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET); + private final CurrentUserService currentUserService; private final SystemStatusService systemStatusService; private final FeatureToggleProperties featureToggleProperties; @@ -158,7 +161,7 @@ class RootViewLinkHandler { } void addVorgangStatusLinks(EntityModel<Root> model, String linkRelTemplate) { - getVorgangStatusStream().forEach(status -> model.add(buildGetAllVorgaengeByStatus(status, linkRelTemplate))); + getVorgangStatuses().forEach(status -> model.add(buildGetAllVorgaengeByStatus(status, linkRelTemplate))); } Link buildGetAllVorgaengeByStatus(VorgangStatus status, String linkRelTemplate) { @@ -175,14 +178,11 @@ class RootViewLinkHandler { } List<Link> buildVorgangStatusLinks(String linkRelTemplate, UserId userId) { - return getVorgangStatusStream().map(status -> buildGetAllVorgaengeByAssignedToAndStatus(status, linkRelTemplate, userId)).toList(); + return getVorgangStatuses().map(status -> buildGetAllVorgaengeByAssignedToAndStatus(status, linkRelTemplate, userId)).toList(); } - Stream<VorgangStatus> getVorgangStatusStream() { - return Stream - .of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, - VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET) - .filter(status -> status != VorgangStatus.WEITERGELEITET || featureToggleProperties.isForwardByOzgCloudEnabled()); + Stream<VorgangStatus> getVorgangStatuses() { + return STATUS_LIST.stream().filter(status -> status != VorgangStatus.WEITERGELEITET || featureToggleProperties.isForwardByOzgCloudEnabled()); } Link buildGetAllVorgaengeByAssignedToAndStatus(VorgangStatus status, String linkRelTemplate, UserId userId) { diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java index 9710c03464..57b9c2e7c5 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/statistic/StatisticService.java @@ -27,7 +27,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.stream.Stream; import org.springframework.stereotype.Service; @@ -41,6 +40,9 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor class StatisticService { + private static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_VERWALTUNG_USER = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, + VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, + VorgangStatus.WEITERGELEITET); private static final List<VorgangStatus> COUNT_BY_VORGANG_STATUS_POSTSTELLE_USER = Collections.emptyList(); private static final List<VorgangStatus> COUNT_BY_VORGANG_EINHEITLICHER_ANSPRECHPARTNER = Collections.emptyList(); @@ -93,9 +95,7 @@ class StatisticService { } List<VorgangStatus> getVerwaltungUserStatuses() { - return Stream - .of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, - VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET) + return COUNT_BY_VORGANG_STATUS_VERWALTUNG_USER.stream() .filter(status -> status != VorgangStatus.WEITERGELEITET || featureToggleProperties.isForwardByOzgCloudEnabled()) .toList(); } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java index be76fab90e..02d0843e8e 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/RootViewLinkHandlerTest.java @@ -442,14 +442,14 @@ class RootViewLinkHandlerTest { @BeforeEach void mock() { - doReturn(statuses.stream()).when(viewLinkHandler).getVorgangStatusStream(); + doReturn(statuses.stream()).when(viewLinkHandler).getVorgangStatuses(); } @Test - void shouldCallGetVorgangStatusStream() { + void shouldCallGetVorgangStatuses() { viewLinkHandler.buildVorgangStatusLinks(RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE, UserProfileTestFactory.ID); - verify(viewLinkHandler).getVorgangStatusStream(); + verify(viewLinkHandler).getVorgangStatuses(); } @Test @@ -773,15 +773,15 @@ class RootViewLinkHandlerTest { @BeforeEach void mock() { - doReturn(vorgangStatuses.stream()).when(viewLinkHandler).getVorgangStatusStream(); + doReturn(vorgangStatuses.stream()).when(viewLinkHandler).getVorgangStatuses(); doAnswer(AdditionalAnswers.returnsElementsOf(links)).when(viewLinkHandler).buildGetAllVorgaengeByStatus(any(), any()); } @Test - void shouldCallGetVorgangStatusStream() { + void shouldCallGetVorgangStatuses() { viewLinkHandler.addVorgangStatusLinks(model, RootViewLinkHandler.VORGAENGE_ALL_REL_TEMPLATE); - verify(viewLinkHandler).getVorgangStatusStream(); + verify(viewLinkHandler).getVorgangStatuses(); } @Test @@ -801,11 +801,11 @@ class RootViewLinkHandlerTest { } @Nested - class TestGetVorgangStatusStream { + class TestGetVorgangStatuses { @Test void shouldCallFeatureToggleProperties() { - viewLinkHandler.getVorgangStatusStream().toList(); + viewLinkHandler.getVorgangStatuses().toList(); verify(featureToggleProperties).isForwardByOzgCloudEnabled(); } @@ -824,7 +824,7 @@ class RootViewLinkHandlerTest { VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN, VorgangStatus.WEITERGELEITET); - var stream = viewLinkHandler.getVorgangStatusStream(); + var stream = viewLinkHandler.getVorgangStatuses(); assertThat(stream).containsExactlyInAnyOrderElementsOf(expectedStatuses); } @@ -843,7 +843,7 @@ class RootViewLinkHandlerTest { var expectedStatuses = List.of(VorgangStatus.NEU, VorgangStatus.ANGENOMMEN, VorgangStatus.IN_BEARBEITUNG, VorgangStatus.BESCHIEDEN, VorgangStatus.ABGESCHLOSSEN, VorgangStatus.VERWORFEN, VorgangStatus.ZU_LOESCHEN); - var stream = viewLinkHandler.getVorgangStatusStream(); + var stream = viewLinkHandler.getVorgangStatuses(); assertThat(stream).containsExactlyInAnyOrderElementsOf(expectedStatuses); } -- GitLab