diff --git a/src/main/java/de/ozgcloud/admin/RootModelAssembler.java b/src/main/java/de/ozgcloud/admin/RootModelAssembler.java
index b8bdafb814ac0f6f62d237f91263133fc694b621..a2bfee632f155abf5c8e0b747bde49767050e8ff 100644
--- a/src/main/java/de/ozgcloud/admin/RootModelAssembler.java
+++ b/src/main/java/de/ozgcloud/admin/RootModelAssembler.java
@@ -21,7 +21,7 @@
  */
 package de.ozgcloud.admin;
 
-import de.ozgcloud.admin.common.user.CurrentUserHelper;
+import de.ozgcloud.admin.common.user.CurrentUserService;
 import de.ozgcloud.admin.common.user.UserRole;
 import org.springframework.boot.autoconfigure.data.rest.RepositoryRestProperties;
 import org.springframework.hateoas.EntityModel;
@@ -42,6 +42,8 @@ public class RootModelAssembler implements RepresentationModelAssembler<Root, En
 
 	private final RepositoryRestProperties restProperties;
 
+	private final CurrentUserService currentUserService;
+
 	@Override
 	public EntityModel<Root> toModel(Root root) {
 		List<Link> links = buildRootModelLinks();
@@ -50,11 +52,11 @@ public class RootModelAssembler implements RepresentationModelAssembler<Root, En
 				links);
 	}
 
-	private List<Link> buildRootModelLinks() {
+	List<Link> buildRootModelLinks() {
 		List<Link> links = new ArrayList<>();
 		var rootLinkBuilder = WebMvcLinkBuilder.linkTo(RootController.class);
 		links.add(rootLinkBuilder.withSelfRel());
-		if (CurrentUserHelper.hasRole(UserRole.ADMIN_USER)) {
+		if (currentUserService.hasRole(UserRole.ADMIN_USER)) {
 			links.add(buildConfigLink(rootLinkBuilder));
 		}
 		return links;
diff --git a/src/main/java/de/ozgcloud/admin/common/user/CurrentUserHelper.java b/src/main/java/de/ozgcloud/admin/common/user/CurrentUserHelper.java
index eff4ead661cd9b9ec9606d79e3710f293bf02097..97255bb37e082df573e85d532881a8ec951099f2 100644
--- a/src/main/java/de/ozgcloud/admin/common/user/CurrentUserHelper.java
+++ b/src/main/java/de/ozgcloud/admin/common/user/CurrentUserHelper.java
@@ -45,7 +45,7 @@ public class CurrentUserHelper {
 	private static final Predicate<Authentication> IS_TRUSTED = auth -> !TRUST_RESOLVER.isAnonymous(auth);
 
 
-	public static boolean hasRole(String role) {
+	static boolean hasRole(String role) {
 		var auth = getAuthentication();
 
 		if ((Objects.isNull(auth)) || (Objects.isNull(auth.getPrincipal()))) {
diff --git a/src/main/java/de/ozgcloud/admin/common/user/CurrentUserService.java b/src/main/java/de/ozgcloud/admin/common/user/CurrentUserService.java
new file mode 100644
index 0000000000000000000000000000000000000000..94912e9e4749fe871f4120477fe840fe617bb52b
--- /dev/null
+++ b/src/main/java/de/ozgcloud/admin/common/user/CurrentUserService.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch das
+ * Ministerium für Energiewende, Klimaschutz, Umwelt und Natur
+ * Zentrales IT-Management
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+
+package de.ozgcloud.admin.common.user;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class CurrentUserService {
+	public boolean hasRole(String role) {
+		return CurrentUserHelper.hasRole(role);
+	}
+}
diff --git a/src/test/java/de/ozgcloud/admin/RootModelAssemblerTest.java b/src/test/java/de/ozgcloud/admin/RootModelAssemblerTest.java
index 2a583e5dabee4474fa74eb71097f9f0e686c9b70..1b43452425c7245e6e7323eaeb7f9afb51ce7889 100644
--- a/src/test/java/de/ozgcloud/admin/RootModelAssemblerTest.java
+++ b/src/test/java/de/ozgcloud/admin/RootModelAssemblerTest.java
@@ -23,12 +23,12 @@ package de.ozgcloud.admin;
 
 import static de.ozgcloud.admin.RootModelAssembler.*;
 import static org.assertj.core.api.Assertions.*;
-import static org.mockito.Mockito.*;
 
 import java.util.List;
 
-import de.ozgcloud.admin.common.user.CurrentUserHelper;
+import de.ozgcloud.admin.common.user.CurrentUserService;
 import de.ozgcloud.admin.common.user.UserRole;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
@@ -36,10 +36,8 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.*;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.boot.autoconfigure.data.rest.RepositoryRestProperties;
-import org.springframework.hateoas.EntityModel;
 import org.springframework.hateoas.Link;
 
-
 @ExtendWith(MockitoExtension.class)
 class RootModelAssemblerTest {
 
@@ -50,43 +48,67 @@ class RootModelAssemblerTest {
 
 	@Mock
 	private RepositoryRestProperties restProperties;
+	@Mock
+	private CurrentUserService currentUserService;
 
 	@DisplayName("Entity Model")
 	@Nested
 	class TestEntityModel {
+		@BeforeEach
+		void beforeEach() {
+			Mockito.when(currentUserService.hasRole(UserRole.ADMIN_USER)).thenReturn(true);
+			Mockito.when(restProperties.getBasePath()).thenReturn(BASE_PATH);
+		}
 
 		@Test
-		void shouldHaveHrefToBasePathIfAuthorized() {
-			when(restProperties.getBasePath()).thenReturn(BASE_PATH);
-			try (MockedStatic<CurrentUserHelper> mockUserHelper = Mockito.mockStatic(CurrentUserHelper.class)) {
-				mockUserHelper.when(() -> CurrentUserHelper.hasRole(UserRole.ADMIN_USER)).thenReturn(true);
+		void entityRootModelHasRoot() {
+			var givenRoot = RootTestFactory.create();
+			List<Link> links = List.of();
+			Mockito.when(modelAssembler.buildRootModelLinks()).thenReturn(links);
 
-				List<Link> links = toModel().getLinks().toList();
+			var resultRoot = modelAssembler.toModel(givenRoot).getContent();
 
-				assertThat(links).containsExactly(
-						Link.of(RootController.PATH),
-						Link.of(BASE_PATH, REL_CONFIGURATION)
-				);
-			}
+			assertThat(resultRoot).isEqualTo(givenRoot);
 		}
 
 		@Test
-		void shouldNotHaveHrefToBasePathIfUnauthorized() {
-			try (MockedStatic<CurrentUserHelper> mockUserHelper = Mockito.mockStatic(CurrentUserHelper.class)) {
-				mockUserHelper.when(() -> CurrentUserHelper.hasRole(UserRole.ADMIN_USER)).thenReturn(false);
+		void entityRootModelHasLinks() {
+			List<Link> links = List.of(Link.of(RootController.PATH));
+			Mockito.when(modelAssembler.buildRootModelLinks()).thenReturn(links);
 
-				List<Link> links = toModel().getLinks().toList();
+			var modelLinks = modelAssembler.toModel(RootTestFactory.create()).getLinks();
 
-				assertThat(links).containsExactly(
-						Link.of(RootController.PATH)
-				);
-			}
+			assertThat(modelLinks).containsAll(links);
 		}
+	}
+
+	@DisplayName("Root Model Links")
+	@Nested
+	class TestBuildRootModelLinks {
 
-		private EntityModel<Root> toModel() {
-			return modelAssembler.toModel(RootTestFactory.create());
+		@Test
+		void shouldHaveHrefToBasePathIfAuthorized() {
+			Mockito.when(restProperties.getBasePath()).thenReturn(BASE_PATH);
+			Mockito.when(currentUserService.hasRole(UserRole.ADMIN_USER)).thenReturn(true);
+
+			List<Link> links = modelAssembler.buildRootModelLinks();
+
+			assertThat(links).containsExactly(
+					Link.of(RootController.PATH),
+					Link.of(BASE_PATH, REL_CONFIGURATION)
+			);
 		}
 
+		@Test
+		void shouldNotHaveHrefToBasePathIfUnauthorized() {
+			Mockito.when(currentUserService.hasRole(UserRole.ADMIN_USER)).thenReturn(false);
+
+			List<Link> links = modelAssembler.buildRootModelLinks();
+
+			assertThat(links).containsExactly(
+					Link.of(RootController.PATH)
+			);
+		}
 	}
 
 }
\ No newline at end of file
diff --git a/src/test/java/de/ozgcloud/admin/common/user/CurrentUserServiceTest.java b/src/test/java/de/ozgcloud/admin/common/user/CurrentUserServiceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..4e2f38123a3f02741cf940974756366a86b7ab8b
--- /dev/null
+++ b/src/test/java/de/ozgcloud/admin/common/user/CurrentUserServiceTest.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch das
+ * Ministerium für Energiewende, Klimaschutz, Umwelt und Natur
+ * Zentrales IT-Management
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+
+package de.ozgcloud.admin.common.user;
+
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class CurrentUserServiceTest {
+	private final CurrentUserService currentUserService = new CurrentUserService();
+
+	@DisplayName("Has role")
+	@Nested
+	class TestHasRole {
+		@Test
+		void shouldNotHaveRole() {
+			try (MockedStatic<CurrentUserHelper> mockUserHelper = Mockito.mockStatic(
+					CurrentUserHelper.class)
+			){
+				mockUserHelper.when(() -> CurrentUserHelper.hasRole(Mockito.anyString()))
+						.thenReturn(false);
+
+				boolean hasRole = currentUserService.hasRole(UserRole.ADMIN_USER);
+
+				assertThat(hasRole).isFalse();
+			}
+		}
+
+		@Test
+		void shouldHaveRole() {
+			try (MockedStatic<CurrentUserHelper> mockUserHelper = Mockito.mockStatic(
+					CurrentUserHelper.class)
+			){
+				mockUserHelper.when(() -> CurrentUserHelper.hasRole(Mockito.anyString()))
+						.thenReturn(true);
+
+				boolean hasRole = currentUserService.hasRole(UserRole.ADMIN_USER);
+
+				assertThat(hasRole).isTrue();
+			}
+		}
+	}
+}