diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessor.java index 9bd7f2d24ed1bd6c0ad979f2611502186a137a09..60a3c43ef0338e8e7908cc592ddcb3c2fdb7f257 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessor.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessor.java @@ -39,15 +39,15 @@ class ForwardingVorgangWithEingangProcessor implements RepresentationModelProces } boolean isForwardableByOzgCloud(VorgangWithEingang vorgang) { - return featureToggleProperties.isForwardByOzgCloudEnabled() && isStatusNeu(vorgang) && isNeitherPoststelleNorEinheitlicherAnsprechpartner(); + return featureToggleProperties.isForwardByOzgCloudEnabled() && isStatusNeu(vorgang) && isVerwaltungUser(); } private boolean isStatusNeu(VorgangWithEingang vorgang) { return vorgang.getStatus() == VorgangStatus.NEU; } - boolean isNeitherPoststelleNorEinheitlicherAnsprechpartner() { - return !(userService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER) || userService.hasRole(UserRole.VERWALTUNG_POSTSTELLE)); + private boolean isVerwaltungUser() { + return userService.hasRole(UserRole.VERWALTUNG_USER); } private Link buildForwardByOzgCloudLink(VorgangWithEingang vorgang) { diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessorTest.java index b9aea1fda63be6d69166edf77e387e0cfe1ba005..15be150ccf28cc8cf1248f727ade96dcbc29e9e5 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessorTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessorTest.java @@ -185,12 +185,12 @@ class ForwardingVorgangWithEingangProcessorTest { @ParameterizedTest @EnumSource - void shouldNotCallIsNeitherPoststelleNorEinheitlicherAnsprechpartner(VorgangStatus status) { + void shouldNotCallUserService(VorgangStatus status) { var vorgang = VorgangWithEingangTestFactory.createBuilder().status(status).build(); processor.isForwardableByOzgCloud(vorgang); - verify(processor, never()).isNeitherPoststelleNorEinheitlicherAnsprechpartner(); + verify(userService, never()).hasRole(any()); } } @@ -216,12 +216,12 @@ class ForwardingVorgangWithEingangProcessorTest { @ParameterizedTest @EnumSource(mode = Mode.EXCLUDE, names = { "NEU" }) - void shouldNotCallisNeitherPoststelleNorEinheitlicherAnsprechpartner(VorgangStatus status) { + void shouldNotCallUserService(VorgangStatus status) { var vorgang = VorgangWithEingangTestFactory.createBuilder().status(status).build(); processor.isForwardableByOzgCloud(vorgang); - verify(processor, never()).isNeitherPoststelleNorEinheitlicherAnsprechpartner(); + verify(userService, never()).hasRole(any()); } } @@ -231,104 +231,20 @@ class ForwardingVorgangWithEingangProcessorTest { private final VorgangWithEingang newVorgang = VorgangWithEingangTestFactory.createBuilder().status(VorgangStatus.NEU).build(); @Test - void shouldCallisNeitherPoststelleNorEinheitlicherAnsprechpartner() { + void shouldCheckUserRole() { processor.isForwardableByOzgCloud(newVorgang); - verify(processor).isNeitherPoststelleNorEinheitlicherAnsprechpartner(); + verify(userService).hasRole(UserRole.VERWALTUNG_USER); } @ParameterizedTest @ValueSource(booleans = { true, false }) - void shouldReturnValueOfisNeitherPoststelleNorEinheitlicherAnsprechpartner( - boolean isNeitherPoststelleNorEinheitlicherAnsprechpartner) { - doReturn(isNeitherPoststelleNorEinheitlicherAnsprechpartner).when(processor).isNeitherPoststelleNorEinheitlicherAnsprechpartner(); + void shouldReturnValueOfHasVerwaltungUserRole(boolean isVerwaltungUser) { + when(userService.hasRole(UserRole.VERWALTUNG_USER)).thenReturn(isVerwaltungUser); var forwardableByOzgCloud = processor.isForwardableByOzgCloud(newVorgang); - assertThat(forwardableByOzgCloud).isEqualTo(isNeitherPoststelleNorEinheitlicherAnsprechpartner); - } - } - } - } - - @Nested - class TestIsNeitherPoststelleNorEinheitlicherAnsprechpartner { - - @BeforeEach - void mock() { - when(userService.hasRole(any())).thenAnswer(invocation -> { - var role = invocation.getArgument(0, String.class); - return role == UserRole.EINHEITLICHER_ANSPRECHPARTNER || role == UserRole.VERWALTUNG_POSTSTELLE; - }); - } - - @Test - void shouldCallUserServiceForCurrentRole() { - processor.isNeitherPoststelleNorEinheitlicherAnsprechpartner(); - - verify(userService).hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER); - } - - @Nested - class TestOnIsEinheitlicherAnsprechpartner { - - @BeforeEach - void givenIsEinheitlicherAnsprechpartner() { - when(userService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER)).thenReturn(true); - } - - @Test - void shouldReturnFalse() { - var isNeitherPoststelleNorEinheitlicherAnsprechpartner = processor.isNeitherPoststelleNorEinheitlicherAnsprechpartner(); - - assertThat(isNeitherPoststelleNorEinheitlicherAnsprechpartner).isFalse(); - } - } - - @Nested - class TestOnIsNotEinheitlicherAnsprechpartner { - - @BeforeEach - void givenIsNotEinheitlicherAnsprechpartner() { - when(userService.hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER)).thenReturn(false); - } - - @Test - void shouldCallUserServiceForCurrentRole() { - processor.isNeitherPoststelleNorEinheitlicherAnsprechpartner(); - - verify(userService).hasRole(UserRole.VERWALTUNG_POSTSTELLE); - } - - @Nested - class TestOnIsPoststelle { - - @BeforeEach - void givenIsEinheitlicherAnsprechpartner() { - when(userService.hasRole(UserRole.VERWALTUNG_POSTSTELLE)).thenReturn(true); - } - - @Test - void shouldReturnFalse() { - var isNeitherPoststelleNorEinheitlicherAnsprechpartner = processor.isNeitherPoststelleNorEinheitlicherAnsprechpartner(); - - assertThat(isNeitherPoststelleNorEinheitlicherAnsprechpartner).isFalse(); - } - } - - @Nested - class TestOnIsNotPoststelle { - - @BeforeEach - void givenIsEinheitlicherAnsprechpartner() { - when(userService.hasRole(UserRole.VERWALTUNG_POSTSTELLE)).thenReturn(false); - } - - @Test - void shouldReturnTrue() { - var isNeitherPoststelleNorEinheitlicherAnsprechpartner = processor.isNeitherPoststelleNorEinheitlicherAnsprechpartner(); - - assertThat(isNeitherPoststelleNorEinheitlicherAnsprechpartner).isTrue(); + assertThat(forwardableByOzgCloud).isEqualTo(isVerwaltungUser); } } }