Skip to content
Snippets Groups Projects
Commit d1dc4f0f authored by Krzysztof Witukiewicz's avatar Krzysztof Witukiewicz
Browse files

OZG-3936 OZG-7793 Fix unit tests

parent f679f39a
No related branches found
No related tags found
1 merge request!16Ozg 3936 refactor user profile url provider
......@@ -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
......
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment