diff --git a/user-manager-server/src/main/java/de/itvsh/kop/user/UserRepository.java b/user-manager-server/src/main/java/de/itvsh/kop/user/UserRepository.java
index bb34c97970495956b3cf204a5fcb0141ff156018..4db774a6227542cf4c154275b8416ba02f4bd26c 100644
--- a/user-manager-server/src/main/java/de/itvsh/kop/user/UserRepository.java
+++ b/user-manager-server/src/main/java/de/itvsh/kop/user/UserRepository.java
@@ -25,7 +25,6 @@ package de.itvsh.kop.user;
 
 import static de.itvsh.kop.user.User.*;
 
-import java.util.Collection;
 import java.util.Optional;
 import java.util.stream.Stream;
 
@@ -33,9 +32,6 @@ import javax.enterprise.context.ApplicationScoped;
 
 import org.bson.types.ObjectId;
 
-import com.google.common.collect.Lists;
-import com.mongodb.client.model.Filters;
-
 import de.itvsh.kop.common.logging.KopLogging;
 import de.itvsh.kop.user.common.errorhandling.ResourceNotFoundException;
 import io.quarkus.mongodb.panache.PanacheMongoRepository;
@@ -89,8 +85,4 @@ class UserRepository implements PanacheMongoRepository<User> {
 		return findByIdOptional(user.getId())
 				.orElse(findByExternalId(user.getExternalId()).orElseThrow(() -> new ResourceNotFoundException(User.class, user.getExternalId())));
 	}
-
-	public Collection<String> findAllOrganisationsEinheitIds() {
-		return Lists.newArrayList(mongoCollection().distinct(User.ORGANISATIONS_EINHEIT_IDS_FIELD, Filters.eq(DELETED_FIELD, false), String.class));
-	}
 }
\ No newline at end of file
diff --git a/user-manager-server/src/main/java/de/itvsh/kop/user/UserService.java b/user-manager-server/src/main/java/de/itvsh/kop/user/UserService.java
index 1f5b158cb9a03b7f2646ae0e4c847f4a468835f2..29faba06212925767f2281d5a45d33a7c7ef245a 100644
--- a/user-manager-server/src/main/java/de/itvsh/kop/user/UserService.java
+++ b/user-manager-server/src/main/java/de/itvsh/kop/user/UserService.java
@@ -23,7 +23,6 @@
  */
 package de.itvsh.kop.user;
 
-import java.util.Collection;
 import java.util.Optional;
 import java.util.stream.Stream;
 
@@ -93,8 +92,4 @@ public class UserService {
 	public User findByExternalId(String id) {
 		return repository.findByExternalId(id).orElseThrow(() -> new ResourceNotFoundException(User.class, id));
 	}
-
-	public Collection<String> findAllOrganisationsEinheitIds() {
-		return repository.findAllOrganisationsEinheitIds();
-	}
 }
\ No newline at end of file
diff --git a/user-manager-server/src/main/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitGrpcService.java b/user-manager-server/src/main/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitGrpcService.java
index 0e7e0ee22e3b3f77759262eb18ab991db36378ed..a82c606a994409441ebfb7ba8bb93b9a4f012e4a 100644
--- a/user-manager-server/src/main/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitGrpcService.java
+++ b/user-manager-server/src/main/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitGrpcService.java
@@ -6,7 +6,6 @@ import javax.inject.Inject;
 
 import com.google.protobuf.Empty;
 
-import de.itvsh.kop.user.UserService;
 import de.itvsh.kop.user.grpc.organisationseinheit.GrpcGetSupportedOrganisationsEinheitenResponse;
 import de.itvsh.kop.user.grpc.organisationseinheit.OrganisationsEinheitServiceGrpc;
 import io.grpc.stub.StreamObserver;
@@ -14,11 +13,11 @@ import io.grpc.stub.StreamObserver;
 public class OrganisationsEinheitGrpcService extends OrganisationsEinheitServiceGrpc.OrganisationsEinheitServiceImplBase {
 
 	@Inject
-	private UserService userService;
+	private OrganisationsEinheitService organisationsEinheitService;
 
 	@Override
 	public void getSupportedOrganisationsEinheiten(Empty request, StreamObserver<GrpcGetSupportedOrganisationsEinheitenResponse> responseObserver) {
-		var organisationsEinheitIds = userService.findAllOrganisationsEinheitIds();
+		var organisationsEinheitIds = organisationsEinheitService.findAllOrganisationsEinheitIds();
 		var response = GrpcGetSupportedOrganisationsEinheitenResponse.newBuilder()
 				.addAllOrganisationseinheiten(mapToGrpc(organisationsEinheitIds))
 				.build();
diff --git a/user-manager-server/src/main/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitRepository.java b/user-manager-server/src/main/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..66318b347df89d6e5c20510ecb2fb9d1145191d6
--- /dev/null
+++ b/user-manager-server/src/main/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitRepository.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * 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.itvsh.kop.user.organisationseinheit;
+
+import static de.itvsh.kop.user.User.*;
+import static org.apache.commons.collections4.IterableUtils.*;
+
+import java.util.Collection;
+
+import javax.enterprise.context.ApplicationScoped;
+
+import com.mongodb.client.model.Filters;
+
+import de.itvsh.kop.common.logging.KopLogging;
+import de.itvsh.kop.user.User;
+import io.quarkus.mongodb.panache.PanacheMongoRepository;
+
+@ApplicationScoped
+@KopLogging
+class OrganisationsEinheitRepository implements PanacheMongoRepository<User> {
+
+	public Collection<String> findAllOrganisationsEinheitIds() {
+		return toList(
+				unmodifiableIterable(
+						mongoCollection().distinct(User.ORGANISATIONS_EINHEIT_IDS_FIELD, Filters.eq(DELETED_FIELD, false), String.class)));
+	}
+}
\ No newline at end of file
diff --git a/user-manager-server/src/main/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitService.java b/user-manager-server/src/main/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitService.java
new file mode 100644
index 0000000000000000000000000000000000000000..39075610f45cf47f7dbb40a0b782da74dbb662ae
--- /dev/null
+++ b/user-manager-server/src/main/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitService.java
@@ -0,0 +1,15 @@
+package de.itvsh.kop.user.organisationseinheit;
+
+import java.util.Collection;
+
+import javax.inject.Inject;
+
+class OrganisationsEinheitService {
+
+	@Inject
+	private OrganisationsEinheitRepository repository;
+
+	public Collection<String> findAllOrganisationsEinheitIds() {
+		return repository.findAllOrganisationsEinheitIds();
+	}
+}
diff --git a/user-manager-server/src/test/java/de/itvsh/kop/user/UserRepositoryITCase.java b/user-manager-server/src/test/java/de/itvsh/kop/user/UserRepositoryITCase.java
index 560504e7e47df21b6e9a5f8054a69120f06c7123..3189e0c7f33edf85fad4f807da3d6eddc5291272 100644
--- a/user-manager-server/src/test/java/de/itvsh/kop/user/UserRepositoryITCase.java
+++ b/user-manager-server/src/test/java/de/itvsh/kop/user/UserRepositoryITCase.java
@@ -38,7 +38,6 @@ import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 
-import com.google.common.collect.Lists;
 import com.thedeanda.lorem.LoremIpsum;
 
 import de.itvsh.kop.user.common.MongoDbTestProfile;
@@ -323,22 +322,4 @@ class UserRepositoryITCase {
 			assertThat(user).usingRecursiveComparison().ignoringFields("id").isEqualTo(UserTestFactory.create());
 		}
 	}
-
-	@Nested
-	@DisplayName("Test finding all Organisationseinheiten IDs")
-	class TestFindAllOrganisationsEinheitIds {
-		@Test
-		void shouldFindAll() {
-			repository.persist(UserTestFactory.createBuilder().id(new ObjectId()).organisationsEinheitId("1").build());
-			repository.persist(UserTestFactory.createBuilder().id(new ObjectId()).organisationsEinheitIds(Lists.newArrayList("A", "1", "B")).build());
-			repository.persist(UserTestFactory.createBuilder().id(new ObjectId()).organisationsEinheitIds(Lists.newArrayList("A", "1", "B")).build());
-			repository.persist(UserTestFactory.createBuilder().id(new ObjectId()).organisationsEinheitId("1").build());
-			repository.persist(UserTestFactory.createBuilder().id(new ObjectId()).deleted(true).organisationsEinheitId("ABC").build());
-
-			var result = repository.findAllOrganisationsEinheitIds();
-
-			assertThat(result).hasSize(4);
-			assertThat(result).containsExactlyInAnyOrder("1", "A", "B", UserTestFactory.ORGANISTATIONSEINHEITEN_ID);
-		}
-	}
 }
\ No newline at end of file
diff --git a/user-manager-server/src/test/java/de/itvsh/kop/user/UserRepositoryTest.java b/user-manager-server/src/test/java/de/itvsh/kop/user/UserRepositoryTest.java
index efa152d1b7d5cad4905b97046df0aa1f62c745c6..94b1bc5594d8e3ba20313df5e6402327e6a3e975 100644
--- a/user-manager-server/src/test/java/de/itvsh/kop/user/UserRepositoryTest.java
+++ b/user-manager-server/src/test/java/de/itvsh/kop/user/UserRepositoryTest.java
@@ -32,7 +32,6 @@ import java.util.List;
 import java.util.Optional;
 
 import org.assertj.core.api.Condition;
-import org.bson.conversions.Bson;
 import org.bson.types.ObjectId;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
@@ -41,11 +40,6 @@ import org.junit.jupiter.api.Test;
 import org.mockito.Mock;
 import org.mockito.Spy;
 
-import com.mongodb.client.DistinctIterable;
-import com.mongodb.client.MongoCollection;
-import com.mongodb.client.MongoCursor;
-import com.mongodb.client.model.Filters;
-
 import de.itvsh.kop.user.common.errorhandling.ResourceNotFoundException;
 import io.quarkus.mongodb.panache.PanacheQuery;
 import io.quarkus.mongodb.panache.common.PanacheUpdate;
@@ -186,25 +180,4 @@ class UserRepositoryTest {
 			assertThatExceptionOfType(ResourceNotFoundException.class).isThrownBy(() -> userRepository.refresh(UserTestFactory.create())); // NOSONAR
 		}
 	}
-
-	@DisplayName("Test find Organisationseinheiten Ids")
-	@Nested
-	class TestFindOrganisationsEinheitIds {
-
-		MongoCollection mongoCollection = mock(MongoCollection.class);
-		MongoCursor mongoCursor = mock(MongoCursor.class);
-
-		@Test
-		void shouldFindAllOrganisationsEinheitIds() {
-			var iterable = mock(DistinctIterable.class);
-			when(iterable.iterator()).thenReturn(mongoCursor);
-			doReturn(mongoCollection).when(userRepository).mongoCollection();
-			when(mongoCursor.next()).thenReturn("");
-			when(mongoCollection.distinct(anyString(), any(Bson.class), any())).thenReturn(iterable);
-
-			userRepository.findAllOrganisationsEinheitIds();
-
-			verify(mongoCollection).distinct(User.ORGANISATIONS_EINHEIT_IDS_FIELD, Filters.eq(User.DELETED_FIELD, false), String.class);
-		}
-	}
 }
diff --git a/user-manager-server/src/test/java/de/itvsh/kop/user/UserServiceTest.java b/user-manager-server/src/test/java/de/itvsh/kop/user/UserServiceTest.java
index f58b9c9e95c62877068bdf11e5c9e0fd4492e30e..43235c6e126312539c0f9a7e0a993cfe3c68004d 100644
--- a/user-manager-server/src/test/java/de/itvsh/kop/user/UserServiceTest.java
+++ b/user-manager-server/src/test/java/de/itvsh/kop/user/UserServiceTest.java
@@ -204,16 +204,4 @@ class UserServiceTest {
 			verify(repository).findUsers(SEARCH_QUERY, true, LIMIT);
 		}
 	}
-
-	@DisplayName("Get Organisationseinheiten")
-	@Nested
-	class TestGetOrganisationsEinheiten {
-
-		@Test
-		void shouldGetAllOrganisationsEinheitenForAllUsers() {
-			service.findAllOrganisationsEinheitIds();
-
-			verify(repository).findAllOrganisationsEinheitIds();
-		}
-	}
 }
\ No newline at end of file
diff --git a/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitRepositoryITCase.java b/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitRepositoryITCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..3327c23eef83cbdbe84992ddb4004fe8ff5cb47b
--- /dev/null
+++ b/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitRepositoryITCase.java
@@ -0,0 +1,44 @@
+package de.itvsh.kop.user.organisationseinheit;
+
+import static org.assertj.core.api.Assertions.*;
+
+import javax.inject.Inject;
+
+import org.bson.types.ObjectId;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+
+import com.google.common.collect.Lists;
+
+import de.itvsh.kop.user.UserTestFactory;
+import de.itvsh.kop.user.common.MongoDbTestProfile;
+import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.TestProfile;
+
+@QuarkusTest
+@TestProfile(MongoDbTestProfile.class)
+class OrganisationsEinheitRepositoryITCase {
+
+	@Inject
+	OrganisationsEinheitRepository repository;
+
+	@Nested
+	@DisplayName("Test finding all Organisationseinheiten IDs")
+	class TestFindAllOrganisationsEinheitIds {
+		@Test
+		void shouldFindAll() {
+			repository.persist(UserTestFactory.createBuilder().id(new ObjectId()).organisationsEinheitId("1").build());
+			repository.persist(UserTestFactory.createBuilder().id(new ObjectId()).organisationsEinheitIds(Lists.newArrayList("A", "1", "B")).build());
+			repository.persist(UserTestFactory.createBuilder().id(new ObjectId()).organisationsEinheitIds(Lists.newArrayList("A", "1", "B")).build());
+			repository.persist(UserTestFactory.createBuilder().id(new ObjectId()).organisationsEinheitId("1").build());
+			repository.persist(UserTestFactory.createBuilder().id(new ObjectId()).deleted(true).organisationsEinheitId("ABC").build());
+
+			var result = repository.findAllOrganisationsEinheitIds();
+
+			assertThat(result).hasSize(4);
+			assertThat(result).containsExactlyInAnyOrder("1", "A", "B", UserTestFactory.ORGANISTATIONSEINHEITEN_ID);
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitRepositoryTest.java b/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitRepositoryTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..f07c9f0c7a930d372aa670a6722355bedb7475b1
--- /dev/null
+++ b/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitRepositoryTest.java
@@ -0,0 +1,45 @@
+package de.itvsh.kop.user.organisationseinheit;
+
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.*;
+
+import org.bson.conversions.Bson;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.Spy;
+
+import com.mongodb.client.DistinctIterable;
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.MongoCursor;
+import com.mongodb.client.model.Filters;
+
+import de.itvsh.kop.user.User;
+
+class OrganisationsEinheitRepositoryTest {
+
+	@Spy
+	OrganisationsEinheitRepository organisationsEinheitRepository;
+
+	@DisplayName("Test find Organisationseinheiten Ids")
+	@Nested
+	class TestFindOrganisationsEinheitIds {
+
+		MongoCollection mongoCollection = mock(MongoCollection.class);
+		MongoCursor mongoCursor = mock(MongoCursor.class);
+
+		@Test
+		void shouldFindAllOrganisationsEinheitIds() {
+			var iterable = mock(DistinctIterable.class);
+			when(iterable.iterator()).thenReturn(mongoCursor);
+			doReturn(mongoCollection).when(organisationsEinheitRepository).mongoCollection();
+			when(mongoCursor.next()).thenReturn("");
+			when(mongoCollection.distinct(anyString(), any(Bson.class), any())).thenReturn(iterable);
+
+			organisationsEinheitRepository.findAllOrganisationsEinheitIds();
+
+			verify(mongoCollection).distinct(User.ORGANISATIONS_EINHEIT_IDS_FIELD, Filters.eq(User.DELETED_FIELD, false), String.class);
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitServiceTest.java b/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitServiceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..47281c4899b532ea9a0f454b9c660d5970f55e40
--- /dev/null
+++ b/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationsEinheitServiceTest.java
@@ -0,0 +1,31 @@
+package de.itvsh.kop.user.organisationseinheit;
+
+import static org.mockito.Mockito.*;
+
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+
+class OrganisationsEinheitServiceTest {
+
+	@InjectMocks
+	OrganisationsEinheitService service;
+
+	@Mock
+	OrganisationsEinheitRepository repository;
+
+	@DisplayName("Get Organisationseinheiten")
+	@Nested
+	class TestGetOrganisationsEinheiten {
+
+		@Test
+		void shouldGetAllOrganisationsEinheitenForAllUsers() {
+			service.findAllOrganisationsEinheitIds();
+
+			verify(repository).findAllOrganisationsEinheitIds();
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationseinheitGrpcServiceTest.java b/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationseinheitGrpcServiceTest.java
index ce249df23f05fde037929d9e34d044be63123721..8a6594ef48b708af4c68d42f548f5bb66e8f6054 100644
--- a/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationseinheitGrpcServiceTest.java
+++ b/user-manager-server/src/test/java/de/itvsh/kop/user/organisationseinheit/OrganisationseinheitGrpcServiceTest.java
@@ -10,7 +10,6 @@ import org.mockito.Mock;
 
 import com.google.protobuf.Empty;
 
-import de.itvsh.kop.user.UserService;
 import de.itvsh.kop.user.grpc.organisationseinheit.GrpcGetSupportedOrganisationsEinheitenResponse;
 import io.grpc.stub.StreamObserver;
 
@@ -19,7 +18,7 @@ public class OrganisationseinheitGrpcServiceTest {
 	OrganisationsEinheitGrpcService organisationsEinheitGrpcService;
 
 	@Mock
-	UserService userService;
+	OrganisationsEinheitService organisationsEinheitService;
 
 	@Nested
 	@DisplayName("Get supported Organisationseinheiten")
@@ -34,7 +33,7 @@ public class OrganisationseinheitGrpcServiceTest {
 					Empty.getDefaultInstance(),
 					streamObserver);
 
-			verify(userService).findAllOrganisationsEinheitIds();
+			verify(organisationsEinheitService).findAllOrganisationsEinheitIds();
 		}
 	}