From e15ce680c19c6fe7545d75d78dca11e8a08dff0d Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Wed, 26 Jun 2024 21:30:45 +0200
Subject: [PATCH] OZG-5835 read and pass formId

---
 .../ozgcloud/formcycle/formdata/FormData.java |  2 ++
 .../formdata/OzgCloudFormDataMapper.java      |  1 +
 .../formdata/PluginFormDataAdapter.java       |  2 +-
 .../formdata/FormDataTestFactory.java         |  3 +++
 .../formdata/OzgCloudFormDataMapperTest.java  |  7 +++++++
 .../formdata/PluginFormDataAdapterTest.java   | 21 +++++++++++--------
 6 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/src/main/java/de/ozgcloud/formcycle/formdata/FormData.java b/src/main/java/de/ozgcloud/formcycle/formdata/FormData.java
index 927d281..0f9b306 100644
--- a/src/main/java/de/ozgcloud/formcycle/formdata/FormData.java
+++ b/src/main/java/de/ozgcloud/formcycle/formdata/FormData.java
@@ -39,6 +39,8 @@ import lombok.Singular;
 public class FormData {
 
 	private final String requestId = UUID.randomUUID().toString();
+
+	private long formId;
 	private String organisationsEinheitId;
 
 	private String formName;
diff --git a/src/main/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapper.java b/src/main/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapper.java
index 5cac566..abca97a 100644
--- a/src/main/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapper.java
+++ b/src/main/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapper.java
@@ -124,6 +124,7 @@ public class OzgCloudFormDataMapper {
 	FormCycleFormHeader buildHeader(FormData formData) {
 		FormCycleFormHeader.Builder builder = FormCycleFormHeader.newBuilder()
 				.setRequestId(formData.getRequestId())
+				.setFormId(Long.toString(formData.getFormId()))
 				.setReceivedAt(ZonedDateTime.now().toString())
 				.setOrganisationsEinheitId(formData.getOrganisationsEinheitId());
 		Optional.ofNullable(formData.getFormName()).ifPresent(builder::setFormName);
diff --git a/src/main/java/de/ozgcloud/formcycle/formdata/PluginFormDataAdapter.java b/src/main/java/de/ozgcloud/formcycle/formdata/PluginFormDataAdapter.java
index 4361bf1..bbb9fbd 100644
--- a/src/main/java/de/ozgcloud/formcycle/formdata/PluginFormDataAdapter.java
+++ b/src/main/java/de/ozgcloud/formcycle/formdata/PluginFormDataAdapter.java
@@ -68,8 +68,8 @@ public class PluginFormDataAdapter {
 
 		var formFields = buildFormData();
 		Set<String> uploadFieldNames = getUploadFieldNames();
-
 		var formDataBuilder = FormData.builder()
+				.formId(environmentData.getProject().getId())
 				.formName(getFormName())
 				.organisationsEinheitId(organisationsEinheitId)
 				.fieldData(formFields)
diff --git a/src/test/java/de/ozgcloud/formcycle/formdata/FormDataTestFactory.java b/src/test/java/de/ozgcloud/formcycle/formdata/FormDataTestFactory.java
index 4365b28..7054470 100644
--- a/src/test/java/de/ozgcloud/formcycle/formdata/FormDataTestFactory.java
+++ b/src/test/java/de/ozgcloud/formcycle/formdata/FormDataTestFactory.java
@@ -30,6 +30,8 @@ import de.ozgcloud.formcycle.attachment.FormcycleAttachmentTestFactory;
 
 public class FormDataTestFactory {
 
+	public static final long FORM_ID = 1;
+	public static final String FORM_ID_STR = String.valueOf(FORM_ID);
 	public static final String FORM_NAME = "formular";
 	public static final String ORGANISATIONS_EINHEIT_ID = "12345";
 	public static final String ATTACHMENT_ID = "file.pdf";
@@ -44,6 +46,7 @@ public class FormDataTestFactory {
 
 	public static FormData.FormDataBuilder createBuilder() {
 		return FormData.builder()
+				.formId(FORM_ID)
 				.formName(FORM_NAME)
 				.organisationsEinheitId(ORGANISATIONS_EINHEIT_ID)
 				.fieldData(FIELD_DATA)
diff --git a/src/test/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapperTest.java b/src/test/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapperTest.java
index b7865e0..b3b2eb2 100644
--- a/src/test/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapperTest.java
+++ b/src/test/java/de/ozgcloud/formcycle/formdata/OzgCloudFormDataMapperTest.java
@@ -366,6 +366,13 @@ class OzgCloudFormDataMapperTest {
 			assertThat(ozgFormDataHeader.getReceivedAt()).isNotNull();
 		}
 
+		@Test
+		void shouldSetFormId() {
+			var ozgFormDataHeader = mapper.buildHeader(formData);
+
+			assertThat(ozgFormDataHeader.getFormId()).isEqualTo(FORM_ID_STR);
+		}
+
 		@Test
 		void shouldSetFormName() {
 			var ozgFormDataHeader = mapper.buildHeader(formData);
diff --git a/src/test/java/de/ozgcloud/formcycle/formdata/PluginFormDataAdapterTest.java b/src/test/java/de/ozgcloud/formcycle/formdata/PluginFormDataAdapterTest.java
index 8343e16..0b45353 100644
--- a/src/test/java/de/ozgcloud/formcycle/formdata/PluginFormDataAdapterTest.java
+++ b/src/test/java/de/ozgcloud/formcycle/formdata/PluginFormDataAdapterTest.java
@@ -81,6 +81,9 @@ class PluginFormDataAdapterTest {
 		private static final String UPLOAD_FIELD_NAME = "upload";
 		private final String ATTACHMENT_UUID = UUID.randomUUID().toString();
 
+		@Mock
+		private Projekt project;
+
 		private FormNode formNode = FormNodeTestFactory.create();
 
 		@BeforeEach
@@ -92,6 +95,8 @@ class PluginFormDataAdapterTest {
 			doReturn(Set.of(FormDataTestFactory.ATTACHMENT_ID)).when(adapter).getAttachmentNames(any());
 			doReturn(Set.of(ATTACHMENT_UUID)).when(adapter).getAttachmentUuids(any());
 			doNothing().when(adapter).addServiceKonto(any());
+			when(project.getId()).thenReturn(FormDataTestFactory.FORM_ID);
+			when(environmentData.getProject()).thenReturn(project);
 		}
 
 		@Test
@@ -108,6 +113,13 @@ class PluginFormDataAdapterTest {
 			verify(adapter).getUploadFieldNames();
 		}
 
+		@Test
+		void shouldSetFormId() {
+			var result = adapter.readFormData();
+
+			assertThat(result.getFormId()).isEqualTo(FormDataTestFactory.FORM_ID);
+		}
+
 		@Test
 		void shouldSetFormName() {
 			var result = adapter.readFormData();
@@ -358,15 +370,6 @@ class PluginFormDataAdapterTest {
 		@Mock
 		private FormFieldMetaData formFieldMetaData;
 
-		private Map<String, Map<String, String>> valueOptionsMap = Map.of(PluginDataTestFactory.FIELD_VALUE,
-				Map.of(PluginFormDataAdapter.TEXT_KEY, PluginDataTestFactory.TEXT_MAP_VALUE));
-
-		@BeforeEach
-		void setup() {
-			//			when(formFieldMetaData.getType()).thenReturn(EFormFieldTyp.SELECT);
-			//			when(formDataAdapter.getFieldMetaData(anyString(), anyBoolean())).thenReturn(formFieldMetaData);
-		}
-
 		@DisplayName("should return input when")
 		@ParameterizedTest(name = "value = \"{0}\"")
 		@NullAndEmptySource
-- 
GitLab