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

OZG-7572 OZG-7902 consider feature toggle in statisticService

parent c501390c
No related branches found
No related tags found
Loading
......@@ -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
......@@ -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);
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment