From 31e31ba12440208af4d5ed89a669f89493bcce51 Mon Sep 17 00:00:00 2001 From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de> Date: Tue, 18 Mar 2025 19:32:08 +0100 Subject: [PATCH] use constructor injection and MockitoBean --- .../FormSolutionsEngineBasedAdapter.java | 8 ++++-- .../FormSolutionsHeaderMapper.java | 9 +++--- .../FormSolutionsAntragstellerMapperTest.java | 14 +++++----- ...FormSolutionsEngineBasedAdapterITCase.java | 28 +++++++++---------- .../FormSolutionsEngineBasedAdapterTest.java | 10 +++---- .../FormSolutionsHeaderMapperTest.java | 2 +- .../FormSolutionsHeaderTestFactory.java | 6 ++-- .../FormSolutionsPanelMapperTest.java | 9 +++--- .../IdentifierValueParserTest.java | 10 +++---- 9 files changed, 47 insertions(+), 49 deletions(-) diff --git a/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapter.java b/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapter.java index 9c23aecc..c75a80a5 100644 --- a/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapter.java +++ b/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapter.java @@ -25,12 +25,15 @@ package de.ozgcloud.eingang.semantik.enginebased.formsolutions; import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormDataUtils; import de.ozgcloud.eingang.semantik.enginebased.EngineBasedSemantikAdapter; +@Component +@RequiredArgsConstructor public class FormSolutionsEngineBasedAdapter implements EngineBasedSemantikAdapter { public static final String IDENTIFIER_KEY = "identifier"; @@ -39,8 +42,7 @@ public class FormSolutionsEngineBasedAdapter implements EngineBasedSemantikAdapt public static final String ANLIEGEN_ID = "anliegenId"; public static final String KOMMUNALVERWALTUNG_ID = "kommunalverwaltungId"; - @Autowired - private List<FormSolutionsEngineBasedMapper> mappers; + private final List<FormSolutionsEngineBasedMapper> mappers; @Override public FormData parseFormData(FormData formData) { diff --git a/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderMapper.java b/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderMapper.java index c2b0de11..622bdbf3 100644 --- a/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderMapper.java +++ b/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderMapper.java @@ -23,12 +23,13 @@ */ package de.ozgcloud.eingang.semantik.enginebased.formsolutions; -import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.*; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.ASSISTANT; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.IDENTIFIER_KEY; import java.util.Map; import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import de.ozgcloud.eingang.common.formdata.FormData; @@ -37,6 +38,7 @@ import de.ozgcloud.eingang.common.formdata.FormHeader; import de.ozgcloud.eingang.semantik.common.ServiceKontoFactory; @Component +@RequiredArgsConstructor class FormSolutionsHeaderMapper implements FormSolutionsEngineBasedMapper { static final int POSTFACH_ADDRESS_DEFAULT = 1; @@ -47,8 +49,7 @@ class FormSolutionsHeaderMapper implements FormSolutionsEngineBasedMapper { public static final String POSTKORBHANDLE = "postkorbhandle"; - @Autowired - private ServiceKontoFactory serviceKontoFactory; + private final ServiceKontoFactory serviceKontoFactory; @Override public FormData parseFormData(FormData formData) { diff --git a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsAntragstellerMapperTest.java b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsAntragstellerMapperTest.java index 768bb910..ce9ccb16 100644 --- a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsAntragstellerMapperTest.java +++ b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsAntragstellerMapperTest.java @@ -24,13 +24,15 @@ package de.ozgcloud.eingang.semantik.enginebased.formsolutions; import static de.ozgcloud.eingang.common.formdata.AntragstellerTestFactory.*; -import static de.ozgcloud.eingang.common.formdata.FormDataTestFactory.*; +import static de.ozgcloud.eingang.common.formdata.FormDataTestFactory.SIMPLE_VALUE; +import static de.ozgcloud.eingang.common.formdata.FormDataTestFactory.SIMPLE_VALUE_KEY; import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsAntragstellerMapper.*; -import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.*; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.ASSISTANT; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.IDENTIFIER_KEY; import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsPanelMapper.*; -import static org.assertj.core.api.Assertions.*; -import static org.mockito.ArgumentMatchers.*; -import static org.mockito.Mockito.*; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mockStatic; import java.util.List; import java.util.Map; @@ -43,8 +45,6 @@ import org.mockito.Spy; import de.ozgcloud.eingang.common.formdata.Antragsteller; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormDataTestFactory; -import de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsAntragstellerMapper; -import de.ozgcloud.eingang.semantik.enginebased.formsolutions.IdentifierValueParser; class FormSolutionsAntragstellerMapperTest { diff --git a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterITCase.java b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterITCase.java index d17ec9f5..b3807cdc 100644 --- a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterITCase.java +++ b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterITCase.java @@ -23,8 +23,8 @@ */ package de.ozgcloud.eingang.semantik.enginebased.formsolutions; -import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.*; -import static org.assertj.core.api.Assertions.*; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.ASSISTANT; +import static org.assertj.core.api.Assertions.assertThat; import java.io.File; import java.nio.file.Files; @@ -32,16 +32,16 @@ import java.nio.file.Path; import java.util.Map; import java.util.Optional; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.SneakyThrows; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.test.context.ActiveProfiles; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import de.ozgcloud.common.binaryfile.TempFileUtils; import de.ozgcloud.common.test.TestUtils; @@ -53,8 +53,6 @@ import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory; import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; import de.ozgcloud.eingang.semantik.SemantikAdapter; -import lombok.SneakyThrows; - @SpringBootTest @ActiveProfiles({ "local", "itcase" }) public class FormSolutionsEngineBasedAdapterITCase { @@ -62,18 +60,18 @@ public class FormSolutionsEngineBasedAdapterITCase { private static final String ZIP_CONTENT_TYPE = "application/zip"; private static final String FILE_NAME_ZIP_ATTACHMENT = "formsolutions/attachment-2files.zip"; - @MockBean + @MockitoBean private SemantikAdapter semantikAdapter; - @SpyBean + @MockitoSpyBean private FormSolutionsEngineBasedAdapter engineAdapter; - private ObjectMapper objectMapper = new ObjectMapper(); + private final ObjectMapper objectMapper = new ObjectMapper(); @Nested class TestEngineBasedAdapter { - private FormData formData = prepareTestData(); + private final FormData formData = prepareTestData(); @Test void shouldMap() { @@ -133,7 +131,7 @@ public class FormSolutionsEngineBasedAdapterITCase { void shouldMapAttachment() { var data = engineAdapter.parseFormData(formData); - assertThat(data.getAttachments().get(0)).isNotNull(); + assertThat(data.getAttachments().getFirst()).isNotNull(); assertThat(data.getNumberOfAttachments()).isEqualTo(2); } } diff --git a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterTest.java b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterTest.java index c7fbb383..d6dbd047 100644 --- a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterTest.java +++ b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsEngineBasedAdapterTest.java @@ -24,9 +24,10 @@ package de.ozgcloud.eingang.semantik.enginebased.formsolutions; import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.*; -import static org.assertj.core.api.Assertions.*; -import static org.mockito.ArgumentMatchers.*; -import static org.mockito.Mockito.*; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import java.util.Collections; import java.util.Map; @@ -42,9 +43,6 @@ import org.springframework.test.util.ReflectionTestUtils; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormDataTestFactory; -import de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsAntragstellerMapper; -import de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter; -import de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedMapper; class FormSolutionsEngineBasedAdapterTest { diff --git a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderMapperTest.java b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderMapperTest.java index 56df1f63..f6d55c0b 100644 --- a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderMapperTest.java +++ b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderMapperTest.java @@ -44,7 +44,7 @@ class FormSolutionsHeaderMapperTest { @Spy @InjectMocks - private final FormSolutionsHeaderMapper mapper = new FormSolutionsHeaderMapper(); + private FormSolutionsHeaderMapper mapper; @Mock private ServiceKontoFactory serviceKontoFactory; diff --git a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderTestFactory.java b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderTestFactory.java index a57d9179..26289225 100644 --- a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderTestFactory.java +++ b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsHeaderTestFactory.java @@ -23,14 +23,14 @@ */ package de.ozgcloud.eingang.semantik.enginebased.formsolutions; -import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.*; -import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsHeaderMapper.*; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.ASSISTANT; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.IDENTIFIER_KEY; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsHeaderMapper.TRANSACTION_ID; import java.util.Map; import java.util.UUID; import de.ozgcloud.eingang.common.formdata.FormData; -import de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsHeaderMapper; public class FormSolutionsHeaderTestFactory { diff --git a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsPanelMapperTest.java b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsPanelMapperTest.java index eea209cd..f5f140a1 100644 --- a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsPanelMapperTest.java +++ b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/FormSolutionsPanelMapperTest.java @@ -23,9 +23,9 @@ */ package de.ozgcloud.eingang.semantik.enginebased.formsolutions; -import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.*; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.ASSISTANT; import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsPanelTestFactory.*; -import static org.assertj.core.api.Assertions.*; +import static org.assertj.core.api.Assertions.assertThat; import java.util.Map; @@ -34,11 +34,10 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import de.ozgcloud.eingang.common.formdata.FormData; -import de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsPanelMapper; class FormSolutionsPanelMapperTest { - private FormSolutionsPanelMapper mapper = new FormSolutionsPanelMapper(); + private final FormSolutionsPanelMapper mapper = new FormSolutionsPanelMapper(); @Nested class TestMapping { @@ -165,7 +164,7 @@ class FormSolutionsPanelMapperTest { @Test void shouldReturnComponentList() { - var components = FormSolutionsPanelMapper.getComponentList(PANEL_LIST.get(0)); + var components = FormSolutionsPanelMapper.getComponentList(PANEL_LIST.getFirst()); assertThat(components).isEqualTo(COMPONENT_LIST); } diff --git a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/IdentifierValueParserTest.java b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/IdentifierValueParserTest.java index 5c47f250..101b1069 100644 --- a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/IdentifierValueParserTest.java +++ b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formsolutions/IdentifierValueParserTest.java @@ -24,11 +24,13 @@ package de.ozgcloud.eingang.semantik.enginebased.formsolutions; import static de.ozgcloud.eingang.common.formdata.AntragstellerTestFactory.*; -import static de.ozgcloud.eingang.common.formdata.FormDataTestFactory.*; +import static de.ozgcloud.eingang.common.formdata.FormDataTestFactory.SIMPLE_VALUE; +import static de.ozgcloud.eingang.common.formdata.FormDataTestFactory.SIMPLE_VALUE_KEY; import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsAntragstellerMapper.*; -import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.*; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.ASSISTANT; +import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapter.IDENTIFIER_KEY; import static de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsPanelMapper.*; -import static org.assertj.core.api.Assertions.*; +import static org.assertj.core.api.Assertions.assertThat; import java.util.List; import java.util.Map; @@ -37,8 +39,6 @@ import org.junit.jupiter.api.Test; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormDataTestFactory; -import de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsHeaderMapper; -import de.ozgcloud.eingang.semantik.enginebased.formsolutions.IdentifierValueParser; class IdentifierValueParserTest { -- GitLab