From b6babd90a0f0fa49473236ee9abc2452957905dc Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Mon, 17 Mar 2025 10:46:33 +0100
Subject: [PATCH] OZG-7573 implement IncomingFileMapper

---
 .../GrpcAttachmentFileTestFactory.java        | 26 ++++++++++++
 .../GrpcRepresentationFileTestFactory.java    | 21 ++++++++++
 .../forwarder/IncomingFileMapperTest.java     | 40 +++++++++++++++++++
 3 files changed, 87 insertions(+)
 create mode 100644 forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcAttachmentFileTestFactory.java
 create mode 100644 forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRepresentationFileTestFactory.java
 create mode 100644 forwarder/src/test/java/de/ozgcloud/eingang/forwarder/IncomingFileMapperTest.java

diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcAttachmentFileTestFactory.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcAttachmentFileTestFactory.java
new file mode 100644
index 000000000..431f4e0db
--- /dev/null
+++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcAttachmentFileTestFactory.java
@@ -0,0 +1,26 @@
+package de.ozgcloud.eingang.forwarder;
+
+import com.thedeanda.lorem.LoremIpsum;
+
+import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
+import de.ozgcloud.eingang.forwarding.GrpcAttachmentFile;
+import de.ozgcloud.eingang.forwarding.GrpcAttachmentFile.Builder;
+
+public class GrpcAttachmentFileTestFactory {
+
+	public static final String GROUP_NAME = LoremIpsum.getInstance().getWords(1);
+
+	public static GrpcAttachmentFile create() {
+		return createBuilder().build();
+	}
+
+	public static Builder createBuilder() {
+		return GrpcAttachmentFile.newBuilder()
+				.setGroupName(GROUP_NAME)
+				.setFileName(IncomingFileTestFactory.NAME)
+				.setContentType(IncomingFileTestFactory.CONTENT_TYPE)
+				.setVendorId(IncomingFileTestFactory.VENDOR_ID)
+				.setSize(IncomingFileTestFactory.SIZE);
+	}
+
+}
diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRepresentationFileTestFactory.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRepresentationFileTestFactory.java
new file mode 100644
index 000000000..ce7fb5406
--- /dev/null
+++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/GrpcRepresentationFileTestFactory.java
@@ -0,0 +1,21 @@
+package de.ozgcloud.eingang.forwarder;
+
+import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
+import de.ozgcloud.eingang.forwarding.GrpcRepresentationFile;
+import de.ozgcloud.eingang.forwarding.GrpcRepresentationFile.Builder;
+
+public class GrpcRepresentationFileTestFactory {
+
+	public static GrpcRepresentationFile create() {
+		return createBuilder().build();
+	}
+
+	public static Builder createBuilder() {
+		return GrpcRepresentationFile.newBuilder()
+				.setFileName(IncomingFileTestFactory.NAME)
+				.setContentType(IncomingFileTestFactory.CONTENT_TYPE)
+				.setVendorId(IncomingFileTestFactory.VENDOR_ID)
+				.setSize(IncomingFileTestFactory.SIZE);
+	}
+
+}
diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/IncomingFileMapperTest.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/IncomingFileMapperTest.java
new file mode 100644
index 000000000..940332b66
--- /dev/null
+++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/IncomingFileMapperTest.java
@@ -0,0 +1,40 @@
+package de.ozgcloud.eingang.forwarder;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
+
+import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
+
+class IncomingFileMapperTest {
+
+	private final IncomingFileMapper mapper = Mappers.getMapper(IncomingFileMapper.class);
+
+	@Nested
+	class TestFromGrpcRepresentationFile {
+		@Test
+		void shouldMapToIncomingFile() {
+			var grpcRepresentationFile = GrpcRepresentationFileTestFactory.create();
+
+			var incomingFile = mapper.fromGrpcRepresentationFile(grpcRepresentationFile);
+
+			assertThat(incomingFile).usingRecursiveComparison().ignoringFields("id", "file")
+					.isEqualTo(IncomingFileTestFactory.create());
+		}
+	}
+
+	@Nested
+	class TestFromGrpcAttachmentFile {
+		@Test
+		void shouldMapToIncomingFile() {
+			var grpcAttachmentFile = GrpcAttachmentFileTestFactory.create();
+
+			var incomingFile = mapper.fromGrpcAttachmentFile(grpcAttachmentFile);
+
+			assertThat(incomingFile).usingRecursiveComparison().ignoringFields("id", "file")
+					.isEqualTo(IncomingFileTestFactory.create());
+		}
+	}
+}
-- 
GitLab