From c5fbbeb5633dd86c73abb08485e8eaef63ca6ee2 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 19 Feb 2024 11:57:46 +0100
Subject: [PATCH] OZG-4713 OZG-4927 implement logic for building Akteur in
 xdomea modul

---
 .../historie/VorgangChangeTestFactory.java    |  3 +-
 .../alfa/historie/ExportHistorieService.java  |  6 +++-
 .../historie/ExportHistorieServiceTest.java   | 36 ++++++++++++++++---
 3 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/VorgangChangeTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/VorgangChangeTestFactory.java
index 863a71bc21..c94cae7b27 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/VorgangChangeTestFactory.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/VorgangChangeTestFactory.java
@@ -23,7 +23,8 @@ class VorgangChangeTestFactory {
 				.valueAfterChange(VALUE_AFTER_CHANGE)
 				.createdByName(CREATED_BY_NAME)
 				.finishedAt(FINISHED_AT)
-				.order(ORDER);
+				.order(ORDER)
+				.organisationseinheitenId(ORGANISATIONSEINHEITEN_ID);
 	}
 
 }
diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/historie/ExportHistorieService.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/historie/ExportHistorieService.java
index c51b29f6f8..00aad71b66 100644
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/historie/ExportHistorieService.java
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/historie/ExportHistorieService.java
@@ -29,10 +29,14 @@ public class ExportHistorieService {
 		var historienProtokollInformationType = new HistorienProtokollInformationType();
 		historienProtokollInformationType.setMetadatumAlterWert(vorgangChange.getValueBeforeChange());
 		historienProtokollInformationType.setMetadatumNeuerWert(vorgangChange.getValueAfterChange());
-		historienProtokollInformationType.setAkteur(vorgangChange.getCreatedByName());
+		historienProtokollInformationType.setAkteur(createAkteur(vorgangChange));
 		historienProtokollInformationType.setDatumUhrzeit(DateConverter.toXmlGregorianCalendar(vorgangChange.getFinishedAt()));
 		historienProtokollInformationType.setAktion(vorgangChange.getOrder().name());
 		return historienProtokollInformationType;
 	}
 
+	String createAkteur(VorgangChange vorgangChange) {
+		return vorgangChange.getCreatedByName() + "; " + vorgangChange.getOrganisationseinheitenId();
+	}
+
 }
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/historie/ExportHistorieServiceTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/historie/ExportHistorieServiceTest.java
index 0b0a6f022a..965cb03cce 100644
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/historie/ExportHistorieServiceTest.java
+++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/historie/ExportHistorieServiceTest.java
@@ -98,40 +98,66 @@ class ExportHistorieServiceTest {
 	@Nested
 	class TestCreateHistorienProtokollInformationType {
 
+		private final VorgangChange vorgangChange = VorgangChangeTestFactory.create();
+
+		@BeforeEach
+		void setUp() {
+			doReturn(VorgangChangeTestFactory.CREATED_BY_NAME).when(service).createAkteur(vorgangChange);
+		}
+
 		@Test
 		void shouldHaveAlterWert() {
-			var created = service.createHistorienProtokollInformationType(VorgangChangeTestFactory.create());
+			var created = service.createHistorienProtokollInformationType(vorgangChange);
 
 			assertThat(created.getMetadatumAlterWert()).isEqualTo(VorgangChangeTestFactory.VALUE_BEFORE_CHANGE);
 		}
 
 		@Test
 		void shouldHaveNeuerWert() {
-			var created = service.createHistorienProtokollInformationType(VorgangChangeTestFactory.create());
+			var created = service.createHistorienProtokollInformationType(vorgangChange);
 
 			assertThat(created.getMetadatumNeuerWert()).isEqualTo(VorgangChangeTestFactory.VALUE_AFTER_CHANGE);
 		}
 
 		@Test
 		void shouldHaveAkteur() {
-			var created = service.createHistorienProtokollInformationType(VorgangChangeTestFactory.create());
+			var created = service.createHistorienProtokollInformationType(vorgangChange);
 
 			assertThat(created.getAkteur()).isEqualTo(VorgangChangeTestFactory.CREATED_BY_NAME);
 		}
 
 		@Test
 		void shouldHaveDatumUhrzeit() {
-			var created = service.createHistorienProtokollInformationType(VorgangChangeTestFactory.create());
+			var created = service.createHistorienProtokollInformationType(vorgangChange);
 
 			assertThat(created.getDatumUhrzeit()).isEqualTo(DateConverter.toXmlGregorianCalendar(VorgangChangeTestFactory.FINISHED_AT));
 		}
 
 		@Test
 		void shouldHaveAktion() {
-			var created = service.createHistorienProtokollInformationType(VorgangChangeTestFactory.create());
+			var created = service.createHistorienProtokollInformationType(vorgangChange);
 
 			assertThat(created.getAktion()).isEqualTo(VorgangChangeTestFactory.ORDER.name());
 		}
+
+		@Test
+		void shouldCreateAkteur() {
+			service.createHistorienProtokollInformationType(vorgangChange);
+
+			verify(service).createAkteur(vorgangChange);
+		}
+	}
+
+	@Nested
+	class TestCreateAkteur {
+
+		@Test
+		void shouldReturnAkteur() {
+			var akteur = service.createAkteur(VorgangChangeTestFactory.create());
+
+			assertThat(akteur).isEqualTo(
+					String.format("%s; %s", VorgangChangeTestFactory.CREATED_BY_NAME, VorgangChangeTestFactory.ORGANISATIONSEINHEITEN_ID));
+		}
 	}
 
 }
\ No newline at end of file
-- 
GitLab