From c74bb0c620ba9d1f02f7640c0fc76690e07421b8 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 27 Oct 2022 10:33:19 +0200
Subject: [PATCH] =?UTF-8?q?OZG-2737=20JustIdBuilder=20in=20IDBuilder=20umb?=
 =?UTF-8?q?enannt,=20Test=20hinzugef=C3=BCgt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../{JustIdBuilder.java => IdBuilder.java}    |  4 +--
 .../de/itvsh/goofy/common/LinkedResource.java |  2 +-
 .../common/LinkedUserProfileResource.java     |  2 +-
 .../de/itvsh/goofy/common/IdBuilderTest.java  | 36 +++++++++++++++++++
 4 files changed, 40 insertions(+), 4 deletions(-)
 rename goofy-server/src/main/java/de/itvsh/goofy/common/{JustIdBuilder.java => IdBuilder.java} (77%)
 create mode 100644 goofy-server/src/test/java/de/itvsh/goofy/common/IdBuilderTest.java

diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/JustIdBuilder.java b/goofy-server/src/main/java/de/itvsh/goofy/common/IdBuilder.java
similarity index 77%
rename from goofy-server/src/main/java/de/itvsh/goofy/common/JustIdBuilder.java
rename to goofy-server/src/main/java/de/itvsh/goofy/common/IdBuilder.java
index 22a2a867ea..5e909436a5 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/common/JustIdBuilder.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/common/IdBuilder.java
@@ -5,7 +5,7 @@ import com.fasterxml.jackson.databind.BeanProperty;
 import lombok.NoArgsConstructor;
 
 @NoArgsConstructor
-class JustIdBuilder implements ObjectBuilder<Object> {
+class IdBuilder implements ObjectBuilder<Object> {
 
 	@Override
 	public Object build(Object id) {
@@ -14,6 +14,6 @@ class JustIdBuilder implements ObjectBuilder<Object> {
 
 	@Override
 	public ObjectBuilder<Object> constructContextAware(BeanProperty property) {
-		return new JustIdBuilder();
+		return new IdBuilder();
 	}
 }
diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/LinkedResource.java b/goofy-server/src/main/java/de/itvsh/goofy/common/LinkedResource.java
index 1309ff5f8d..fab134f6f0 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/common/LinkedResource.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/common/LinkedResource.java
@@ -23,5 +23,5 @@ public @interface LinkedResource {
 
 	Class<? extends IdExtractor<Object>> extractor() default ToStringExtractor.class;
 
-	Class<? extends ObjectBuilder<Object>> builder() default JustIdBuilder.class;
+	Class<? extends ObjectBuilder<Object>> builder() default IdBuilder.class;
 }
\ No newline at end of file
diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/LinkedUserProfileResource.java b/goofy-server/src/main/java/de/itvsh/goofy/common/LinkedUserProfileResource.java
index 3a7b2c0a3b..0eb257fcd5 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/common/LinkedUserProfileResource.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/common/LinkedUserProfileResource.java
@@ -22,5 +22,5 @@ public @interface LinkedUserProfileResource {
 
 	default ToStringExtractor.class;
 
-	Class<? extends ObjectBuilder<Object>> builder() default JustIdBuilder.class;
+	Class<? extends ObjectBuilder<Object>> builder() default IdBuilder.class;
 }
diff --git a/goofy-server/src/test/java/de/itvsh/goofy/common/IdBuilderTest.java b/goofy-server/src/test/java/de/itvsh/goofy/common/IdBuilderTest.java
new file mode 100644
index 0000000000..f1b9a0aa23
--- /dev/null
+++ b/goofy-server/src/test/java/de/itvsh/goofy/common/IdBuilderTest.java
@@ -0,0 +1,36 @@
+package de.itvsh.goofy.common;
+
+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 com.fasterxml.jackson.databind.BeanProperty;
+
+class IdBuilderTest {
+
+	@DisplayName("Test building ID when deserializing linked resources")
+	@Nested
+	class TestBuilingId {
+		private static final String ID = "id";
+
+		@Test
+		void shouldBuildId() {
+			IdBuilder idBuilder = new IdBuilder();
+
+			var idObject = idBuilder.build(ID);
+
+			assertThat(idObject).isInstanceOf(Object.class).asString().isEqualTo(ID);
+		}
+
+		@Test
+		void shouldCreateObjectBuilder() {
+			BeanProperty property = mock(BeanProperty.class);
+			ObjectBuilder<Object> idBuilder = new IdBuilder().constructContextAware(property);
+
+			assertThat(idBuilder).isNotNull();
+		}
+	}
+}
-- 
GitLab