From bff7d7801f9eab0af27e0bc18f6274c4c6abbd85 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Wed, 5 Jun 2024 15:49:38 +0200
Subject: [PATCH] OZG-5690 Convert vorgang.id to UUID for xDomea export

---
 .../vorgang/VorgangHeaderTestFactory.java     |  5 +++--
 .../de/ozgcloud/alfa/vorgang/KopfCreator.java |  3 ++-
 .../alfa/vorgang/KopfCreatorTest.java         | 21 ++++++++++++++++++-
 3 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangHeaderTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangHeaderTestFactory.java
index 0eb3965d43..b557d223d8 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangHeaderTestFactory.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangHeaderTestFactory.java
@@ -23,8 +23,9 @@
  */
 package de.ozgcloud.alfa.vorgang;
 
+import static de.ozgcloud.alfa.common.TestUtils.*;
+
 import java.time.ZonedDateTime;
-import java.util.UUID;
 
 import com.thedeanda.lorem.LoremIpsum;
 
@@ -34,7 +35,7 @@ import de.ozgcloud.common.test.TestUtils;
 
 public class VorgangHeaderTestFactory {
 
-	public static final String ID = UUID.randomUUID().toString();
+	public static final String ID = createMongoDbObjectId();
 	public static final long VERSION = 42L;
 	public static final String NAME = LoremIpsum.getInstance().getWords(10);
 	public static final VorgangStatus STATUS = VorgangStatus.NEU;
diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java
index 859d57a66e..f23b06bdff 100644
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java
@@ -6,6 +6,7 @@ import java.time.ZonedDateTime;
 import org.springframework.stereotype.Component;
 
 import de.ozgcloud.alfa.common.DateConverter;
+import de.ozgcloud.alfa.common.UUIDConverter;
 import de.ozgcloud.alfa.export.XdomeaProperties;
 import de.xoev.xdomea.BehoerdenkennungType;
 import de.xoev.xdomea.Code;
@@ -29,7 +30,7 @@ class KopfCreator {
 
 	public NkAbgabeType createKopf(VorgangWithEingang vorgang) {
 		var nkAbgabeType = new NkAbgabeType();
-		nkAbgabeType.setProzessID(vorgang.getId());
+		nkAbgabeType.setProzessID(UUIDConverter.fromObjectId(vorgang.getId()));
 		nkAbgabeType.setNachrichtentyp(createNachrichtentyp());
 		nkAbgabeType.setErstellungszeitpunkt(DateConverter.toXmlGregorianCalendar(ZonedDateTime.now(ZoneOffset.UTC)));
 		nkAbgabeType.setAbsender(createAbsender(vorgang.getEingang().getZustaendigeStelle().getOrganisationseinheitenId()));
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java
index b4bbcc9156..0c72b5ad9f 100644
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java
+++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java
@@ -9,15 +9,19 @@ import java.time.ZonedDateTime;
 
 import javax.xml.datatype.XMLGregorianCalendar;
 
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.mockito.MockedStatic;
 import org.mockito.Spy;
 
 import com.thedeanda.lorem.LoremIpsum;
 
 import de.ozgcloud.alfa.common.DateConverter;
+import de.ozgcloud.alfa.common.UUIDConverter;
 import de.ozgcloud.alfa.export.XdomeaProperties;
 import de.xoev.xdomea.BehoerdenkennungType;
 import de.xoev.xdomea.Code;
@@ -43,11 +47,26 @@ class KopfCreatorTest {
 
 		static final ZonedDateTime CREATION_TIME = ZonedDateTime.now();
 
+		private MockedStatic<UUIDConverter> mockedUUIDConverter;
+
+		@BeforeEach
+		void setUpUUIDMock() {
+			mockedUUIDConverter = mockStatic(UUIDConverter.class);
+		}
+
+		@AfterEach
+		void tearDown() {
+			mockedUUIDConverter.close();
+		}
+
 		@Test
 		void shouldSetProcessId() {
+			var uuid = LoremIpsum.getInstance().getWords(1);
+			mockedUUIDConverter.when(() -> UUIDConverter.fromObjectId(VorgangHeaderTestFactory.ID)).thenReturn(uuid);
+
 			var kopf = createKopf();
 
-			assertThat(kopf.getProzessID()).isEqualTo(VorgangHeaderTestFactory.ID);
+			assertThat(kopf.getProzessID()).isEqualTo(uuid);
 		}
 
 		@Test
-- 
GitLab