From 8c2bdadc2c87bb9b90f5caf008f59acc0e441c2d Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Wed, 11 Dec 2024 11:24:48 +0100
Subject: [PATCH] OZG-4094 Remove tests of old osi-postfach

---
 .../postfach/GrpcPostfachMailTestFactory.java |   2 +-
 .../nachrichten/postfach/PostfachService.java |   6 +-
 .../antragraum/AntragraumGrpcServiceTest.java |   3 +-
 .../antragraum/AntragraumServiceTest.java     |   5 +-
 .../antragraum/GrpcNachrichtTestFactory.java  |   4 +-
 .../antragraum/RueckfrageMapperTest.java      |   3 +-
 .../common/vorgang/VorgangServiceTest.java    |   8 +-
 .../nachrichten/email/MailServiceITCase.java  |   1 +
 .../info/InfoManagerRequestTestFactory.java   |   6 +-
 .../info/InfoManagerServiceTest.java          |   7 +-
 .../info/InfomanagerNachrichtMapperTest.java  |   4 +-
 .../AttachedItemRemoteServiceTest.java        |  33 +-
 ...rsistPostfachNachrichtServiceImplTest.java |  17 +-
 .../postfach/PostfachAddressTestFactory.java  |   6 +-
 .../postfach/PostfachEventListenerTest.java   |   9 +-
 .../postfach/PostfachNachrichtMapperTest.java |   5 +-
 .../PostfachNachrichtTestFactory.java         |   9 +-
 .../postfach/PostfachServiceTest.java         |  56 +--
 .../BayernIdPostfachNachrichtMapperTest.java  |  11 +-
 .../osi/MessageAttachmentServiceTest.java     | 131 -------
 .../osi/MessageAttachmentTestFactory.java     |  40 ---
 .../osi/MessageJsonReplyTestFactory.java      |  64 ----
 .../postfach/osi/MessageTestFactory.java      |  64 ----
 .../osi/OsiPostfachMessageMapperTest.java     | 200 -----------
 .../osi/OsiPostfachRemoteServiceTest.java     | 337 ------------------
 ...fachServerProcessExceptionTestFactory.java |   9 -
 26 files changed, 73 insertions(+), 967 deletions(-)
 delete mode 100644 nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageAttachmentServiceTest.java
 delete mode 100644 nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageAttachmentTestFactory.java
 delete mode 100644 nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageJsonReplyTestFactory.java
 delete mode 100644 nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageTestFactory.java
 delete mode 100644 nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachMessageMapperTest.java
 delete mode 100644 nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachRemoteServiceTest.java
 delete mode 100644 nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachServerProcessExceptionTestFactory.java

diff --git a/nachrichten-manager-interface/src/test/java/de/ozgcloud/nachrichten/postfach/GrpcPostfachMailTestFactory.java b/nachrichten-manager-interface/src/test/java/de/ozgcloud/nachrichten/postfach/GrpcPostfachMailTestFactory.java
index c1cd027..ba5b03a 100644
--- a/nachrichten-manager-interface/src/test/java/de/ozgcloud/nachrichten/postfach/GrpcPostfachMailTestFactory.java
+++ b/nachrichten-manager-interface/src/test/java/de/ozgcloud/nachrichten/postfach/GrpcPostfachMailTestFactory.java
@@ -37,7 +37,7 @@ public class GrpcPostfachMailTestFactory {
 	public static final String SENT_AT = "2020-04-01T11:30:10Z";
 	public static final String MESSAGE_CODE = "message.code";
 	public static final GrpcDirection DIRECTION = GrpcDirection.IN;
-	private static final String SUBJECT = "Test Subject";
+	public static final String SUBJECT = "Test Subject";
 	public static final String MAIL_BODY = "Body\nString";
 	public static final String REPLY_OPTION = "MANDATORY";
 	public static final String ATTACHMENT_FILE_ID = "21";
diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachService.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachService.java
index b92fead..857a8c1 100644
--- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachService.java
+++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachService.java
@@ -48,7 +48,6 @@ import de.ozgcloud.nachrichten.attributes.ClientAttributeService;
 import de.ozgcloud.nachrichten.info.InfoManagerService;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht.Direction;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht.ReplyOption;
-import de.ozgcloud.nachrichten.postfach.osi.OsiPostfachServerProcessException;
 import de.ozgcloud.vorgang.callcontext.CurrentUserService;
 import lombok.NonNull;
 import lombok.extern.log4j.Log4j2;
@@ -195,7 +194,7 @@ class PostfachService {
 	boolean shouldNotifyAntragsraum(PostfachNachricht postfachNachricht) {
 		return REPLY_POSSIBLE_OPTION.contains(postfachNachricht.getReplyOption())
 				&& findPostfachRemoteService(postfachNachricht.getPostfachAddress().getServiceKontoType()).filter(this::isPostfachWithAntragsraum)
-						.isPresent();
+				.isPresent();
 	}
 
 	Optional<PostfachNachricht> adjustPostfachNachricht(PostfachNachricht nachricht) {
@@ -203,8 +202,7 @@ class PostfachService {
 	}
 
 	void logSendPostfachNachrichtFailed(String commandId, PostfachException exception) {
-		if (exception instanceof OsiPostfachServerProcessException
-				|| exception.getMessageCode() == PostfachMessageCode.SEND_FAILED_UNKNOWN_POSTFACH_ID_MESSAGE_CODE) {
+		if (exception.getMessageCode() == PostfachMessageCode.SEND_FAILED_UNKNOWN_POSTFACH_ID_MESSAGE_CODE) {
 			LOG.warn("Failed to send mail with commandId: {}", commandId, exception);
 		} else {
 			LOG.error("Failed to send mail with commandId: {}", commandId, exception);
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java
index cde69a9..2429e3c 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java
@@ -60,7 +60,6 @@ import de.ozgcloud.nachrichten.common.vorgang.VorgangService;
 import de.ozgcloud.nachrichten.common.vorgang.VorgangTestFactory;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
 import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 import io.grpc.stub.CallStreamObserver;
 import io.grpc.stub.StreamObserver;
 
@@ -364,7 +363,7 @@ class AntragraumGrpcServiceTest {
 		void shouldCallVorgangService() {
 			enhanceRueckfrage();
 
-			verify(vorgangService).getVorgang(MessageTestFactory.VORGANG_ID);
+			verify(vorgangService).getVorgang(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java
index ffda45a..d754f48 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java
@@ -38,7 +38,6 @@ import de.ozgcloud.nachrichten.postfach.PersistPostfachNachrichtService;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
 import de.ozgcloud.nachrichten.postfach.PostfachNachrichtMapper;
 import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 import lombok.SneakyThrows;
 
 class AntragraumServiceTest {
@@ -712,7 +711,7 @@ class AntragraumServiceTest {
 
 		@BeforeEach
 		void mock() {
-			when(vorgangService.getVorgang(MessageTestFactory.VORGANG_ID)).thenReturn(vorgang);
+			when(vorgangService.getVorgang(PostfachNachrichtTestFactory.VORGANG_ID)).thenReturn(vorgang);
 			doNothing().when(service).verifyPostfachId(AttachmentFileRequestTestFactory.TOKEN, nachricht, vorgang);
 			doNothing().when(service).verifyTrustLevel(AttachmentFileRequestTestFactory.TOKEN, nachricht, vorgang);
 		}
@@ -721,7 +720,7 @@ class AntragraumServiceTest {
 		void shouldCallVorgangService() {
 			verifyAccessToPostfach();
 
-			verify(vorgangService).getVorgang(MessageTestFactory.VORGANG_ID);
+			verify(vorgangService).getVorgang(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcNachrichtTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcNachrichtTestFactory.java
index d68eddc..8847628 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcNachrichtTestFactory.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcNachrichtTestFactory.java
@@ -2,7 +2,7 @@ package de.ozgcloud.nachrichten.antragraum;
 
 import de.ozgcloud.info.nachricht.GrpcNachricht;
 import de.ozgcloud.nachrichten.info.InfoManagerRequestTestFactory;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
+import de.ozgcloud.nachrichten.postfach.PostfachAddressTestFactory;
 
 public class GrpcNachrichtTestFactory {
 
@@ -12,7 +12,7 @@ public class GrpcNachrichtTestFactory {
 
 	public static GrpcNachricht.Builder createBuilder() {
 		return GrpcNachricht.newBuilder()
-				.setPostfachId(MessageTestFactory.POSTFACH_ID)
+				.setPostfachId(PostfachAddressTestFactory.POSTFACH_ID)
 				.setNachrichtenListUrl(InfoManagerRequestTestFactory.NACHRICHTEN_MANAGER_URL);
 	}
 }
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapperTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapperTest.java
index 7fc8bf3..0940589 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapperTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/RueckfrageMapperTest.java
@@ -16,7 +16,6 @@ import de.ozgcloud.nachrichten.common.vorgang.VorgangTestFactory;
 import de.ozgcloud.nachrichten.postfach.PostfachAddressTestFactory;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
 import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 
 class RueckfrageMapperTest {
 
@@ -37,7 +36,7 @@ class RueckfrageMapperTest {
 		void shouldMapVorgangId() {
 			var mapped = mapFromPostfachNachricht();
 
-			assertThat(mapped.getVorgangId()).isEqualTo(MessageTestFactory.VORGANG_ID);
+			assertThat(mapped.getVorgangId()).isEqualTo(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/VorgangServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/VorgangServiceTest.java
index 5a84193..28ea9d7 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/VorgangServiceTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/common/vorgang/VorgangServiceTest.java
@@ -14,8 +14,8 @@ import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 
+import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
 import de.ozgcloud.nachrichten.postfach.PostfachTestFactory;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 
 class VorgangServiceTest {
 
@@ -64,14 +64,14 @@ class VorgangServiceTest {
 
 		@Test
 		void shouldCallRemoteService() {
-			service.getVorgang(MessageTestFactory.VORGANG_ID);
+			service.getVorgang(PostfachNachrichtTestFactory.VORGANG_ID);
 
-			verify(remoteService).getVorgang(MessageTestFactory.VORGANG_ID);
+			verify(remoteService).getVorgang(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
 		void shouldReturnValue() {
-			var vorgang = service.getVorgang(MessageTestFactory.VORGANG_ID);
+			var vorgang = service.getVorgang(PostfachNachrichtTestFactory.VORGANG_ID);
 
 			assertThat(vorgang).isEqualTo(returnedVorgang);
 		}
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/email/MailServiceITCase.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/email/MailServiceITCase.java
index 3708772..78bf7d8 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/email/MailServiceITCase.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/email/MailServiceITCase.java
@@ -9,6 +9,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.function.Executable;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.TestPropertySource;
 
 import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextAttachingInterceptor;
 import de.ozgcloud.common.test.ITCase;
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerRequestTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerRequestTestFactory.java
index 0690a65..2aedc66 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerRequestTestFactory.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerRequestTestFactory.java
@@ -1,7 +1,7 @@
 package de.ozgcloud.nachrichten.info;
 
+import de.ozgcloud.nachrichten.postfach.PostfachAddressTestFactory;
 import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 
 public class InfoManagerRequestTestFactory {
 
@@ -14,8 +14,8 @@ public class InfoManagerRequestTestFactory {
 	private static InfoManagerRequest.InfoManagerRequestBuilder createBuilder() {
 		return InfoManagerRequest.builder()
 				.nachrichtId(PostfachNachrichtTestFactory.ID)
-				.vorgangId(MessageTestFactory.VORGANG_ID)
-				.postfachId(MessageTestFactory.POSTFACH_ID)
+				.vorgangId(PostfachNachrichtTestFactory.VORGANG_ID)
+				.postfachId(PostfachAddressTestFactory.POSTFACH_ID)
 				.nachrichtenManagerUrl(NACHRICHTEN_MANAGER_URL);
 	}
 }
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerServiceTest.java
index ca6c910..61e193c 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerServiceTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerServiceTest.java
@@ -18,7 +18,6 @@ import de.ozgcloud.nachrichten.postfach.PostfachException;
 import de.ozgcloud.nachrichten.postfach.PostfachMessageCode;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
 import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 
 class InfoManagerServiceTest {
 
@@ -78,14 +77,14 @@ class InfoManagerServiceTest {
 			void shouldSetVorgangId() {
 				var request = buildInfomanagerNachricht();
 
-				assertThat(request.getVorgangId()).isEqualTo(MessageTestFactory.VORGANG_ID);
+				assertThat(request.getVorgangId()).isEqualTo(PostfachNachrichtTestFactory.VORGANG_ID);
 			}
 
 			@Test
 			void shouldSetPostfachId() {
 				var request = buildInfomanagerNachricht();
 
-				assertThat(request.getPostfachId()).isEqualTo(MessageTestFactory.POSTFACH_ID);
+				assertThat(request.getPostfachId()).isEqualTo(PostfachAddressTestFactory.POSTFACH_ID);
 			}
 
 			@Test
@@ -111,7 +110,7 @@ class InfoManagerServiceTest {
 
 			var id = service.getPostfachId(address);
 
-			assertThat(id).isEqualTo(PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE);
+			assertThat(id).isEqualTo(PostfachAddressTestFactory.POSTFACH_ID);
 		}
 
 		@Test
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfomanagerNachrichtMapperTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfomanagerNachrichtMapperTest.java
index f76881f..2dab18c 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfomanagerNachrichtMapperTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfomanagerNachrichtMapperTest.java
@@ -6,7 +6,7 @@ import org.junit.jupiter.api.Test;
 import org.mapstruct.factory.Mappers;
 
 import de.ozgcloud.info.nachricht.GrpcNachricht;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
+import de.ozgcloud.nachrichten.postfach.PostfachAddressTestFactory;
 
 class InfomanagerNachrichtMapperTest {
 
@@ -16,7 +16,7 @@ class InfomanagerNachrichtMapperTest {
 	void shouldMapPostfachId() {
 		var result = map();
 
-		assertThat(result.getPostfachId()).isEqualTo(MessageTestFactory.POSTFACH_ID);
+		assertThat(result.getPostfachId()).isEqualTo(PostfachAddressTestFactory.POSTFACH_ID);
 	}
 
 	@Test
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/AttachedItemRemoteServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/AttachedItemRemoteServiceTest.java
index 62969f4..571e857 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/AttachedItemRemoteServiceTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/AttachedItemRemoteServiceTest.java
@@ -40,7 +40,6 @@ import org.mockito.Mock;
 import org.mockito.Spy;
 
 import de.ozgcloud.nachrichten.common.grpc.NachrichtenCallContextAttachingInterceptor;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 import de.ozgcloud.vorgang.common.GrpcObject;
 import de.ozgcloud.vorgang.common.GrpcProperty;
 import de.ozgcloud.vorgang.vorgangAttachedItem.GrpcFindVorgangAttachedItemRequest;
@@ -81,30 +80,30 @@ class AttachedItemRemoteServiceTest {
 
 		@Test
 		void shouldCallGetVorgangAttachedItemServiceStub() {
-			service.findReplyAllowedPostfachNachrichts(MessageTestFactory.VORGANG_ID);
+			service.findReplyAllowedPostfachNachrichts(PostfachNachrichtTestFactory.VORGANG_ID);
 
 			verify(service).getVorgangAttachedItemServiceStub();
 		}
 
 		@Test
 		void shouldCallBuildFindRequest() {
-			service.findReplyAllowedPostfachNachrichts(MessageTestFactory.VORGANG_ID);
+			service.findReplyAllowedPostfachNachrichts(PostfachNachrichtTestFactory.VORGANG_ID);
 
-			verify(service).buildFindRequest(MessageTestFactory.VORGANG_ID);
+			verify(service).buildFindRequest(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
 		void shouldCallFind() {
 			doReturn(grpcFindVorgangAttachedItemRequest).when(service).buildFindRequest(anyString());
 
-			service.findReplyAllowedPostfachNachrichts(MessageTestFactory.VORGANG_ID);
+			service.findReplyAllowedPostfachNachrichts(PostfachNachrichtTestFactory.VORGANG_ID);
 
 			verify(vorgangAttachedItemServiceBlockingStub).find(grpcFindVorgangAttachedItemRequest);
 		}
 
 		@Test
 		void shouldCallReplyAllowed() {
-			service.findReplyAllowedPostfachNachrichts(MessageTestFactory.VORGANG_ID).toList();
+			service.findReplyAllowedPostfachNachrichts(PostfachNachrichtTestFactory.VORGANG_ID).toList();
 
 			verify(service).replyAllowed(GRPC_VORGANG_ATTACHED_ITEM);
 		}
@@ -113,7 +112,7 @@ class AttachedItemRemoteServiceTest {
 		void shouldCallPostfachNachrichtMapper() {
 			doReturn(true).when(service).replyAllowed(any());
 
-			service.findReplyAllowedPostfachNachrichts(MessageTestFactory.VORGANG_ID).toList();
+			service.findReplyAllowedPostfachNachrichts(PostfachNachrichtTestFactory.VORGANG_ID).toList();
 
 			verify(postfachNachrichtMapper).fromAttachedItem(GRPC_VORGANG_ATTACHED_ITEM);
 		}
@@ -122,7 +121,7 @@ class AttachedItemRemoteServiceTest {
 		void shouldNotCallPostfachNachrichtMapper() {
 			doReturn(false).when(service).replyAllowed(any());
 
-			service.findReplyAllowedPostfachNachrichts(MessageTestFactory.VORGANG_ID).toList();
+			service.findReplyAllowedPostfachNachrichts(PostfachNachrichtTestFactory.VORGANG_ID).toList();
 
 			verify(postfachNachrichtMapper, never()).fromAttachedItem(GRPC_VORGANG_ATTACHED_ITEM);
 		}
@@ -132,7 +131,7 @@ class AttachedItemRemoteServiceTest {
 			doReturn(true).when(service).replyAllowed(any());
 			doReturn(postfachNachricht).when(postfachNachrichtMapper).fromAttachedItem(any());
 
-			var result = service.findReplyAllowedPostfachNachrichts(MessageTestFactory.VORGANG_ID);
+			var result = service.findReplyAllowedPostfachNachrichts(PostfachNachrichtTestFactory.VORGANG_ID);
 
 			assertThat(result).containsExactly(postfachNachricht);
 		}
@@ -169,21 +168,21 @@ class AttachedItemRemoteServiceTest {
 
 		@Test
 		void shouldSetVorgangId() {
-			var result = service.buildFindRequest(MessageTestFactory.VORGANG_ID);
+			var result = service.buildFindRequest(PostfachNachrichtTestFactory.VORGANG_ID);
 
-			assertThat(result.getVorgangId()).isEqualTo(MessageTestFactory.VORGANG_ID);
+			assertThat(result.getVorgangId()).isEqualTo(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
 		void shouldSetClient() {
-			var result = service.buildFindRequest(MessageTestFactory.VORGANG_ID);
+			var result = service.buildFindRequest(PostfachNachrichtTestFactory.VORGANG_ID);
 
 			assertThat(result.getClient()).isEqualTo(AttachedItemRemoteService.CLIENT);
 		}
 
 		@Test
 		void shouldSetItemName() {
-			var result = service.buildFindRequest(MessageTestFactory.VORGANG_ID);
+			var result = service.buildFindRequest(PostfachNachrichtTestFactory.VORGANG_ID);
 
 			assertThat(result.getItemName()).isEqualTo(AttachedItemRemoteService.ITEM_NAME);
 		}
@@ -240,28 +239,28 @@ class AttachedItemRemoteServiceTest {
 
 		@Test
 		void shouldGetServiceStub() {
-			service.findByVorgangId(MessageTestFactory.VORGANG_ID).toList();
+			service.findByVorgangId(PostfachNachrichtTestFactory.VORGANG_ID).toList();
 
 			verify(service).getVorgangAttachedItemServiceStub();
 		}
 
 		@Test
 		void shouldCallServiceStub() {
-			service.findByVorgangId(MessageTestFactory.VORGANG_ID).toList();
+			service.findByVorgangId(PostfachNachrichtTestFactory.VORGANG_ID).toList();
 
 			verify(vorgangAttachedItemServiceBlockingStub).find(grpcFindVorgangAttachedItemRequest);
 		}
 
 		@Test
 		void shouldCallMapper() {
-			service.findByVorgangId(MessageTestFactory.VORGANG_ID).toList();
+			service.findByVorgangId(PostfachNachrichtTestFactory.VORGANG_ID).toList();
 
 			verify(postfachNachrichtMapper).fromAttachedItem(GRPC_VORGANG_ATTACHED_ITEM);
 		}
 
 		@Test
 		void shouldReturnMappedValue() {
-			var postfachNachrichten = service.findByVorgangId(MessageTestFactory.VORGANG_ID);
+			var postfachNachrichten = service.findByVorgangId(PostfachNachrichtTestFactory.VORGANG_ID);
 
 			assertThat(postfachNachrichten).containsExactly(postfachNachricht);
 		}
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PersistPostfachNachrichtServiceImplTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PersistPostfachNachrichtServiceImplTest.java
index 844c0e7..385ce51 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PersistPostfachNachrichtServiceImplTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PersistPostfachNachrichtServiceImplTest.java
@@ -25,7 +25,6 @@ import de.ozgcloud.apilib.common.command.OzgCloudCommandService;
 import de.ozgcloud.nachrichten.attributes.ClientAttributeService;
 import de.ozgcloud.nachrichten.common.vorgang.VorgangService;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht.Direction;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 
 class PersistPostfachNachrichtServiceImplTest {
 
@@ -98,7 +97,7 @@ class PersistPostfachNachrichtServiceImplTest {
 		void shouldContainVorgangId() {
 			var command = service.createBaseCommandBuilder(userIdOpt, nachricht).build();
 
-			assertThat(command.getVorgangId()).hasToString(MessageTestFactory.VORGANG_ID);
+			assertThat(command.getVorgangId()).hasToString(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@DisplayName("created by")
@@ -335,7 +334,7 @@ class PersistPostfachNachrichtServiceImplTest {
 		void shouldContainRelationId() {
 			var command = buildCreateCommand();
 
-			assertThat(command.getRelationId()).hasToString(MessageTestFactory.VORGANG_ID);
+			assertThat(command.getRelationId()).hasToString(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
@@ -373,7 +372,7 @@ class PersistPostfachNachrichtServiceImplTest {
 		void shouldHaveSetVorgangId() {
 			var body = service.buildCreateItem(postfachNachricht);
 
-			assertThat(body).containsEntry(PersistPostfachNachrichtServiceImpl.VORGANG_ID_FIELD, MessageTestFactory.VORGANG_ID);
+			assertThat(body).containsEntry(PersistPostfachNachrichtServiceImpl.VORGANG_ID_FIELD, PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
@@ -408,7 +407,7 @@ class PersistPostfachNachrichtServiceImplTest {
 
 			service.setHasNewPostfachNachricht(incomingNachricht);
 
-			verify(clientAttributeService).setHasNewPostfachNachricht(MessageTestFactory.VORGANG_ID);
+			verify(clientAttributeService).setHasNewPostfachNachricht(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
@@ -435,7 +434,7 @@ class PersistPostfachNachrichtServiceImplTest {
 
 		@BeforeEach
 		void mock() {
-			when(vorgangService.findVorgangIds(any(), any())).thenReturn(Stream.of(MessageTestFactory.VORGANG_ID));
+			when(vorgangService.findVorgangIds(any(), any())).thenReturn(Stream.of(PostfachNachrichtTestFactory.VORGANG_ID));
 			when(attachedItemRemoteService.findByVorgangId(any())).thenReturn(Stream.of(postfachNachrichtWithNoReferencedNachricht,
 					matchingPostfachNachricht, postfachNachrichtWithNonMatchingReferencedNachricht));
 		}
@@ -444,14 +443,14 @@ class PersistPostfachNachrichtServiceImplTest {
 		void shouldCallVorgangRemoteService() {
 			doFindAnswers().toList();
 
-			verify(vorgangService).findVorgangIds(serviceKontoType, PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE);
+			verify(vorgangService).findVorgangIds(serviceKontoType, PostfachAddressTestFactory.POSTFACH_ID);
 		}
 
 		@Test
 		void shouldCallAttachedItemRemoteService() {
 			doFindAnswers().toList();
 
-			verify(attachedItemRemoteService).findByVorgangId(MessageTestFactory.VORGANG_ID);
+			verify(attachedItemRemoteService).findByVorgangId(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
@@ -462,7 +461,7 @@ class PersistPostfachNachrichtServiceImplTest {
 		}
 
 		private Stream<PostfachNachricht> doFindAnswers() {
-			return service.findAnswers(serviceKontoType, PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE,
+			return service.findAnswers(serviceKontoType, PostfachAddressTestFactory.POSTFACH_ID,
 					GrpcPostfachMailTestFactory.REFERENCED_NACHRICHT_ID);
 		}
 	}
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachAddressTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachAddressTestFactory.java
index 94f5df8..de02e69 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachAddressTestFactory.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachAddressTestFactory.java
@@ -1,12 +1,12 @@
 package de.ozgcloud.nachrichten.postfach;
 
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
+import java.util.UUID;
 
 public class PostfachAddressTestFactory {
 
 	public final static int TYPE = 1;
-	public static final String STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE = MessageTestFactory.POSTFACH_ID;
-	public final static StringBasedIdentifier IDENTIFIER = StringBasedIdentifier.builder().postfachId(STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE)
+	public static final String POSTFACH_ID = UUID.randomUUID().toString();
+	public final static StringBasedIdentifier IDENTIFIER = StringBasedIdentifier.builder().postfachId(POSTFACH_ID)
 			.build();
 	public static final String VERSION = "1.0";
 
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachEventListenerTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachEventListenerTest.java
index ceceb14..5a6bebb 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachEventListenerTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachEventListenerTest.java
@@ -48,7 +48,6 @@ import de.ozgcloud.command.CommandCreatedEvent;
 import de.ozgcloud.command.PostfachNachrichtReceivedEvent;
 import de.ozgcloud.command.VorgangAttachedItemCreatedEvent;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht.Direction;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 
 class PostfachEventListenerTest {
 
@@ -76,8 +75,8 @@ class PostfachEventListenerTest {
 		void mockCommand() {
 			when(command.getId()).thenReturn(COMMAND_ID);
 			when(command.getCreatedBy()).thenReturn(USER_ID);
-			when(command.getVorgangId()).thenReturn(MessageTestFactory.VORGANG_ID);
-			when(command.getRelationId()).thenReturn(MessageTestFactory.VORGANG_ID);
+			when(command.getVorgangId()).thenReturn(PostfachNachrichtTestFactory.VORGANG_ID);
+			when(command.getRelationId()).thenReturn(PostfachNachrichtTestFactory.VORGANG_ID);
 			when(command.getBodyObject()).thenReturn(buildCommandBody());
 		}
 
@@ -146,8 +145,8 @@ class PostfachEventListenerTest {
 							PostfachAddress.TYPE_FIELD, PostfachAddressTestFactory.TYPE,
 							PostfachAddress.SERVICEKONTO_TYPE_FIELD, PostfachTestFactory.POSTFACH_TYPE,
 							PostfachAddress.IDENTIFIER_FIELD, //
-							Map.of(PostfachAddress.FIELD_POSTFACH_ID, PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE)),
-					PostfachNachricht.FIELD_SUBJECT, MessageTestFactory.SUBJECT,
+							Map.of(PostfachAddress.FIELD_POSTFACH_ID, PostfachAddressTestFactory.POSTFACH_ID)),
+					PostfachNachricht.FIELD_SUBJECT, GrpcPostfachMailTestFactory.SUBJECT,
 					PostfachNachricht.FIELD_MAIL_BODY, PostfachNachrichtTestFactory.MAIL_BODY,
 					PostfachNachricht.FIELD_REPLY_OPTION, PostfachNachrichtTestFactory.REPLY_OPTION.name(),
 					PostfachNachricht.FIELD_ATTACHMENTS, PostfachNachrichtTestFactory.ATTACHMENTS));
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapperTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapperTest.java
index 1aa4ab3..fdd504b 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapperTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapperTest.java
@@ -42,7 +42,6 @@ import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
 
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 import de.ozgcloud.vorgang.common.GrpcObject;
 import de.ozgcloud.vorgang.common.grpc.GrpcObjectMapper;
 import de.ozgcloud.vorgang.vorgangAttachedItem.GrpcVorgangAttachedItem;
@@ -267,8 +266,8 @@ class PostfachNachrichtMapperTest {
 					.setId(PostfachNachrichtTestFactory.ID)
 					.setMessageCode(PostfachNachrichtTestFactory.MESSAGE_CODE)
 					.setPostfachAddress(GrpcPostfachAddressTestFactory.createBuilder()
-							.setIdentifier(GrpcPostfachAddressTestFactory.createIdentifier(MessageTestFactory.POSTFACH_ID)))
-					.setVorgangId(MessageTestFactory.VORGANG_ID).build();
+							.setIdentifier(GrpcPostfachAddressTestFactory.createIdentifier(PostfachAddressTestFactory.POSTFACH_ID)))
+					.setVorgangId(PostfachNachrichtTestFactory.VORGANG_ID).build();
 		}
 
 		@Test
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtTestFactory.java
index 4e028a9..187262f 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtTestFactory.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtTestFactory.java
@@ -24,7 +24,6 @@
 package de.ozgcloud.nachrichten.postfach;
 
 import static de.ozgcloud.nachrichten.postfach.PostfachNachricht.ReplyOption.*;
-import static de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory.*;
 
 import java.time.ZonedDateTime;
 import java.util.HashMap;
@@ -36,6 +35,8 @@ import de.ozgcloud.nachrichten.postfach.PostfachNachricht.Direction;
 
 public class PostfachNachrichtTestFactory {
 
+	public static final String MESSAGE_ID = UUID.randomUUID().toString();
+	public static final String VORGANG_ID = UUID.randomUUID().toString();
 	public static final String ID = UUID.randomUUID().toString();
 	public static final String CREATED_AT_STR = "2020-04-01T10:30:10Z";
 	public static final ZonedDateTime CREATED_AT = ZonedDateTime.parse(CREATED_AT_STR);
@@ -71,7 +72,7 @@ public class PostfachNachrichtTestFactory {
 				.sentSuccessful(SENT_SUCCESSFUL)
 				.messageCode(MESSAGE_CODE)
 				.replyOption(REPLY_OPTION)
-				.subject(SUBJECT)
+				.subject(GrpcPostfachMailTestFactory.SUBJECT)
 				.mailBody(MAIL_BODY)
 				.attachments(ATTACHMENTS);
 	}
@@ -90,7 +91,7 @@ public class PostfachNachrichtTestFactory {
 		map.put(PostfachNachricht.FIELD_SENT_SUCCESSFUL, SENT_SUCCESSFUL);
 		map.put(PostfachNachricht.FIELD_MESSAGE_CODE, MESSAGE_CODE);
 		map.put(PostfachNachricht.FIELD_REPLY_OPTION, REPLY_OPTION.name());
-		map.put(PostfachNachricht.FIELD_SUBJECT, SUBJECT);
+		map.put(PostfachNachricht.FIELD_SUBJECT, GrpcPostfachMailTestFactory.SUBJECT);
 		map.put(PostfachNachricht.FIELD_MAIL_BODY, MAIL_BODY);
 		map.put(PostfachNachricht.FIELD_ATTACHMENTS, ATTACHMENTS);
 		return map;
@@ -104,6 +105,6 @@ public class PostfachNachrichtTestFactory {
 	}
 
 	private static Map<String, Object> getPostfachAddressIdentifierAsMap() {
-		return Map.of(PostfachAddress.FIELD_POSTFACH_ID, PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE);
+		return Map.of(PostfachAddress.FIELD_POSTFACH_ID, PostfachAddressTestFactory.POSTFACH_ID);
 	}
 }
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachServiceTest.java
index 8dcd52f..edf87b5 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachServiceTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachServiceTest.java
@@ -56,8 +56,6 @@ import de.ozgcloud.common.errorhandling.TechnicalException;
 import de.ozgcloud.nachrichten.antragraum.AntragraumService;
 import de.ozgcloud.nachrichten.attributes.ClientAttributeService;
 import de.ozgcloud.nachrichten.info.InfoManagerService;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
-import de.ozgcloud.nachrichten.postfach.osi.OsiPostfachServerProcessExceptionTestFactory;
 import de.ozgcloud.vorgang.callcontext.CallContextUserTestFactory;
 import de.ozgcloud.vorgang.callcontext.CurrentUserService;
 import nl.altindag.log.LogCaptor;
@@ -107,7 +105,7 @@ class PostfachServiceTest {
 
 		@Test
 		void shouldUseUserIdFromContext() {
-			service.saveDraft(MessageTestFactory.VORGANG_ID, PostfachNachrichtTestFactory.create());
+			service.saveDraft(PostfachNachrichtTestFactory.VORGANG_ID, PostfachNachrichtTestFactory.create());
 
 			verify(service).persistPostfachNachricht(userIdCaptor.capture(), any());
 			assertThat(userIdCaptor.getValue()).contains(CallContextUserTestFactory.ID);
@@ -115,17 +113,17 @@ class PostfachServiceTest {
 
 		@Test
 		void shouldPersistNachricht() {
-			service.saveDraft(MessageTestFactory.VORGANG_ID, PostfachNachrichtTestFactory.create());
+			service.saveDraft(PostfachNachrichtTestFactory.VORGANG_ID, PostfachNachrichtTestFactory.create());
 
 			verify(service).persistPostfachNachricht(any(), any());
 		}
 
 		@Test
 		void shouldAddVorgangId() {
-			service.saveDraft(MessageTestFactory.VORGANG_ID, PostfachNachrichtTestFactory.createBuilder().vorgangId(null).build());
+			service.saveDraft(PostfachNachrichtTestFactory.VORGANG_ID, PostfachNachrichtTestFactory.createBuilder().vorgangId(null).build());
 
 			verify(service).persistPostfachNachricht(any(), nachrichtCaptor.capture());
-			assertThat(nachrichtCaptor.getValue().getVorgangId()).isEqualTo(MessageTestFactory.VORGANG_ID);
+			assertThat(nachrichtCaptor.getValue().getVorgangId()).isEqualTo(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 	}
 
@@ -501,7 +499,7 @@ class PostfachServiceTest {
 			void shouldCallDeleteMessage() {
 				service.fetchAndPersistReplies(postfachRemoteService);
 
-				verify(postfachRemoteService).deleteMessage(MessageTestFactory.MESSAGE_ID);
+				verify(postfachRemoteService).deleteMessage(PostfachNachrichtTestFactory.MESSAGE_ID);
 			}
 		}
 
@@ -738,52 +736,12 @@ class PostfachServiceTest {
 				}
 			}
 
-			@DisplayName("OsiPostfachServerProcessException")
-			@Nested
-			class TestOsiPostfachServerProcessException {
-
-				private static final String MESSAGE = "Postfach server returned false";
-
-				@BeforeEach
-				void mockService() {
-					doThrow(OsiPostfachServerProcessExceptionTestFactory.create()).when(postfachRemoteService).sendMessage(any());
-					when(postfachRemoteService.getPostfachType()).thenReturn(PostfachTestFactory.POSTFACH_TYPE);
-				}
-
-				@Test
-				void shouldPublishEvent() {
-					service.handleSendPostfachNachricht(COMMAND_ID, postfachNachricht);
-
-					verify(publisher).publishEvent(eventFailedCaptor.capture());
-					assertThat(eventFailedCaptor.getValue().getSource()).isEqualTo(COMMAND_ID);
-					assertThat(eventFailedCaptor.getValue().getErrorMessage()).startsWith(MESSAGE);
-				}
-
-				@Test
-				void shouldReturnResponse() {
-					var response = service.handleSendPostfachNachricht(COMMAND_ID, postfachNachricht);
-
-					assertThat(response.isSentSuccessful()).isFalse();
-					assertThat(response.getMessageCode()).isEqualTo(PostfachMessageCode.PROCESS_FAILED_MESSAGE_CODE);
-				}
-			}
 		}
 	}
 
 	@Nested
 	class TestLogSendPostfachNachrichtFailed {
 
-		@DisplayName("should log warning on OsiPostfachServerProcessException")
-		@Test
-		void shouldLogWarningWhenOsiException() {
-			try (var logCaptor = LogCaptor.forClass(PostfachService.class)) {
-				var exception = OsiPostfachServerProcessExceptionTestFactory.create();
-
-				service.logSendPostfachNachrichtFailed(COMMAND_ID, exception);
-
-				assertThat(logCaptor.getLogEvents()).hasSize(1).first().extracting(LogEvent::getLevel).isEqualTo(LogLevel.WARN.name());
-			}
-		}
 
 		@DisplayName("should log warning when error code is unknown postfach id")
 		@Test
@@ -1168,7 +1126,7 @@ class PostfachServiceTest {
 
 			var result = service.linkToVorgang(POSTFACH_NACHRICHT);
 
-			assertThat(result.getVorgangId()).isEqualTo(MessageTestFactory.VORGANG_ID);
+			assertThat(result.getVorgangId()).isEqualTo(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 	}
 
@@ -1188,7 +1146,7 @@ class PostfachServiceTest {
 		void shouldSetClientAttribute() {
 			persistPostfachNachricht();
 
-			verify(clientAttributeService).setHasPostfachNachricht(MessageTestFactory.VORGANG_ID);
+			verify(clientAttributeService).setHasPostfachNachricht(PostfachNachrichtTestFactory.VORGANG_ID);
 		}
 
 		@Test
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdPostfachNachrichtMapperTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdPostfachNachrichtMapperTest.java
index f8f9dee..ff373b5 100644
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdPostfachNachrichtMapperTest.java
+++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdPostfachNachrichtMapperTest.java
@@ -11,13 +11,14 @@ import org.junit.jupiter.api.Test;
 import org.mapstruct.factory.Mappers;
 import org.mockito.Spy;
 
+import de.ozgcloud.nachrichten.postfach.GrpcPostfachMailTestFactory;
+import de.ozgcloud.nachrichten.postfach.PostfachAddressTestFactory;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
 import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
 import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcAttachmentMetadata;
 import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcAttachments;
 import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcBayernIdMessageMetadata;
 import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcSendBayernIdMessageRequest;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 
 class BayernIdPostfachNachrichtMapperTest {
 
@@ -51,7 +52,7 @@ class BayernIdPostfachNachrichtMapperTest {
 			void shouldSetMessageId() {
 				var metadata = toMessageMetadata();
 
-				assertThat(metadata.getMessageId()).isEqualTo(MessageTestFactory.MESSAGE_ID);
+				assertThat(metadata.getMessageId()).isEqualTo(PostfachNachrichtTestFactory.MESSAGE_ID);
 			}
 
 			@Nested
@@ -78,7 +79,7 @@ class BayernIdPostfachNachrichtMapperTest {
 			void shouldSetSubject() {
 				var metadata = toMessageMetadata();
 
-				assertThat(metadata.getSubject()).isEqualTo(MessageTestFactory.SUBJECT);
+				assertThat(metadata.getSubject()).isEqualTo(GrpcPostfachMailTestFactory.SUBJECT);
 			}
 
 			@Test
@@ -92,7 +93,7 @@ class BayernIdPostfachNachrichtMapperTest {
 			void shouldSetVorgangId() {
 				var metadata = toMessageMetadata();
 
-				assertThat(metadata.getVorgangId()).isEqualTo(MessageTestFactory.VORGANG_ID);
+				assertThat(metadata.getVorgangId()).isEqualTo(PostfachNachrichtTestFactory.VORGANG_ID);
 			}
 
 			@Test
@@ -149,7 +150,7 @@ class BayernIdPostfachNachrichtMapperTest {
 				void shouldSetPostkorbId() {
 					var metadata = toMessageMetadata();
 
-					assertThat(metadata.getEmpfaenger().getPostkorbId()).isEqualTo(MessageTestFactory.POSTFACH_ID);
+					assertThat(metadata.getEmpfaenger().getPostkorbId()).isEqualTo(PostfachAddressTestFactory.POSTFACH_ID);
 				}
 			}
 
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageAttachmentServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageAttachmentServiceTest.java
deleted file mode 100644
index dc473e1..0000000
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageAttachmentServiceTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * 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.ozgcloud.nachrichten.postfach.osi;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.sql.Date;
-import java.time.Instant;
-
-import org.bson.BsonObjectId;
-import org.bson.BsonValue;
-import org.bson.Document;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-
-import com.mongodb.client.gridfs.model.GridFSFile;
-
-import de.ozgcloud.nachrichten.postfach.BinaryFileService;
-import de.ozgcloud.nachrichten.postfach.FileId;
-
-class MessageAttachmentServiceTest {
-	private static final FileId FILE_ID = FileId.from("42");
-
-	@InjectMocks
-	private MessageAttachmentService messageAttachmentService;
-
-	@Mock
-	private BinaryFileService fileService;
-
-	private GridFSFile gridFsfile;
-
-	@Nested
-	class TestLoadingAttachment {
-		@BeforeEach
-		void init() {
-			Document metadata = new Document();
-			metadata.put("name", MessageAttachmentTestFactory.FILENAME);
-			BsonValue id = new BsonObjectId();
-			gridFsfile = new GridFSFile(id, FILE_ID.toString(), 0, 0, Date.from(Instant.now()), metadata);
-
-			when(fileService.getFile(any())).thenReturn(gridFsfile);
-			when(fileService.getUploadedFileStream(any()))
-					.thenReturn(new ByteArrayInputStream(MessageAttachmentTestFactory.DECODED_CONTENT.getBytes()));
-		}
-
-		@Test
-		void shouldHaveAttachmentWithFileName() {
-			MessageAttachment attachment = messageAttachmentService.getMessageAttachment(FILE_ID);
-
-			assertThat(attachment.getFileName()).isEqualTo(MessageAttachmentTestFactory.FILENAME);
-		}
-
-		@Test
-		void shouldHaveAttachmentContent() {
-			MessageAttachment attachment = messageAttachmentService.getMessageAttachment(FILE_ID);
-
-			assertThat(attachment.getContent()).isEqualTo(MessageAttachmentTestFactory.CONTENT);
-		}
-
-	}
-
-	@Nested
-	class TestLoadingAttachmentContent {
-		@BeforeEach
-		void init() {
-			when(fileService.getUploadedFileStream(any()))
-					.thenReturn(new ByteArrayInputStream(MessageAttachmentTestFactory.DECODED_CONTENT.getBytes()));
-		}
-
-		@Test
-		void shouldGetInputStream() {
-			InputStream input = messageAttachmentService.getAttachmentContentStream(FILE_ID);
-
-			assertThat(input).isNotNull();
-		}
-
-		@Test
-		void shouldGetContent() throws IOException {
-			String input = messageAttachmentService.getAttachmentContent(FILE_ID);
-
-			assertThat(input).isEqualTo(MessageAttachmentTestFactory.CONTENT);
-		}
-	}
-
-	@Nested
-	class TestMapAttachmentFile {
-
-		@Test
-		void shouldMapFileName() {
-			var attachmentFile = messageAttachmentService.mapAttachmentFile(MessageAttachmentTestFactory.create());
-
-			assertThat(attachmentFile.getName()).isEqualTo(MessageAttachmentTestFactory.FILENAME);
-		}
-
-		@Test
-		void shouldMapContent() {
-			var attachmentFile = messageAttachmentService.mapAttachmentFile(MessageAttachmentTestFactory.create());
-
-			assertThat(attachmentFile.getContent()).hasContent(MessageAttachmentTestFactory.CONTENT);
-		}
-	}
-}
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageAttachmentTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageAttachmentTestFactory.java
deleted file mode 100644
index 17181b2..0000000
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageAttachmentTestFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.ozgcloud.nachrichten.postfach.osi;
-
-public class MessageAttachmentTestFactory {
-
-	public final static String FILENAME = "test.txt";
-	public static final String CONTENT = "dGVzdA==";
-	public static final String DECODED_CONTENT = "test";
-	public static final long SIZE = 4L;
-
-	public static MessageAttachment create() {
-		return createBuilder().build();
-	}
-
-	public static MessageAttachment.MessageAttachmentBuilder createBuilder() {
-		return MessageAttachment.builder().fileName(FILENAME).content(CONTENT);
-	}
-}
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageJsonReplyTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageJsonReplyTestFactory.java
deleted file mode 100644
index ce467cf..0000000
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageJsonReplyTestFactory.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package de.ozgcloud.nachrichten.postfach.osi;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-import de.ozgcloud.common.test.TestUtils;
-import lombok.Builder;
-import lombok.Singular;
-
-public class MessageJsonReplyTestFactory {
-
-	public static final MessageAttachment MESSAGE_ATTACHMENT = MessageAttachmentTestFactory.create();
-
-	public static String create() {
-		return createBuilder().build();
-	}
-
-	public static MessageJsonReply.MessageJsonReplyBuilder createBuilder() {
-		return MessageJsonReply.builder()
-				.messageId(MessageTestFactory.MESSAGE_ID)
-				.postfachId(MessageTestFactory.POSTFACH_ID)
-				.mailBody(MessageTestFactory.MAIL_BODY)
-				.replyOption(MessageTestFactory.REPLY_OPTION)
-				.subject(MessageTestFactory.SUBJECT)
-				.vorgangId(MessageTestFactory.VORGANG_ID)
-				.attachment(MESSAGE_ATTACHMENT);
-	}
-
-	@Builder
-	private static class MessageJsonReply {
-
-		private static final String REPLY_MESSAGE_JSON_TMPL = "reply-message-json.tmpl";
-
-		private static final String ATTACHMENT_TMPL = """
-				{
-				  "fileName": "%s",
-				  "content": "%s"
-				}""";
-
-		private String messageId;
-		private String postfachId;
-		private String mailBody;
-		private ReplyOption replyOption;
-		private String subject;
-		private String vorgangId;
-		@Singular
-		private List<MessageAttachment> attachments;
-
-		public static class MessageJsonReplyBuilder {
-
-			public String build() {
-				return TestUtils.loadTextFile(REPLY_MESSAGE_JSON_TMPL)
-						.formatted(messageId, postfachId, mailBody, replyOption.toValue(), subject, vorgangId,
-								buildAttachments());
-			}
-
-			public String buildAttachments() {
-				return attachments.stream().map(attachment -> ATTACHMENT_TMPL.formatted(attachment.getFileName(), attachment.getContent()))
-						.collect(Collectors.joining(","));
-			}
-		}
-	}
-
-}
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageTestFactory.java
deleted file mode 100644
index c281353..0000000
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/MessageTestFactory.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.ozgcloud.nachrichten.postfach.osi;
-
-import java.util.List;
-import java.util.UUID;
-
-import de.ozgcloud.nachrichten.postfach.osi.Message.EidasLevel;
-
-public class MessageTestFactory {
-
-	public static final String MESSAGE_ID = UUID.randomUUID().toString();
-	public static final String POSTFACH_ID = UUID.randomUUID().toString();
-	public static final String VORGANG_ID = UUID.randomUUID().toString();
-
-	public static final String MAIL_BODY = "Body<br>String";
-	public static final boolean IS_HTML = false;
-	public static final ReplyOption REPLY_OPTION = ReplyOption.MANDATORY;
-	public static final String SUBJECT = "Test Subject";
-
-	public static final EidasLevel EIDAS_LEVEL = EidasLevel.MEDIUM;
-	public static final boolean RECHTSVERBINDLICH = true;
-
-	public static final List<MessageAttachment> ATTACHMENTS = List.of(MessageAttachmentTestFactory.create());
-
-	public static Message create() {
-		return createBuilder().build();
-	}
-
-	public static Message.MessageBuilder createBuilder() {
-		return Message.builder()
-				.messageId(MESSAGE_ID)
-				.postfachId(POSTFACH_ID)
-				.mailBody(MAIL_BODY)
-				.isHtml(IS_HTML)
-				.replyOption(REPLY_OPTION)
-				.subject(SUBJECT)
-				.vorgangId(VORGANG_ID)
-				.eidasLevel(EIDAS_LEVEL)
-				.rechtsverbindlich(RECHTSVERBINDLICH)
-				.attachments(ATTACHMENTS);
-	}
-}
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachMessageMapperTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachMessageMapperTest.java
deleted file mode 100644
index acbf9bd..0000000
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachMessageMapperTest.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * 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.ozgcloud.nachrichten.postfach.osi;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
-import java.time.ZonedDateTime;
-import java.time.temporal.ChronoUnit;
-import java.util.List;
-
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-import org.mapstruct.factory.Mappers;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-
-import de.ozgcloud.nachrichten.postfach.FileId;
-import de.ozgcloud.nachrichten.postfach.PostfachAddressTestFactory;
-import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
-import de.ozgcloud.nachrichten.postfach.PostfachNachricht.Direction;
-import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
-import de.ozgcloud.vorgang.common.grpc.GrpcObjectMapper;
-
-class OsiPostfachMessageMapperTest {
-
-	@InjectMocks
-	private OsiPostfachMessageMapper mapper = Mappers.getMapper(OsiPostfachMessageMapper.class);
-	@Mock
-	private MessageAttachmentService messageAttachmentService;
-	@Mock
-	private GrpcObjectMapper grpcObjectMapper;
-
-	@DisplayName("To mail")
-	@Nested
-	class TestToNachricht {
-
-		@Test
-		void shouldSetDirection() {
-			var mail = mapper.toPostfachNachricht(MessageTestFactory.create());
-
-			assertThat(mail.getDirection()).isEqualTo(Direction.IN);
-		}
-
-		@Test
-		void shouldSetCreatedAt() {
-			var mail = mapper.toPostfachNachricht(MessageTestFactory.create());
-
-			assertThat(mail.getCreatedAt()).isNotNull().isCloseTo(ZonedDateTime.now(), within(2, ChronoUnit.SECONDS));
-		}
-
-		@Test
-		void shouldIgnoreSentInformation() {
-			var mail = mapper.toPostfachNachricht(MessageTestFactory.create());
-
-			assertThat(mail.getSentAt()).isNull();
-			assertThat(mail.getSentSuccessful()).isNull();
-		}
-
-		@Test
-		void shouldPersistAttachment() {
-			mapper.toPostfachNachricht(MessageTestFactory.create());
-
-			verify(messageAttachmentService).persistAttachment(MessageTestFactory.VORGANG_ID, MessageTestFactory.ATTACHMENTS.get(0));
-		}
-
-		@Test
-		void shouldSetPostfachAddress() {
-			var expectedPostfachAddress = PostfachAddressTestFactory.createBuilder().serviceKontoType(OsiPostfachRemoteService.POSTFACH_TYPE).build();
-
-			var mail = toMail();
-
-			assertThat(mail.getPostfachAddress()).usingRecursiveComparison().isEqualTo(expectedPostfachAddress);
-		}
-
-		@Test
-		void shouldPreserveNewLineInBody() {
-			var bodyText = "line\nline";
-			var mail = mapper.toPostfachNachricht(MessageTestFactory.createBuilder().mailBody(bodyText).build());
-
-			assertThat(mail.getMailBody()).isEqualTo(bodyText);
-		}
-
-		@Test
-		void shouldRecodeAND() {
-			var mail = mapper.toPostfachNachricht(MessageTestFactory.createBuilder().mailBody("this&amp;that").build());
-
-			assertThat(mail.getMailBody()).isEqualTo("this&that");
-		}
-
-		private PostfachNachricht toMail() {
-			return mapper.toPostfachNachricht(MessageTestFactory.create());
-		}
-	}
-
-	@DisplayName("To osi message")
-	@Nested
-	class TestToOsiMessage {
-
-		@Test
-		void shouldCallAttachmentService() {
-			var fileId = FileId.from("42");
-
-			toOsiMessage(PostfachNachrichtTestFactory.createBuilder().attachments(List.of(fileId.toString())).build());
-
-			verify(messageAttachmentService).getMessageAttachment(fileId);
-		}
-
-		@Test
-		void shouldMapFields() {
-			var message = toOsiMessage(PostfachNachrichtTestFactory.create());
-
-			assertThat(message.getSubject()).isEqualTo(MessageTestFactory.SUBJECT);
-			assertThat(message.getAttachments()).hasSize(1);
-		}
-
-		@Test
-		void shouldMapMailBody() {
-			var message = toOsiMessage(PostfachNachrichtTestFactory.create());
-
-			assertThat(message.getMailBody()).isEqualTo(MessageTestFactory.MAIL_BODY);
-		}
-
-		@Test
-		void shouldReplaceNewLineToHtml() {
-			var bodyText = "line\nline&";
-			var message = toOsiMessage(PostfachNachrichtTestFactory.createBuilder().mailBody(bodyText).build());
-
-			assertThat(message.getMailBody()).isEqualTo("line<br>line&");
-		}
-
-		@DisplayName("build postfachId")
-		@Nested
-		class TestToPostfachId {
-
-			@DisplayName("by existing postfachAddress")
-			@Nested
-			class TestWithExistingPostfachAddress {
-
-				@Test
-				void shouldMapPostfachAddressToPostfachId() {
-					var message = toOsiMessage(PostfachNachrichtTestFactory.create());
-
-					assertThat(message.getPostfachId()).isEqualTo(PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE);
-				}
-			}
-
-			@DisplayName("by postfachId if postfachAddress not exists")
-			@Nested
-			class TestWithoutPostfachAddress {
-
-				@Test
-				void shouldMapPostfachAddressToEmptyString() {
-					var message = toOsiMessage(PostfachNachrichtTestFactory.createBuilder().postfachAddress(null).build());
-
-					assertThat(message.getPostfachId()).isEmpty();
-				}
-			}
-		}
-
-		private Message toOsiMessage(PostfachNachricht postfachNachricht) {
-			return mapper.toOsiMessage(postfachNachricht);
-		}
-	}
-
-	@DisplayName("To HTML body")
-	@Nested
-	class TestToHTMLBody {
-
-		@Test
-		void shouldNotContainNewlines() {
-			var body = mapper.replaceNewlines(MessageTestFactory.MAIL_BODY);
-
-			assertThat(body).doesNotContain("\n");
-		}
-
-	}
-}
\ No newline at end of file
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachRemoteServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachRemoteServiceTest.java
deleted file mode 100644
index db3b323..0000000
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachRemoteServiceTest.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * 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.ozgcloud.nachrichten.postfach.osi;
-
-import static de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory.*;
-import static org.assertj.core.api.Assertions.*;
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
-import static org.springframework.test.web.client.match.MockRestRequestMatchers.*;
-import static org.springframework.test.web.client.response.MockRestResponseCreators.*;
-
-import java.util.stream.Collectors;
-
-import org.assertj.core.api.InstanceOfAssertFactories;
-import org.assertj.core.util.Arrays;
-import org.junit.jupiter.api.BeforeEach;
-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;
-import org.mockito.Spy;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.test.util.ReflectionTestUtils;
-import org.springframework.test.web.client.ExpectedCount;
-import org.springframework.test.web.client.MockRestServiceServer;
-import org.springframework.test.web.client.ResponseActions;
-import org.springframework.web.client.RestTemplate;
-
-import de.ozgcloud.nachrichten.postfach.NotConfiguredException;
-import de.ozgcloud.nachrichten.postfach.PostfachBadRequestException;
-import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
-import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
-
-class OsiPostfachRemoteServiceTest {
-
-	private static final String TEST_URL = "https://testUrl.local";
-	private static final String TEST_API_KEY = "dummyApiKey";
-	private static final String TEST_API_REALM = "dummyApiRealm";
-
-	@InjectMocks
-	private OsiPostfachRemoteService service;
-
-	@Mock
-	private OsiPostfachMessageMapper mapper;
-
-	@Spy
-	private RestTemplate restTemplate;
-
-	@Spy
-	private OsiPostfachProperties properties = new OsiPostfachProperties();
-	{
-		properties.setUrl(TEST_URL);
-		properties.setRealm(TEST_API_REALM);
-		properties.setKey(TEST_API_KEY);
-	}
-
-	private MockRestServiceServer mockServer;
-
-	@BeforeEach
-	void initMockServer() {
-		mockServer = MockRestServiceServer.createServer(restTemplate);
-	}
-
-	@Nested
-	class TestGetAllMessages {
-
-		@BeforeEach
-		void init() {
-			prepareMockServer();
-		}
-
-		@Test
-		void shouldCallRestTemplateExchange() {
-			service.getAllMessages();
-
-			mockServer.verify();
-		}
-
-		@Test
-		void shouldFillMessage() {
-			when(mapper.toPostfachNachricht(any())).thenReturn(PostfachNachrichtTestFactory.create());
-
-			var messages = service.getAllMessages();
-
-			assertThat(messages).hasSize(1).first().usingRecursiveComparison().isEqualTo(PostfachNachrichtTestFactory.create());
-		}
-
-		@Test
-		void shouldThrowExceptionIfNotConfigured() {
-			properties.setUrl(null);
-
-			assertThrows(NotConfiguredException.class, () -> service.getAllMessages());
-		}
-
-		@Test
-		void shouldHaveAttachment() {
-			var messages = Arrays.array(MessageTestFactory.create());
-			doReturn(ResponseEntity.ok().body(messages)).when(restTemplate).exchange(TEST_URL, HttpMethod.GET, null, Message[].class);
-			when(mapper.toPostfachNachricht(messages[0])).thenReturn(PostfachNachrichtTestFactory.create());
-
-			var postfachNachrichten = service.getAllMessages();
-
-			assertThat(postfachNachrichten).hasSize(1).first()
-					.extracting(PostfachNachricht::getAttachments, InstanceOfAssertFactories.LIST)
-					.hasSize(1)
-					.usingRecursiveComparison().isEqualTo(PostfachNachrichtTestFactory.ATTACHMENTS);
-		}
-
-		@Test
-		void shouldCallMapper() {
-			prepareMockServer();
-
-			service.getAllMessages().collect(Collectors.toList());
-
-			verify(mapper).toPostfachNachricht(any());
-		}
-
-		private void prepareMockServer() {
-			mockServer.expect(ExpectedCount.once(), requestTo(TEST_URL))
-					.andExpect(method(HttpMethod.GET))
-					.andRespond(withSuccess(MessageJsonReplyTestFactory.create(), MediaType.APPLICATION_JSON));
-		}
-
-	}
-
-	@Nested
-	class TestSendMessage {
-
-		private final PostfachNachricht message = PostfachNachrichtTestFactory.create();
-
-		@Test
-		void shouldCallRestTemplateExchange() {
-			prepareMockServer();
-
-			service.sendMessage(message);
-
-			mockServer.verify();
-		}
-
-		@Test
-		void shouldThrowExceptionUrlIfNotConfigured() {
-			prepareMockServer();
-
-			properties.setUrl(null);
-
-			assertThrows(NotConfiguredException.class, () -> service.sendMessage(message));
-		}
-
-		@Test
-		void shouldThrowExceptionKeyIfNotConfigured() {
-			prepareMockServer();
-
-			properties.setKey(null);
-
-			assertThrows(NotConfiguredException.class, () -> service.sendMessage(message));
-		}
-
-		@Test
-		void shouldThrowExceptionIfNoRestTemplate() {
-			ReflectionTestUtils.setField(service, "restTemplate", null);
-
-			assertThrows(NotConfiguredException.class, () -> service.sendMessage(message));
-		}
-
-		@Test
-		void shouldThrowBadRequestExceptionOnHttpClientError() {
-			prepareMockServer().andRespond(withStatus(HttpStatus.BAD_REQUEST));
-
-			assertThrows(PostfachBadRequestException.class, () -> service.sendMessage(message));
-		}
-
-		@Test
-		void shouldCallMapper() {
-			prepareMockServer();
-
-			service.sendMessage(message);
-
-			verify(mapper).toOsiMessage(any());
-		}
-
-		@Nested
-		class TestResponse {
-
-			@Test
-			void shouldThrowServerProcessExceptionOnResponseBodyFalse() {
-				prepareMockServerWithResponseBody(false);
-
-				assertThrows(OsiPostfachServerProcessException.class, () -> service.sendMessage(message));
-
-				mockServer.verify();
-			}
-
-			void prepareMockServerWithResponseBody(boolean body) {
-				mockServer.expect(ExpectedCount.once(), requestTo(TEST_URL))
-						.andExpect(method(HttpMethod.POST))
-						.andRespond(withSuccess(String.valueOf(body), MediaType.APPLICATION_JSON));
-			}
-		}
-
-		@DisplayName("rest request body")
-		@Nested
-		class TestRestRequestBody {
-
-			@Test
-			void shouldHaveVorgangIdAsSequenceNumber() {
-				var postfachNachricht = PostfachNachrichtTestFactory.create();
-				when(mapper.toOsiMessage(postfachNachricht)).thenReturn(MessageTestFactory.create());
-
-				prepareMockServer().andExpect(jsonPath("$.sequenceNumber").value(VORGANG_ID));
-
-				service.sendMessage(postfachNachricht);
-			}
-
-			@Test
-			void shouldHavePostfachIdAsNameIdentifier() {
-				var postfachNachricht = PostfachNachrichtTestFactory.create();
-				when(mapper.toOsiMessage(postfachNachricht)).thenReturn(MessageTestFactory.create());
-
-				prepareMockServer().andExpect(jsonPath("$.nameIdentifier").value(POSTFACH_ID));
-
-				service.sendMessage(postfachNachricht);
-			}
-
-			@Test
-			void shouldHaveSubject() {
-				var postfachNachricht = PostfachNachrichtTestFactory.create();
-				when(mapper.toOsiMessage(postfachNachricht)).thenReturn(MessageTestFactory.create());
-
-				prepareMockServer().andExpect(jsonPath("$.subject").value(SUBJECT));
-
-				service.sendMessage(postfachNachricht);
-			}
-
-			@Test
-			void shouldHaveMailBodyAsBody() {
-				var postfachNachricht = PostfachNachrichtTestFactory.create();
-				when(mapper.toOsiMessage(postfachNachricht)).thenReturn(MessageTestFactory.create());
-
-				prepareMockServer().andExpect(jsonPath("$.body").value(MAIL_BODY));
-
-				service.sendMessage(postfachNachricht);
-			}
-
-			@Test
-			void shouldHaveNumericReplyOptionAsReplyAction() {
-				var postfachNachricht = PostfachNachrichtTestFactory.create();
-				when(mapper.toOsiMessage(postfachNachricht)).thenReturn(MessageTestFactory.create());
-
-				prepareMockServer().andExpect(jsonPath("$.replyAction").value(REPLY_OPTION.toValue()));
-
-				service.sendMessage(postfachNachricht);
-			}
-		}
-
-		private ResponseActions prepareMockServer() {
-			var responseAction = mockServer.expect(ExpectedCount.once(), requestTo(TEST_URL))
-					.andExpect(method(HttpMethod.POST));
-
-			responseAction.andRespond(withSuccess());
-			return responseAction;
-		}
-	}
-
-	@Nested
-	class TestDeleteMessage {
-
-		private final String DELETE_URL = TEST_URL + "?messageGuid=" + MessageTestFactory.MESSAGE_ID;
-
-		@Test
-		void shouldCallRestTemplateExchange() {
-			prepareMockServer();
-
-			service.deleteMessage(MessageTestFactory.MESSAGE_ID);
-
-			mockServer.verify();
-		}
-
-		@Test
-		void shouldThrowExceptionIfNotConfigured() {
-			prepareMockServer();
-
-			properties.setUrl(null);
-
-			assertThrows(NotConfiguredException.class, () -> service.deleteMessage(MessageTestFactory.MESSAGE_ID));
-		}
-
-		private void prepareMockServer() {
-			mockServer.expect(ExpectedCount.once(), requestTo(DELETE_URL))
-					.andExpect(method(HttpMethod.DELETE))
-					.andRespond(withSuccess());
-		}
-	}
-
-	@Nested
-	class TestGetPostfach {
-
-		@Test
-		void shouldHasTyp() {
-			var postfachType = service.getPostfachType();
-
-			assertThat(postfachType).isEqualTo(OsiPostfachRemoteService.POSTFACH_TYPE);
-		}
-
-		@Test
-		void shouldAllowReplys(){
-			var isReplyAllowed = service.isReplyAllowed();
-
-			assertThat(isReplyAllowed).isTrue();
-		}
-	}
-}
\ No newline at end of file
diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachServerProcessExceptionTestFactory.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachServerProcessExceptionTestFactory.java
deleted file mode 100644
index 15e4c59..0000000
--- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachServerProcessExceptionTestFactory.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package de.ozgcloud.nachrichten.postfach.osi;
-
-public class OsiPostfachServerProcessExceptionTestFactory {
-
-	public static OsiPostfachServerProcessException create() {
-		return new OsiPostfachServerProcessException();
-	}
-
-}
-- 
GitLab