From a32aa1f846fd373f1cdc43a07da89a076a35e673 Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Wed, 26 Feb 2025 10:01:46 +0100
Subject: [PATCH] OZG-3936 move tests for linked resources to own test classes

---
 .../bescheid/BescheidLinkedResourceTest.java  | 40 ++++++++++++
 .../bescheid/BescheidModelAssemblerTest.java  | 19 +-----
 .../bescheid/DocumentLinkedResourceTest.java  | 41 ++++++++++++
 .../bescheid/DocumentModelAssemblerTest.java  | 13 +---
 .../CollaborationLinkedResourceTest.java      | 39 ++++++++++++
 .../CollaborationModelAssemblerTest.java      | 19 ------
 .../alfa/common/LinkedResourceTestUtils.java  | 39 ------------
 .../command/CommandLinkedResourceTest.java    | 62 +++++++++++++++++++
 .../historie/HistorieModelAssemblerTest.java  | 46 --------------
 .../KommentarLinkedResourceTest.java          | 40 ++++++++++++
 .../KommentarModelAssemblerTest.java          | 15 -----
 11 files changed, 224 insertions(+), 149 deletions(-)
 create mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidLinkedResourceTest.java
 create mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/DocumentLinkedResourceTest.java
 create mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationLinkedResourceTest.java
 delete mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/common/LinkedResourceTestUtils.java
 create mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandLinkedResourceTest.java
 create mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarLinkedResourceTest.java

diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidLinkedResourceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidLinkedResourceTest.java
new file mode 100644
index 0000000000..eeb73065eb
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidLinkedResourceTest.java
@@ -0,0 +1,40 @@
+package de.ozgcloud.alfa.bescheid;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.NullAndEmptySource;
+import org.mockito.InjectMocks;
+import org.springframework.hateoas.EntityModel;
+import org.springframework.hateoas.Link;
+
+import de.ozgcloud.alfa.common.LinkedResourceProcessor;
+
+class BescheidLinkedResourceTest {
+
+	@InjectMocks
+	private LinkedResourceProcessor<Bescheid> processor;
+
+	@Nested
+	class TestEntityModelProcessing {
+		private static final String REL_BESCHEID_DOCUMENT = "bescheidDocument";
+
+		@Test
+		void shouldHaveBescheidDocumentLink() {
+			var model = processor.process(EntityModel.of(BescheidTestFactory.create()));
+
+			assertThat(model.getLink(REL_BESCHEID_DOCUMENT)).isPresent().get().extracting(Link::getHref)
+					.isEqualTo(String.format("%s/%s", DocumentController.PATH, BescheidTestFactory.BESCHEID_DOCUMENT));
+		}
+
+		@ParameterizedTest
+		@NullAndEmptySource
+		void shouldNotHaveBescheidDocumentLinkIfNoDocumentAvailable(String documentId) {
+			var model = processor.process(EntityModel.of(BescheidTestFactory.createBuilder().bescheidDocument(documentId).build()));
+
+			assertThat(model.getLink(REL_BESCHEID_DOCUMENT)).isEmpty();
+		}
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidModelAssemblerTest.java
index 446bf2d7d5..bab353051a 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidModelAssemblerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidModelAssemblerTest.java
@@ -46,7 +46,6 @@ import org.springframework.hateoas.Link;
 import org.springframework.web.util.UriTemplate;
 
 import de.ozgcloud.alfa.bescheid.BescheidController.BescheidByVorgangController;
-import de.ozgcloud.alfa.common.LinkedResourceTestUtils;
 import de.ozgcloud.alfa.common.binaryfile.FileId;
 import de.ozgcloud.alfa.common.command.CommandController;
 import de.ozgcloud.alfa.postfach.PostfachMailController;
@@ -175,22 +174,6 @@ class BescheidModelAssemblerTest {
 					.isEqualTo(createCommandLink());
 		}
 
-		@ParameterizedTest
-		@NullAndEmptySource
-		void shouldNotHaveBescheidDocumentLinkIfNoDocumentAvailable(String documentId) {
-			var model = callToModel(BescheidTestFactory.createBuilder().bescheidDocument(documentId).build());
-
-			assertThat(model.getLink(REL_BESCHEID_DOCUMENT)).isEmpty();
-		}
-
-		@Test
-		void shouldHaveBescheidDocumentLink() {
-			var model = callToModel();
-
-			assertThat(model.getLink(REL_BESCHEID_DOCUMENT)).isPresent().get().extracting(Link::getHref)
-					.isEqualTo(String.format("%s/%s", DocumentController.PATH, BescheidTestFactory.BESCHEID_DOCUMENT));
-		}
-
 		@Test
 		void shouldHaveBescheidenUndSendenLink() {
 			when(postfachMailController.isPostfachConfigured()).thenReturn(true);
@@ -259,7 +242,7 @@ class BescheidModelAssemblerTest {
 		}
 
 		private EntityModel<Bescheid> callToModel(Bescheid bescheid) {
-			return LinkedResourceTestUtils.processLinkedResource(assembler.toModel(bescheid));
+			return assembler.toModel(bescheid);
 		}
 	}
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/DocumentLinkedResourceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/DocumentLinkedResourceTest.java
new file mode 100644
index 0000000000..6223ee6e22
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/DocumentLinkedResourceTest.java
@@ -0,0 +1,41 @@
+package de.ozgcloud.alfa.bescheid;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.NullAndEmptySource;
+import org.mockito.InjectMocks;
+import org.springframework.hateoas.EntityModel;
+import org.springframework.hateoas.Link;
+
+import de.ozgcloud.alfa.common.LinkedResourceProcessor;
+import de.ozgcloud.alfa.common.binaryfile.FileId;
+
+class DocumentLinkedResourceTest {
+
+	@InjectMocks
+	private LinkedResourceProcessor<Document> processor;
+
+	@Nested
+	class TestEntityModelProcessing {
+		static final String REL_FILE = "file";
+
+		@Test
+		void shouldHaveFileIdLink() {
+			var model = processor.process(EntityModel.of(DocumentTestFactory.create()));
+
+			assertThat(model.getLink(REL_FILE)).isPresent().get().extracting(Link::getHref)
+					.isEqualTo("/api/binaryFiles/" + DocumentTestFactory.FILE_ID);
+		}
+
+		@ParameterizedTest
+		@NullAndEmptySource
+		void shouldNotHaveFileIdLinkIfNoFileAvailable(String fileId) {
+			var model = processor.process(EntityModel.of(DocumentTestFactory.createBuilder().fileId(FileId.from(fileId)).build()));
+
+			assertThat(model.getLink(REL_FILE)).isEmpty();
+		}
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/DocumentModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/DocumentModelAssemblerTest.java
index 29f78b4071..debf5521d2 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/DocumentModelAssemblerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/DocumentModelAssemblerTest.java
@@ -23,7 +23,6 @@
  */
 package de.ozgcloud.alfa.bescheid;
 
-import static de.ozgcloud.alfa.bescheid.DocumentModelAssembler.*;
 import static org.assertj.core.api.Assertions.*;
 
 import org.junit.jupiter.api.Nested;
@@ -33,8 +32,6 @@ import org.springframework.hateoas.EntityModel;
 import org.springframework.hateoas.IanaLinkRelations;
 import org.springframework.hateoas.Link;
 
-import de.ozgcloud.alfa.common.LinkedResourceTestUtils;
-
 class DocumentModelAssemblerTest {
 
 	@Spy
@@ -53,16 +50,8 @@ class DocumentModelAssemblerTest {
 					.isEqualTo(DocumentController.PATH + "/" + DocumentTestFactory.ID);
 		}
 
-		@Test
-		void shouldHaveFileIdLink() {
-			var model = callToModel();
-
-			assertThat(model.getLink(REL_FILE)).isPresent().get().extracting(Link::getHref)
-					.isEqualTo("/api/binaryFiles/" + DocumentTestFactory.FILE_ID);
-		}
-
 		private EntityModel<Document> callToModel() {
-			return LinkedResourceTestUtils.processLinkedResource(assembler.toModel(document));
+			return assembler.toModel(document);
 		}
 	}
 }
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationLinkedResourceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationLinkedResourceTest.java
new file mode 100644
index 0000000000..7c7349d96a
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationLinkedResourceTest.java
@@ -0,0 +1,39 @@
+package de.ozgcloud.alfa.collaboration;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.springframework.hateoas.EntityModel;
+import org.springframework.hateoas.Link;
+
+import de.ozgcloud.alfa.common.LinkedResourceProcessor;
+
+class CollaborationLinkedResourceTest {
+
+	@InjectMocks
+	private LinkedResourceProcessor<Collaboration> processor;
+
+	@Nested
+	class TestEntityModelProcessing {
+		private static final String REL_ZUSTAENDIGE_STELLE = "zustaendigeStelle";
+
+		@Test
+		void shouldHaveLinkToOrganisationsEinheit() {
+			var entityModel = processor.process(EntityModel.of(OrganisationsEinheitCollaborationTestFactory.create()));
+
+			assertThat(entityModel.getLink(REL_ZUSTAENDIGE_STELLE)).get().extracting(Link::getHref)
+					.isEqualTo(OrganisationsEinheitController.PATH + "/" + OrganisationsEinheitTestFactory.ID);
+		}
+
+		@Test
+		void shouldHaveLinkToFachstelle() {
+			var entityModel = processor.process(EntityModel.of(FachstelleCollaborationTestFactory.create()));
+
+			assertThat(entityModel.getLink(REL_ZUSTAENDIGE_STELLE)).get().extracting(Link::getHref)
+					.isEqualTo(FachstelleController.PATH + "/" + FachstelleTestFactory.ID);
+		}
+
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssemblerTest.java
index 7878bfea35..3818b59854 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssemblerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssemblerTest.java
@@ -41,7 +41,6 @@ import org.springframework.hateoas.Link;
 import org.springframework.hateoas.UriTemplate;
 
 import de.ozgcloud.alfa.collaboration.CollaborationController.CollaborationByVorgangController;
-import de.ozgcloud.alfa.common.LinkedResourceTestUtils;
 import de.ozgcloud.alfa.common.command.CommandController.CommandByRelationController;
 import de.ozgcloud.alfa.vorgang.VorgangController;
 import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
@@ -60,8 +59,6 @@ class CollaborationModelAssemblerTest {
 	@Nested
 	class TestToModel {
 
-		private static final String REL_ZUSTAENDIGE_STELLE = "zustaendigeStelle";
-
 		@Nested
 		class OnOrganisationsEinheitCollaboration {
 
@@ -74,14 +71,6 @@ class CollaborationModelAssemblerTest {
 				assertThat(entityModel.getContent()).isEqualTo(collaboration);
 			}
 
-			@Test
-			void shouldHaveLinkToOrganisationsEinheit() {
-				var entityModel = LinkedResourceTestUtils.processLinkedResource(callAssembler());
-
-				assertThat(entityModel.getLink(REL_ZUSTAENDIGE_STELLE)).get().extracting(Link::getHref)
-						.isEqualTo(OrganisationsEinheitController.PATH + "/" + OrganisationsEinheitTestFactory.ID);
-			}
-
 			private EntityModel<Collaboration> callAssembler() {
 				return assembler.toModel(collaboration);
 			}
@@ -99,14 +88,6 @@ class CollaborationModelAssemblerTest {
 				assertThat(entityModel.getContent()).isEqualTo(collaboration);
 			}
 
-			@Test
-			void shouldHaveLinkToFachstelle() {
-				var entityModel = LinkedResourceTestUtils.processLinkedResource(callAssembler());
-
-				assertThat(entityModel.getLink(REL_ZUSTAENDIGE_STELLE)).get().extracting(Link::getHref)
-						.isEqualTo(FachstelleController.PATH + "/" + FachstelleTestFactory.ID);
-			}
-
 			private EntityModel<Collaboration> callAssembler() {
 				return assembler.toModel(collaboration);
 			}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/LinkedResourceTestUtils.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/LinkedResourceTestUtils.java
deleted file mode 100644
index 2091e594d1..0000000000
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/LinkedResourceTestUtils.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2025 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.ozgcloud.alfa.common;
-
-import org.springframework.hateoas.EntityModel;
-
-import de.ozgcloud.alfa.common.user.UserManagerUrlProvider;
-
-public class LinkedResourceTestUtils {
-
-	public static <T> EntityModel<T> processLinkedResource(EntityModel<T> model) {
-		return new LinkedResourceProcessor<T>(null).process(model);
-	}
-
-	public static <T> EntityModel<T> processUserProfileResource(EntityModel<T> model, UserManagerUrlProvider userManagerUrlProvider) {
-		return new LinkedResourceProcessor<T>(userManagerUrlProvider).process(model);
-	}
-}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandLinkedResourceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandLinkedResourceTest.java
new file mode 100644
index 0000000000..f8274e4d9c
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandLinkedResourceTest.java
@@ -0,0 +1,62 @@
+package de.ozgcloud.alfa.common.command;
+
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.springframework.hateoas.EntityModel;
+import org.springframework.hateoas.Link;
+
+import com.thedeanda.lorem.LoremIpsum;
+
+import de.ozgcloud.alfa.common.LinkedResourceProcessor;
+import de.ozgcloud.alfa.common.user.UserId;
+import de.ozgcloud.alfa.common.user.UserManagerUrlProvider;
+import de.ozgcloud.alfa.common.user.UserProfileTestFactory;
+
+class CommandLinkedResourceTest {
+
+	@InjectMocks
+	private LinkedResourceProcessor<Command> processor;
+	@Mock
+	private UserManagerUrlProvider userManagerUrlProvider;
+
+	@Nested
+	class TestEntityModelProcessing {
+		private static final String CREATED_BY = "createdBy";
+		private static final String ROOT_URL = LoremIpsum.getInstance().getUrl();
+		private static final String USER_PROFILES_API_PATH = "/api/user-profiles/";
+
+		@Test
+		void shouldHaveCreatedByLink() {
+			when(userManagerUrlProvider.getUserProfileTemplate()).thenReturn(ROOT_URL + USER_PROFILES_API_PATH + "%s");
+
+			var model = processor.process(EntityModel.of(CommandTestFactory.create()));
+
+			assertThat(model.getLink(CREATED_BY)).isPresent().get().extracting(Link::getHref)
+					.isEqualTo(ROOT_URL + USER_PROFILES_API_PATH + UserProfileTestFactory.ID);
+		}
+
+		@Test
+		void shouldNotHaveCreatedByLinkForSystemUser() {
+			var systemUser = UserId.from("system-" + LoremIpsum.getInstance().getWords(1));
+			var commandBySystemUser = CommandTestFactory.createBuilder()
+					.createdBy(systemUser)
+					.build();
+
+			var model = processor.process(EntityModel.of(commandBySystemUser));
+
+			assertThat(model.getLink(CREATED_BY)).isNotPresent();
+		}
+
+		@Test
+		void shouldNotHaveCreatedByLinkOnNullValue() {
+			var model = processor.process(EntityModel.of(CommandTestFactory.createBuilder().createdBy(null).build()));
+
+			assertThat(model.getLink(CREATED_BY)).isNotPresent();
+		}
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java
index cd840fb170..4274b00e92 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java
@@ -36,18 +36,12 @@ import org.mockito.Mock;
 import org.springframework.hateoas.IanaLinkRelations;
 import org.springframework.hateoas.Link;
 
-import com.thedeanda.lorem.LoremIpsum;
-
-import de.ozgcloud.alfa.common.LinkedResourceTestUtils;
 import de.ozgcloud.alfa.common.command.CommandTestFactory;
-import de.ozgcloud.alfa.common.user.UserId;
 import de.ozgcloud.alfa.common.user.UserManagerUrlProvider;
 import de.ozgcloud.alfa.common.user.UserProfileTestFactory;
 
 class HistorieModelAssemblerTest {
 
-	private static final String CREATED_BY = "createdBy";
-
 	@InjectMocks
 	private HistorieModelAssembler modelAssembler;
 	@Mock
@@ -116,44 +110,4 @@ class HistorieModelAssemblerTest {
 		}
 	}
 
-	@DisplayName("createdBy Link")
-	@Nested
-	class TestCreatedByLink {
-
-		private static final String ROOT_URL = LoremIpsum.getInstance().getUrl();
-		private static final String USER_PROFILES_API_PATH = "/api/user-profiles/";
-
-		@Mock
-		private UserManagerUrlProvider userManagerUrlProvider;
-
-		@Test
-		void shouldExistingAtUser() {
-			when(userManagerUrlProvider.getUserProfileTemplate()).thenReturn(ROOT_URL + USER_PROFILES_API_PATH + "%s");
-
-			var model = LinkedResourceTestUtils
-					.processUserProfileResource(modelAssembler.toModel(CommandTestFactory.create()), userManagerUrlProvider);
-
-			assertThat(model.getLink(CREATED_BY)).isPresent().get().extracting(Link::getHref)
-					.isEqualTo(ROOT_URL + USER_PROFILES_API_PATH + UserProfileTestFactory.ID);
-		}
-
-		@Test
-		void shouldNotExistForSystemUser() {
-			var systemUser = UserId.from("system-" + LoremIpsum.getInstance().getWords(1));
-			var commandBySystemUser = CommandTestFactory.createBuilder()
-					.createdBy(systemUser)
-					.build();
-
-			var model = modelAssembler.toModel(commandBySystemUser);
-
-			assertThat(model.getLink(CREATED_BY)).isNotPresent();
-		}
-
-		@Test
-		void shouldNotBePresentOnNullValue() {
-			var model = modelAssembler.toModel(CommandTestFactory.createBuilder().createdBy(null).build());
-
-			assertThat(model.getLink(CREATED_BY)).isNotPresent();
-		}
-	}
 }
\ No newline at end of file
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarLinkedResourceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarLinkedResourceTest.java
new file mode 100644
index 0000000000..9cf8101707
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarLinkedResourceTest.java
@@ -0,0 +1,40 @@
+package de.ozgcloud.alfa.kommentar;
+
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.springframework.hateoas.EntityModel;
+import org.springframework.hateoas.Link;
+
+import com.thedeanda.lorem.LoremIpsum;
+
+import de.ozgcloud.alfa.common.LinkedResourceProcessor;
+import de.ozgcloud.alfa.common.user.UserManagerUrlProvider;
+
+class KommentarLinkedResourceTest {
+
+	@InjectMocks
+	private LinkedResourceProcessor<Kommentar> processor;
+	@Mock
+	private UserManagerUrlProvider userManagerUrlProvider;
+
+	@Nested
+	class TestEntityModelProcessing {
+		private static final String REL_CREATED_BY = "createdBy";
+		private static final String USER_MANAGER_URL = LoremIpsum.getInstance().getUrl();
+
+		@Test
+		void shouldHaveCreatedByLink() {
+			when(userManagerUrlProvider.getUserProfileTemplate()).thenReturn(USER_MANAGER_URL + "%s");
+
+			var model = processor.process(EntityModel.of(KommentarTestFactory.create()));
+
+			assertThat(model.getLink(REL_CREATED_BY)).isPresent().get().extracting(Link::getHref)
+					.isEqualTo(USER_MANAGER_URL + KommentarTestFactory.CREATED_BY);
+		}
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarModelAssemblerTest.java
index 61309f2595..7ddb61920d 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarModelAssemblerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarModelAssemblerTest.java
@@ -40,9 +40,6 @@ import org.springframework.hateoas.IanaLinkRelations;
 import org.springframework.hateoas.Link;
 import org.springframework.hateoas.server.EntityLinks;
 
-import com.thedeanda.lorem.LoremIpsum;
-
-import de.ozgcloud.alfa.common.LinkedResourceTestUtils;
 import de.ozgcloud.alfa.common.user.UserManagerUrlProvider;
 import de.ozgcloud.alfa.vorgang.VorgangController;
 import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
@@ -52,8 +49,6 @@ import de.ozgcloud.alfa.vorgang.VorgangWithEingangTestFactory;
 class KommentarModelAssemblerTest {
 
 	private static final String PATH = KommentarController.KOMMENTAR_PATH + "/";
-	private static final String REL_CREATED_BY = "createdBy";
-	private static final String USER_MANAGER_URL = LoremIpsum.getInstance().getUrl();
 
 	@Spy
 	@InjectMocks
@@ -127,16 +122,6 @@ class KommentarModelAssemblerTest {
 			assertThat(model.getLink(KommentarModelAssembler.REL_EDIT)).isEmpty();
 		}
 
-		@Test
-		void shouldHaveCreatedByLink() {
-			when(userManagerUrlProvider.getUserProfileTemplate()).thenReturn(USER_MANAGER_URL + "%s");
-
-			var model = LinkedResourceTestUtils.processUserProfileResource(buildModel(), userManagerUrlProvider);
-
-			assertThat(model.getLink(REL_CREATED_BY)).isPresent().get().extracting(Link::getHref)
-					.isEqualTo(USER_MANAGER_URL + KommentarTestFactory.CREATED_BY);
-		}
-
 		@Test
 		void shouldHaveAttachmentsLink() {
 			var kommentar = KommentarTestFactory.create();
-- 
GitLab