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 e3e878598707b5d02b85d7ef618ebd3b1f3b8cec..e33f6e6b1c11e6f39294c67664bd0272371e0e93 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()))); } }