Skip to content
Snippets Groups Projects
Commit df744d72 authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-2737_fix_sonar_issues' (#113) from OZG-2737_fix_sonar_issues into master

parents 6440a88c b234a4a7
Branches
Tags
No related merge requests found
Showing
with 211 additions and 7 deletions
......@@ -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();
}
}
......@@ -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
......@@ -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;
}
......@@ -136,7 +136,7 @@ public class ModelBuilder<T> {
private Optional<Object> getEntityFieldValue(Field field) {
try {
field.setAccessible(true);
field.setAccessible(true); // NOSONAR
Optional<Object> value = Optional.ofNullable(field.get(getEntity()));
field.setAccessible(false);
return value;
......
......@@ -11,8 +11,8 @@ import com.google.common.base.Preconditions;
public class UserProfileUrlProvider implements ApplicationContextAware {
private static final String ERROR_MESSAGE = "Key %s missing, please add it to the application.yml";
private static ApplicationContext applicationContext;
private static final String URL_ROOT_KEY = "kop.user-manager.url";
private static final String USER_PROFILES_TEMPLATE_KEY = "kop.user-manager.profile-template";
static final String URL_ROOT_KEY = "kop.user-manager.url";
static final String USER_PROFILES_TEMPLATE_KEY = "kop.user-manager.profile-template";
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
......
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();
}
}
}
package de.itvsh.goofy.common;
import static org.assertj.core.api.Assertions.*;
import java.io.IOException;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.core.exc.StreamReadException;
import com.fasterxml.jackson.databind.DatabindException;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.itvsh.goofy.common.user.UserTestFactory;
class LinkedResourceDeserializerTest {
private static final String TEST_JSON = "{\"id\":\"/api/vorgangs/" + UserTestFactory.ID.toString() + "\"}";
@DisplayName("Test the deserilization of linked resource json")
@Nested
class TestDeserialization {
@Test
void shouldDeserialize() throws StreamReadException, DatabindException, IOException {
LinkedResourceTestObject res = new ObjectMapper().readValue(TEST_JSON.getBytes(), LinkedResourceTestObject.class);
assertThat(res).hasFieldOrPropertyWithValue("id", UserTestFactory.ID);
}
}
}
package de.itvsh.goofy.common;
import static org.assertj.core.api.Assertions.*;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.itvsh.goofy.common.user.UserTestFactory;
class LinkedResourceSerializerTest {
@DisplayName("Test the json serilization of linked resource annotations")
@Nested
class TestSerialization {
@Test
void shouldSerialize() throws JsonProcessingException {
var testObj = new LinkedResourceTestObject(UserTestFactory.ID);
String serialized = new ObjectMapper().writeValueAsString(testObj);
assertThat(serialized).isEqualTo("{\"id\":\"/api/vorgangs/" + UserTestFactory.ID.toString() + "\"}");
}
}
}
package de.itvsh.goofy.common;
import de.itvsh.goofy.common.user.UserId;
import de.itvsh.goofy.vorgang.VorgangController;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@AllArgsConstructor
@NoArgsConstructor
class LinkedResourceTestObject {
@LinkedResource(controllerClass = VorgangController.class)
private UserId id;
}
package de.itvsh.goofy.common;
import static org.assertj.core.api.Assertions.*;
import java.io.IOException;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.core.exc.StreamReadException;
import com.fasterxml.jackson.databind.DatabindException;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.itvsh.goofy.common.user.UserTestFactory;
class LinkedUserProfileResourceDeserializerTest {
private static final String TEST_JSON = "{\"id\":\"http://localhost/api/profile/" + UserTestFactory.ID.toString() + "\"}";
@DisplayName("Test the deserilization of linked resource json")
@Nested
class TestDeserialization {
@Test
void shouldDeserialize() throws StreamReadException, DatabindException, IOException {
LinkedUserProfileResourceTestObject res = new ObjectMapper().readValue(TEST_JSON.getBytes(), LinkedUserProfileResourceTestObject.class);
assertThat(res).hasFieldOrPropertyWithValue("id", UserTestFactory.ID);
}
}
}
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 org.mockito.Mock;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.itvsh.goofy.common.user.UserTestFactory;
class LinkedUserProfileResourceSerializerTest {
@DisplayName("Test the json serilization of linked user profile resource annotations")
@Nested
class TestSerialization {
private static final String HTTP_LOCALHOST = "http://localhost/";
private static final String API_TEMPLATE = "api/profile/%s";
private static final String API_PATH = "api/profile/";
private UserProfileUrlProvider provider = new UserProfileUrlProvider();
@Mock
private ApplicationContext context;
@Mock
private Environment env;
@Test
void shouldSerialize() throws JsonProcessingException {
when(env.getProperty(UserProfileUrlProvider.URL_ROOT_KEY)).thenReturn(HTTP_LOCALHOST);
when(env.getProperty(UserProfileUrlProvider.USER_PROFILES_TEMPLATE_KEY)).thenReturn(API_TEMPLATE);
when(context.getEnvironment()).thenReturn(env);
provider.setApplicationContext(context);
var testObj = new LinkedUserProfileResourceTestObject(UserTestFactory.ID);
String serialized = new ObjectMapper().writeValueAsString(testObj);
assertThat(serialized).isEqualTo("{\"id\":\"" + HTTP_LOCALHOST + API_PATH + UserTestFactory.ID.toString() + "\"}");
}
}
}
package de.itvsh.goofy.common;
import de.itvsh.goofy.common.user.UserId;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@AllArgsConstructor
@NoArgsConstructor
class LinkedUserProfileResourceTestObject {
@LinkedUserProfileResource
private UserId id;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment