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 22a2a867ead640f3c4f1c8834dc1be2fbb39c03e..5e909436a576ed01f8caf18214935badb3f9aad9 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 1309ff5f8d86c8a3e556afa5cc9decd54ed299de..fab134f6f0b6776cd9d4e498c1dac1bda03ef9ba 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 3a7b2c0a3b0858b2be860a59e19855b53e67f5b4..0eb257fcd5fbf02d84f840cc09d373086632cfb0 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 0000000000000000000000000000000000000000..f1b9a0aa23219d9f2dc159fc62999542e3b08a5b --- /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(); + } + } +}