From cc6c26c691c54f961c4bc30e098ab74701c69c4c Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 5 Aug 2024 06:58:23 +0200
Subject: [PATCH] OZG-6259 get original vorgang

---
 .../vorgang/vorgang/VorgangService.java       | 10 +++--
 .../vorgang/vorgang/VorgangServiceTest.java   | 42 +++++++++++++++++++
 2 files changed, 49 insertions(+), 3 deletions(-)

diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java
index 4e6b37051..47477d08a 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java
@@ -170,9 +170,8 @@ public class VorgangService {
 		return addLabels(loaded);
 	}
 
-	public void setAktenzeichen(Command command) {
-		var aktenzeichen = StringUtils.trimToNull(MapUtils.getString(command.getBodyObject(), BODY_OBJECT_AKTENZEICHEN));
-		repository.setAktenzeichen(command.getVorgangId(), command.getRelationVersion(), aktenzeichen);
+	public Vorgang getOriginalVorgangById(String vorgangId) {
+		return removeUnpermittedClientAttributes(loadById(vorgangId));
 	}
 
 	Vorgang removeUnpermittedClientAttributes(Vorgang vorgang) {
@@ -199,6 +198,11 @@ public class VorgangService {
 		return Pair.of(entry.getKey(), resultAttributeMap);
 	}
 
+	public void setAktenzeichen(Command command) {
+		var aktenzeichen = StringUtils.trimToNull(MapUtils.getString(command.getBodyObject(), BODY_OBJECT_AKTENZEICHEN));
+		repository.setAktenzeichen(command.getVorgangId(), command.getRelationVersion(), aktenzeichen);
+	}
+
 	public void assignToUser(Command command) {
 		var patch = Map.<String, Object>of(Vorgang.MONGODB_FIELDNAME_ASSIGNED_TO, command.getBody().get(BODY_ASSIGNED_TO_FIELD));
 
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java
index d23a82274..2a2545118 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java
@@ -551,6 +551,48 @@ class VorgangServiceTest {
 		}
 	}
 
+	@Nested
+	class TestGetOriginalVorgangById {
+
+		private final static Vorgang VORGANG = VorgangTestFactory.create();
+
+		@BeforeEach
+		void init() {
+			doReturn(VORGANG).when(service).loadById(anyString());
+		}
+
+		@Test
+		void shouldCallLoadById() {
+			service.getOriginalVorgangById(VorgangTestFactory.ID);
+
+			verify(service).loadById(VorgangTestFactory.ID);
+		}
+
+		@Test
+		void shouldCallRemoveUnpermittedClientAttributes() {
+			service.getOriginalVorgangById(VorgangTestFactory.ID);
+
+			verify(service).removeUnpermittedClientAttributes(VORGANG);
+		}
+
+		@Test
+		void shouldNotModifyLabels() {
+			service.getOriginalVorgangById(VorgangTestFactory.ID);
+
+			verifyNoInteractions(kopControlDataMapper);
+		}
+
+		@Test
+		void shouldReturnVorgang() {
+			var cleanedVorgang = VorgangTestFactory.create();
+			doReturn(cleanedVorgang).when(service).removeUnpermittedClientAttributes(any());
+
+			var result = service.getOriginalVorgangById(VorgangTestFactory.ID);
+
+			assertThat(result).isSameAs(cleanedVorgang);
+		}
+	}
+
 	@Nested
 	class TestAssignToUser {
 
-- 
GitLab