From 33f2cc8daaef8ccb1901979105a12599eb89bc61 Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Wed, 7 Aug 2024 16:14:59 +0200
Subject: [PATCH] formcycle: Mock VorgangRemoteService in itcase

---
 .../formcycle/FormDataControllerITCase.java   | 40 +++++++++++++++++--
 1 file changed, 37 insertions(+), 3 deletions(-)

diff --git a/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormDataControllerITCase.java b/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormDataControllerITCase.java
index e3e878598..e33f6e6b1 100644
--- a/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormDataControllerITCase.java
+++ b/formcycle-adapter/formcycle-adapter-impl/src/test/java/de/ozgcloud/eingang/formcycle/FormDataControllerITCase.java
@@ -24,11 +24,19 @@
 package de.ozgcloud.eingang.formcycle;
 
 import static de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory.*;
+import static de.ozgcloud.eingang.formcycle.FormCycleFormHeaderTestFactory.*;
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
+import java.util.Optional;
+
+import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
 import org.springframework.boot.test.mock.mockito.MockBean;
@@ -37,10 +45,12 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.ResultActions;
 
 import de.ozgcloud.common.test.ITCase;
+import de.ozgcloud.eingang.common.formdata.FormData;
 import de.ozgcloud.eingang.common.formdata.IncomingFileGroupTestFactory;
 import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
-import de.ozgcloud.eingang.semantik.SemantikAdapter;
+import de.ozgcloud.eingang.router.VorgangRemoteService;
 import de.ozgcloud.vorgang.common.grpc.GrpcFormDataTestFactory;
+import de.ozgcloud.vorgang.vorgang.GrpcEingang;
 import de.ozgcloud.vorgang.vorgang.GrpcFormField;
 import de.ozgcloud.vorgang.vorgang.GrpcSubForm;
 import lombok.SneakyThrows;
@@ -58,17 +68,41 @@ class FormDataControllerITCase {
 	private MockMvc mockMvc;
 
 	@MockBean
-	private SemantikAdapter semantikAdapter;
+	private VorgangRemoteService vorgangRemoteService;
 
 	@Nested
 	class ReceiveFormData {
 
+		@Captor
+		private ArgumentCaptor<FormData> formDataArgumentCaptor;
+
+		@Captor
+		private ArgumentCaptor<GrpcEingang> eingangArgumentCaptor;
+
+		@Captor
+		private ArgumentCaptor<Optional<String>> organisationseinheitenIdArgumentCaptor;
+
 		@Test
 		@SneakyThrows
 		void shouldProcessSuccessful() {
 			doPostRequest().andExpect(status().isOk());
 		}
 
+		@DisplayName("should map organisationseinheitenID")
+		@Test
+		void shouldMapOrganisationseinheitenId() {
+			doPostRequest();
+
+			verify(vorgangRemoteService, times(1))
+					.createVorgang(
+							formDataArgumentCaptor.capture(),
+							eingangArgumentCaptor.capture(),
+							organisationseinheitenIdArgumentCaptor.capture()
+					);
+			var eingang = eingangArgumentCaptor.getValue();
+			assertThat(eingang.getZustaendigeStelle().getOrganisationseinheitenId()).isEqualTo(ORGANISATIONSEINHEIT_ID);
+		}
+
 		@SneakyThrows
 		private ResultActions doPostRequest() {
 			return mockMvc.perform(
@@ -76,7 +110,7 @@ class FormDataControllerITCase {
 							.file(new MockMultipartFile("formData", null, FormDataController.HTTP_TYPE_PROTOBUF, buildTestFormData()))
 							.file(IncomingFileTestFactory.asMultipartFile("representations"))
 							.file(asMultipartFile("attachments",
-									createBuilder().name(IncomingFileGroupTestFactory.VENDOR_ID_XXX + "__" + NAME).build())));
+									IncomingFileTestFactory.createBuilder().name(IncomingFileGroupTestFactory.VENDOR_ID_XXX + "__" + NAME).build())));
 		}
 	}
 
-- 
GitLab