diff --git a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapperTest.java b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapperTest.java index bc88f739b6302c289de38aab59c77ce25c511581..928aed3a3b980b7f150dc07ef596f3b84e5ca8fe 100644 --- a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapperTest.java +++ b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapperTest.java @@ -28,16 +28,19 @@ import static de.itvsh.kop.eingangsadapter.formsolutions.FormSolutionsFilesTestF import static de.itvsh.kop.eingangsadapter.formsolutions.FormSolutionsRepresentationsMapper.*; import static org.assertj.core.api.Assertions.*; +import java.io.File; import java.util.List; import java.util.Map; -import java.util.Optional; +import org.junit.jupiter.api.AfterEach; +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.Spy; import de.itvsh.kop.common.test.TestUtils; +import de.itvsh.kop.eingangsadapter.common.file.TempFileUtils; import de.itvsh.kop.eingangsadapter.common.formdata.FormSolutionsTestFactory; import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFile; import lombok.SneakyThrows; @@ -47,6 +50,18 @@ class FormSolutionsRepresentationsMapperTest { @Spy private FormSolutionsRepresentationsMapper mapper = new FormSolutionsRepresentationsMapper(); + private File simpleJsonFile; + + @BeforeEach + void writeJsonFile() { + simpleJsonFile = TempFileUtils.writeTmpFile(SIMPLE_JSON_DATA); + } + + @AfterEach + void delJsonFile() { + simpleJsonFile.delete(); + } + @DisplayName("Map representations") @Nested class TestMapRepresentations { @@ -85,7 +100,7 @@ class FormSolutionsRepresentationsMapperTest { } private IncomingFile mapRepresentationPdf() { - return mapRepresentation(JSON_CONTENT).get(0); + return mapRepresentation().get(0); } } @@ -95,7 +110,7 @@ class FormSolutionsRepresentationsMapperTest { @Test void shouldHaveSize() { - var map = mapRepresentation(SIMPLE_JSON_DATA); + var map = mapRepresentation(); assertThat(map).hasSize(2); } @@ -133,21 +148,20 @@ class FormSolutionsRepresentationsMapperTest { @Test void shouldParseJsonOnly() { var map = mapper.mapRepresentations( - FormSolutionsFilesTestFactory.createBuilder().formData(Map.of()) - .build().getFormData(), - Optional.of(SIMPLE_JSON_DATA)); + FormSolutionsFilesTestFactory.createBuilder().formData(Map.of()).build().getFormData(), + simpleJsonFile); assertThat(map).hasSize(1); assertThat(map.get(0).getContentType()).isEqualTo(JSON_CONTENT_TYPE); } private IncomingFile mapRepresentationJson() { - return mapRepresentation(SIMPLE_JSON_DATA).get(1); + return mapRepresentation().get(1); } } - private List<IncomingFile> mapRepresentation(String content) { - return mapper.mapRepresentations(REPRESENTATIONS.getFormData(), Optional.of(content)); + private List<IncomingFile> mapRepresentation() { + return mapper.mapRepresentations(REPRESENTATIONS.getFormData(), simpleJsonFile); } } diff --git a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRequestMapperITCase.java b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRequestMapperITCase.java index f0a012b1d513e3f72f917dcd923d85ccf85ffd34..68b8319759d08b52c1adaab23f3f9abaebbf6ade 100644 --- a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRequestMapperITCase.java +++ b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRequestMapperITCase.java @@ -36,6 +36,7 @@ import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.test.context.ActiveProfiles; import de.itvsh.kop.common.test.TestUtils; +import de.itvsh.kop.eingangsadapter.common.file.TempFileUtils; import de.itvsh.kop.eingangsadapter.common.formdata.FormData; import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFile; import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFileGroup; @@ -202,6 +203,9 @@ class FormSolutionsRequestMapperITCase { } private FormData parseRequestData(String json) { - return mapper.map(json); + var file = TempFileUtils.writeTmpFile(json); + var result = mapper.map(file); + file.delete(); + return result; } } diff --git a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRequestMapperTest.java b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRequestMapperTest.java index e96b8cdc0fa2629fdb2d44b2de65412db61caae5..4c8f7428ed245913a44409b37312f9222e0c0001 100644 --- a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRequestMapperTest.java +++ b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRequestMapperTest.java @@ -30,10 +30,12 @@ import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.io.File; +import java.io.InputStream; import java.util.List; import java.util.Map; -import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -51,6 +53,7 @@ import de.itvsh.kop.common.errorhandling.TechnicalException; import de.itvsh.kop.eingangsadapter.common.file.TempFileUtils; import de.itvsh.kop.eingangsadapter.common.formdata.FormDataTestFactory; import de.itvsh.kop.eingangsadapter.semantik.enginebased.FilesMapperHelper; +import lombok.SneakyThrows; class FormSolutionsRequestMapperTest { @@ -73,54 +76,72 @@ class FormSolutionsRequestMapperTest { @Spy private ObjectMapper objectMapper = new ObjectMapper(); + private File simpleJsonFile; + private File nestedComponenetJsonFile; + + @BeforeEach + void writeJsonFile() { + simpleJsonFile = TempFileUtils.writeTmpFile(SIMPLE_JSON_DATA); + nestedComponenetJsonFile = TempFileUtils.writeTmpFile(NESTED_COMPONENTS_JSON); + } + + @AfterEach + void delJsonFile() { + simpleJsonFile.delete(); + nestedComponenetJsonFile.delete(); + } + @Nested class TestJsonToMapMapping { + @Test void shouldMap() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat(dataMap).isNotNull(); } @Test void shouldContainZustaendigeStelle() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat((String) dataMap.get(ZUSTAENDIGE_STELLE)).isEqualTo(ORGANISATIONSEINHEITEN_ID); } @Test void shouldContainsPostfachId() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat((String) dataMap.get(POSTKORBHANDLE)).isEqualTo(POSTFACH_ID); } @Test void shouldContainRequestId() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat((String) dataMap.get(TRANSACTION_ID)).isEqualTo(FORM_ID_VALUE); } @Test void shouldContainAssitant() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat(dataMap.get(ASSISTANT)).isNotNull(); } @Test + @SneakyThrows void shouldHandleJsonException() throws JsonMappingException, JsonProcessingException { - doThrow(JsonProcessingException.class).when(objectMapper).readValue(anyString(), Mockito.<TypeReference<Map<String, Object>>>any()); + doThrow(JsonProcessingException.class).when(objectMapper).readValue(any(InputStream.class), + Mockito.<TypeReference<Map<String, Object>>>any()); - assertThatThrownBy(() -> mapper.mapFormData(SIMPLE_JSON_DATA)).isInstanceOf(TechnicalException.class); + assertThatThrownBy(() -> mapper.mapFormData(simpleJsonFile)).isInstanceOf(TechnicalException.class); } @Test @SuppressWarnings("unchecked") void shouldContainFormIdentifier() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat((String) ((Map<String, Object>) dataMap.get(ASSISTANT)) .get(IDENTIFIER)) @@ -131,28 +152,28 @@ class FormSolutionsRequestMapperTest { class TestPanels { @Test void shouldContainPanels() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat(getPanels(dataMap)).isNotNull(); } @Test void shouldContainPanelIdentifier() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat(getPanels(dataMap).get(0)).containsEntry(IDENTIFIER, PANEL_ID); } @Test void shouldContainPanelComponets() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat(getPanels(dataMap).get(0).get(COMPONENTS)).isNotNull(); } @Test void shouldContainTextComponets() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat(getComponents(dataMap).get(0)) .containsEntry(IDENTIFIER, COMPONENT_ID) @@ -161,7 +182,7 @@ class FormSolutionsRequestMapperTest { @Test void shouldContainDateComponets() { - var dataMap = mapper.mapFormData(SIMPLE_JSON_DATA); + var dataMap = mapper.mapFormData(simpleJsonFile); assertThat(getComponents(dataMap).get(1)) .containsEntry(IDENTIFIER, DATE_COMPONENT_ID) @@ -172,14 +193,14 @@ class FormSolutionsRequestMapperTest { class TestNestedPanels { @Test void shouldContainGroup() { - var dataMap = mapper.mapFormData(NESTED_COMPONENTS_JSON); + var dataMap = mapper.mapFormData(nestedComponenetJsonFile); assertThat(getComponents(dataMap).get(0)).containsEntry(IDENTIFIER, OBJEKTGRUPPE_0); } @Test void shouldContainDateField() { - var dataMap = mapper.mapFormData(NESTED_COMPONENTS_JSON); + var dataMap = mapper.mapFormData(nestedComponenetJsonFile); assertThat(getNestedComponents(dataMap).get(0)) .containsEntry(IDENTIFIER, DATE_COMPONENT_ID) @@ -210,9 +231,14 @@ class FormSolutionsRequestMapperTest { @Nested class TestMapFiles { - private File jsonFile = TempFileUtils.writeTmpFile(ATTACHMENTS_JSON); + private File jsonFile; + + @BeforeEach + void writeJsonFile() { + jsonFile = TempFileUtils.writeTmpFile(ATTACHMENTS_JSON); + } - @AfterAll + @AfterEach void deleteTempFile() { jsonFile.delete(); } @@ -236,7 +262,7 @@ class FormSolutionsRequestMapperTest { void shouldCallRepresentationMapper() { mapper.mapFiles(FormDataTestFactory.create(), jsonFile); - verify(representationsMapper).mapRepresentations(Mockito.<Map<String, Object>>any(), jsonFile); + verify(representationsMapper).mapRepresentations(Mockito.<Map<String, Object>>any(), eq(jsonFile)); } @Test diff --git a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpointTest.java b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpointTest.java index 44bb1e51496903582f8928cd5e37318fb5af3f51..2639fdb6a3f1c4ea642001f007f68f35b87b4ba8 100644 --- a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpointTest.java +++ b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpointTest.java @@ -27,10 +27,14 @@ import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; +import java.io.File; + 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.ArgumentCaptor; +import org.mockito.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; @@ -57,6 +61,9 @@ class SendFormEndpointTest { private final FormData formData = FormDataTestFactory.create(); + @Captor + private ArgumentCaptor<File> fileCaptor; + private static final Request REQUEST = new Request(); static { REQUEST.setJSON(FormSolutionsTestFactory.SIMPLE_JSON_DATA); @@ -71,7 +78,8 @@ class SendFormEndpointTest { void shouldCallRequestMapper() { receiveForm(); - verify(requestMapper).map(FormSolutionsTestFactory.SIMPLE_JSON_DATA); + verify(requestMapper).map(fileCaptor.capture()); + assertThat(fileCaptor.getValue()).content().isEqualTo(FormSolutionsTestFactory.SIMPLE_JSON_DATA); } @Test