From d1dc4f0f46aff0e0b55470017a7deafab107ed56 Mon Sep 17 00:00:00 2001 From: Krzysztof Witukiewicz <krzysztof.witukiewicz@mgm-tp.com> Date: Mon, 24 Feb 2025 15:45:15 +0100 Subject: [PATCH] OZG-3936 OZG-7793 Fix unit tests --- .../LinkedUserProfileResourceSerializer.java | 18 ++++++++++++++---- ...inkedUserProfileResourceSerializerTest.java | 16 ++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializer.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializer.java index 582ad419b2..c5d25a7dc0 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializer.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializer.java @@ -37,19 +37,28 @@ import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.ContextualSerializer; +import de.ozgcloud.alfa.common.user.UserManagerProperties; import de.ozgcloud.alfa.common.user.UserManagerUrlProvider; import de.ozgcloud.common.errorhandling.TechnicalException; -import lombok.RequiredArgsConstructor; @Component -@RequiredArgsConstructor public class LinkedUserProfileResourceSerializer extends JsonSerializer<Object> implements ContextualSerializer { private final UserManagerUrlProvider userManagerUrlProvider; private LinkedUserProfileResource annotation; - static LinkedUserProfileResourceSerializer createForAnnotatedField(UserManagerUrlProvider userManagerUrlProvider, LinkedUserProfileResource annotation) { + // for usage outside of Spring + private LinkedUserProfileResourceSerializer() { + this.userManagerUrlProvider = new UserManagerUrlProvider(new UserManagerProperties()); + } + + public LinkedUserProfileResourceSerializer(UserManagerUrlProvider userManagerUrlProvider) { + this.userManagerUrlProvider = userManagerUrlProvider; + } + + static LinkedUserProfileResourceSerializer createForAnnotatedField(UserManagerUrlProvider userManagerUrlProvider, + LinkedUserProfileResource annotation) { var serializer = new LinkedUserProfileResourceSerializer(userManagerUrlProvider); serializer.annotation = annotation; return serializer; @@ -57,7 +66,8 @@ public class LinkedUserProfileResourceSerializer extends JsonSerializer<Object> @Override public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) { - return LinkedUserProfileResourceSerializer.createForAnnotatedField(userManagerUrlProvider, property.getAnnotation(LinkedUserProfileResource.class)); + return LinkedUserProfileResourceSerializer.createForAnnotatedField(userManagerUrlProvider, + property.getAnnotation(LinkedUserProfileResource.class)); } @Override diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializerTest.java index 31f1031218..683ce44762 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializerTest.java @@ -14,10 +14,12 @@ import org.mockito.Captor; import org.mockito.Mock; import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializerProvider; import de.ozgcloud.alfa.common.user.UserId; import de.ozgcloud.alfa.common.user.UserManagerUrlProvider; +import de.ozgcloud.alfa.common.user.UserProfileTestFactory; import lombok.SneakyThrows; class LinkedUserProfileResourceSerializerTest { @@ -158,6 +160,20 @@ class LinkedUserProfileResourceSerializerTest { } } + @Nested + class OnCreatedImplicitlyByObjectMapper { + + @SneakyThrows + @Test + void shouldSerializeToString() { + var objectMapper = new ObjectMapper(); + + var serialized = objectMapper.writeValueAsString(new LinkedUserProfileResourceTestObject(UserProfileTestFactory.ID)); + + assertThat(serialized).isEqualTo("{\"id\":\"" + UserProfileTestFactory.ID.toString() + "\"}"); + } + } + @SneakyThrows private void serializeSingleValue() { serializer.serialize(USER_ID, generator, serializerProvider); -- GitLab