From 07bcc9dd7a5aedbcf5650b1d7e96eb0af81bd873 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 27 Jun 2022 16:19:41 +0200
Subject: [PATCH] OZG-1513 adjust CommandBodyMapper -> map Enum as
 *enum*.name()

---
 .../de/itvsh/goofy/common/command/CommandBodyMapper.java | 9 ++++++++-
 .../goofy/common/command/CommandBodyMapperTest.java      | 6 +++---
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/command/CommandBodyMapper.java b/goofy-server/src/main/java/de/itvsh/goofy/common/command/CommandBodyMapper.java
index 906f065fd3..703a17d43d 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/common/command/CommandBodyMapper.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/common/command/CommandBodyMapper.java
@@ -29,7 +29,14 @@ public interface CommandBodyMapper {
 		return new BeanMap(object).entrySet().stream()
 				.filter(HAS_NOT_NULL_VALUE)
 				.filter(IS_NOT_CLASS_VALUE)
-				.collect(Collectors.toMap(entry -> entry.getKey().toString(), Entry::getValue));
+				.collect(Collectors.toMap(entry -> entry.getKey().toString(), this::checkEnumValue));
+	}
+
+	private Object checkEnumValue(Entry<Object, Object> entry) {
+		if (entry.getValue() instanceof Enum<?> enumValue) {
+			return enumValue.name();
+		}
+		return entry.getValue();
 	}
 
 	default GrpcCommandBody mapToBody(Map<String, String> bodyMap) {
diff --git a/goofy-server/src/test/java/de/itvsh/goofy/common/command/CommandBodyMapperTest.java b/goofy-server/src/test/java/de/itvsh/goofy/common/command/CommandBodyMapperTest.java
index 89440b4774..13d0d22456 100644
--- a/goofy-server/src/test/java/de/itvsh/goofy/common/command/CommandBodyMapperTest.java
+++ b/goofy-server/src/test/java/de/itvsh/goofy/common/command/CommandBodyMapperTest.java
@@ -52,7 +52,7 @@ class CommandBodyMapperTest {
 			assertThat(mappedMap)
 					.hasSize(4)
 					.doesNotContainKey("status")
-					.containsEntry("order", CommandTestFactory.ORDER)
+					.containsEntry("order", CommandTestFactory.ORDER.name())
 					.containsEntry("relationId", CommandTestFactory.RELATION_ID)
 					.containsEntry("vorgangId", CommandTestFactory.VORGANG_ID);
 		}
@@ -65,8 +65,8 @@ class CommandBodyMapperTest {
 
 			assertThat(mappedMap)
 					.hasSize(5)
-					.containsEntry("status", CommandTestFactory.STATUS)
-					.containsEntry("order", CommandTestFactory.ORDER)
+					.containsEntry("status", CommandTestFactory.STATUS.name())
+					.containsEntry("order", CommandTestFactory.ORDER.name())
 					.containsEntry("relationId", CommandTestFactory.RELATION_ID)
 					.containsEntry("vorgangId", CommandTestFactory.VORGANG_ID);
 		}
-- 
GitLab