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