From c26cd0ca36c858b54be8ff7a41eacc1f86671e22 Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Thu, 6 Feb 2025 16:29:09 +0100
Subject: [PATCH] OZG-7474 check user role as itnended

---
 ...ForwardingVorgangWithEingangProcessor.java |   6 +-
 ...ardingVorgangWithEingangProcessorTest.java | 102 ++----------------
 2 files changed, 12 insertions(+), 96 deletions(-)

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 9bd7f2d24e..60a3c43ef0 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 b9aea1fda6..15be150ccf 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);
 				}
 			}
 		}
-- 
GitLab