diff --git a/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleMapper.java b/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleMapper.java
index 27a381ef2169a272986b8ca8ae80df505eabfd32..04e113b811fa6ee64e0425ea799eba65d55b9d71 100644
--- a/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleMapper.java
+++ b/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleMapper.java
@@ -23,6 +23,7 @@
  */
 package de.itvsh.kop.eingangsadapter.semantik.enginebased;
 
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -33,20 +34,31 @@ import de.itvsh.kop.eingangsadapter.common.formdata.ZustaendigeStelle;
 
 @Component
 public class FormSolutionsZustaendigeStelleMapper implements FormSolutionsEngineBasedMapper {
+
 	public static final String ZUSTAENDIGE_STELLE = "zustaendigeStelle";
 
 	@Override
 	public FormData parseFormData(FormData formData) {
-		var zustaendigeStelle = ZustaendigeStelle.builder().organisationseinheitenId((String) formData.getFormData().get(ZUSTAENDIGE_STELLE)).build();
+		return formData.toBuilder()
+				.zustaendigeStelle(buildZustaendigeStelle(formData))
+				.formData(removeProcessedData(formData))
+				.build();
+	}
 
-		var cleanData = removeZustaendigeStelle(formData);
+	ZustaendigeStelle buildZustaendigeStelle(FormData formData) {
+		return ZustaendigeStelle.builder()
+				.organisationseinheitenId(getZustaenigeStelle(formData))
+				.build();
+	}
 
-		return formData.toBuilder().zustaendigeStelle(zustaendigeStelle).formData(cleanData).build();
+	private String getZustaenigeStelle(FormData formData) {
+		return (String) formData.getFormData().get(ZUSTAENDIGE_STELLE);
 	}
 
-	private Map<String, Object> removeZustaendigeStelle(FormData formData) {
-		var cleanedData = new HashMap<>(formData.getFormData());
+	Map<String, Object> removeProcessedData(FormData formData) {
+		var cleanedData = new HashMap<String, Object>(formData.getFormData());
 		cleanedData.remove(ZUSTAENDIGE_STELLE);
-		return cleanedData;
+
+		return Collections.unmodifiableMap(cleanedData);
 	}
-}
+}
\ No newline at end of file
diff --git a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleMapperTest.java b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleMapperTest.java
index c181975029e9be60b9029f013ef8b200662086ef..e50be8e0e25aef603417720faaa88639739de73f 100644
--- a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleMapperTest.java
+++ b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleMapperTest.java
@@ -26,28 +26,73 @@ package de.itvsh.kop.eingangsadapter.semantik.enginebased;
 import static de.itvsh.kop.eingangsadapter.common.formdata.ZustaendigsStelleTestFactory.*;
 import static de.itvsh.kop.eingangsadapter.semantik.enginebased.FormSolutionsZustaendigeStelleMapper.*;
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
 
+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.eingangsadapter.common.formdata.FormData;
 
 class FormSolutionsZustaendigeStelleMapperTest {
-	private FormSolutionsZustaendigeStelleMapper mapper = new FormSolutionsZustaendigeStelleMapper();
 
+	@Spy
+	private final FormSolutionsZustaendigeStelleMapper mapper = new FormSolutionsZustaendigeStelleMapper();
+
+	@DisplayName("Parse formData")
 	@Nested
-	class TestZustaendigeStelleMapping {
+	class TestParseFormData {
+
+		private final FormData formData = FormSolutionsZustaendigeStelleTestFactory.create();
+
 		@Test
-		void shouldParseOrgansisationeinheitenId() {
-			var formData = mapper.parseFormData(FormSolutionsZustaendigeStelleTestFactory.create());
+		void shouldCallBuildZustaendigeStelle() {
+			parseFormData();
 
-			assertThat(formData.getZustaendigeStelle().getOrganisationseinheitenId())
-					.isEqualTo(ORGANISATIONSEINHEIT_ID);
+			verify(mapper).buildZustaendigeStelle(formData);
 		}
 
 		@Test
-		void shouldRemove() {
-			var formData = mapper.parseFormData(FormSolutionsZustaendigeStelleTestFactory.create());
+		void shouldCallRemoveProcessedData() {
+			parseFormData();
+
+			verify(mapper).removeProcessedData(formData);
+		}
+
+		@Test
+		void shouldReturnValue() {
+			var result = parseFormData();
+
+			assertThat(result).usingRecursiveComparison().ignoringFields("zustaendigeStelle", "formData").isEqualTo(formData);
+		}
+
+		private FormData parseFormData() {
+			return mapper.parseFormData(formData);
+		}
+
+		@DisplayName("build zustaendigeStelle")
+		@Nested
+		class TestBuildZustaendigeStelle {
+
+			@Test
+			void shouldHaveOrganisationseinheitenId() {
+				var zustaendigeStelle = mapper.buildZustaendigeStelle(formData);
+
+				assertThat(zustaendigeStelle.getOrganisationseinheitenId()).isEqualTo(ORGANISATIONSEINHEIT_ID);
+			}
+		}
+
+		@DisplayName("remove processed data")
+		@Nested
+		class TestRemoveProcessedData {
+
+			@Test
+			void shouldRemoveZustaendigeStelle() {
+				var cleanedFormData = mapper.removeProcessedData(formData);
 
-			assertThat(formData.getFormData().get(ZUSTAENDIGE_STELLE)).isNull();
+				assertThat(cleanedFormData).doesNotContainKey(ZUSTAENDIGE_STELLE);
+			}
 		}
 	}
-}
+}
\ No newline at end of file
diff --git a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleTestFactory.java b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleTestFactory.java
index 222a2369f5e26ed6c2365d3168b4e3d73b4ed5da..0bc3d1f0218a61a481160821cb6d1b91f5691a53 100644
--- a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleTestFactory.java
+++ b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/FormSolutionsZustaendigeStelleTestFactory.java
@@ -30,12 +30,13 @@ import java.util.Map;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
 
 public class FormSolutionsZustaendigeStelleTestFactory {
+
 	public static FormData create() {
 		return createBuilder().build();
 	}
 
 	public static FormData.FormDataBuilder createBuilder() {
-		return FormData.builder().formData(Map.of(FormSolutionsZustaendigeStelleMapper.ZUSTAENDIGE_STELLE, ORGANISATIONSEINHEIT_ID));
+		return FormData.builder()
+				.formData(Map.of(FormSolutionsZustaendigeStelleMapper.ZUSTAENDIGE_STELLE, ORGANISATIONSEINHEIT_ID));
 	}
-
-}
+}
\ No newline at end of file