removed bloat-code from JsonComponents in DTOs
This commit is contained in:
@ -32,7 +32,7 @@ import static org.hostsharing.hsadminng.service.accessfilter.MockSecurityContext
|
||||
import static org.mockito.BDDMockito.given;
|
||||
|
||||
@SuppressWarnings("ALL")
|
||||
public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
public class JSonDeserializationWithAccessFilterUnitTest {
|
||||
|
||||
@Rule
|
||||
public MockitoRule mockitoRule = MockitoJUnit.rule();
|
||||
@ -98,7 +98,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
ImmutablePair.of("openStringField", null)));
|
||||
|
||||
// when
|
||||
GivenDto actualDto = new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
GivenDto actualDto = new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
|
||||
// then
|
||||
assertThat(actualDto.openStringField).isNull();
|
||||
@ -113,7 +113,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
ImmutablePair.of("openStringField", "String Value")));
|
||||
|
||||
// when
|
||||
GivenDto actualDto = new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
GivenDto actualDto = new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
|
||||
// then
|
||||
assertThat(actualDto.openStringField).isEqualTo("String Value");
|
||||
@ -128,7 +128,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
ImmutablePair.of("openIntegerField", 1234)));
|
||||
|
||||
// when
|
||||
GivenDto actualDto = new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
GivenDto actualDto = new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
|
||||
// then
|
||||
assertThat(actualDto.openIntegerField).isEqualTo(1234);
|
||||
@ -157,7 +157,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
);
|
||||
|
||||
// when
|
||||
GivenDto actualDto = new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
GivenDto actualDto = new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
|
||||
// then
|
||||
assertThat(actualDto.openIntegerField).isEqualTo(11);
|
||||
@ -183,7 +183,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
);
|
||||
|
||||
// when
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize());
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize());
|
||||
|
||||
// then
|
||||
assertThat(exception).isInstanceOf(NotImplementedException.class);
|
||||
@ -200,7 +200,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
ImmutablePair.of("restrictedField", "update value of restricted field")));
|
||||
|
||||
// when
|
||||
GivenDto actualDto = new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
GivenDto actualDto = new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
|
||||
// then
|
||||
assertThat(actualDto.restrictedField).isEqualTo("update value of restricted field");
|
||||
@ -217,7 +217,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
ImmutablePair.of("restrictedField", "initial value of restricted field")));
|
||||
|
||||
// when
|
||||
GivenDto actualDto = new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
GivenDto actualDto = new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize();
|
||||
|
||||
// then
|
||||
assertThat(actualDto.restrictedField).isEqualTo("initial value of restricted field");
|
||||
@ -234,7 +234,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
);
|
||||
|
||||
// when
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize());
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize());
|
||||
|
||||
// then
|
||||
assertThat(exception).isInstanceOfSatisfying(BadRequestAlertException.class, badRequestAlertException -> {
|
||||
@ -254,7 +254,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
);
|
||||
|
||||
// when
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize());
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize());
|
||||
|
||||
// then
|
||||
assertThat(exception).isInstanceOfSatisfying(BadRequestAlertException.class, badRequestAlertException -> {
|
||||
@ -273,7 +273,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
);
|
||||
|
||||
// when
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenChildDto.class).deserialize());
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenChildDto.class).deserialize());
|
||||
|
||||
// then
|
||||
assertThat(exception).isInstanceOfSatisfying(BadRequestAlertException.class, badRequestAlertException -> {
|
||||
@ -292,7 +292,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
);
|
||||
|
||||
// when
|
||||
final GivenChildDto actualDto = new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenChildDto.class).deserialize();
|
||||
final GivenChildDto actualDto = new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenChildDto.class).deserialize();
|
||||
|
||||
// then
|
||||
assertThat(actualDto.parentId).isEqualTo(1234L);
|
||||
@ -309,7 +309,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
ImmutablePair.of("restrictedField", "Restricted String Value")));
|
||||
|
||||
// when
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize());
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDto.class).deserialize());
|
||||
|
||||
// then
|
||||
assertThat(exception).isInstanceOfSatisfying(BadRequestAlertException.class, badRequestAlertException -> {
|
||||
@ -324,7 +324,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
givenJSonTree(asJSon(ImmutablePair.of("id", 1111L)));
|
||||
|
||||
// when
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDtoWithMultipleSelfId.class).deserialize());
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDtoWithMultipleSelfId.class).deserialize());
|
||||
|
||||
// then
|
||||
assertThat(exception).isInstanceOf(AssertionError.class).hasMessage("multiple @SelfId detected in GivenDtoWithMultipleSelfId");
|
||||
@ -338,7 +338,7 @@ public class JSonDeserializerWithAccessFilterUnitTest {
|
||||
givenJSonTree(asJSon(ImmutablePair.of("unknown", new Arbitrary())));
|
||||
|
||||
// when
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, GivenDtoWithUnknownFieldType.class).deserialize());
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, GivenDtoWithUnknownFieldType.class).deserialize());
|
||||
|
||||
// then
|
||||
assertThat(exception).isInstanceOf(NotImplementedException.class)
|
@ -21,7 +21,7 @@ import static org.mockito.BDDMockito.given;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
public class JSonSerializerWithAccessFilterUnitTest {
|
||||
public class JSonSerializationWithAccessFilterUnitTest {
|
||||
|
||||
@Rule
|
||||
public MockitoRule mockitoRule = MockitoJUnit.rule();
|
||||
@ -55,7 +55,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
@Test
|
||||
public void shouldSerializeStringField() throws IOException {
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeStringField("openStringField", givenDTO.openStringField);
|
||||
@ -64,7 +64,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
@Test
|
||||
public void shouldSerializeIntegerField() throws IOException {
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeNumberField("openIntegerField", givenDTO.openIntegerField);
|
||||
@ -73,7 +73,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
@Test
|
||||
public void shouldSerializePrimitiveIntField() throws IOException {
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeNumberField("openPrimitiveIntField", givenDTO.openPrimitiveIntField);
|
||||
@ -82,7 +82,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
@Test
|
||||
public void shouldSerializeLongField() throws IOException {
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeNumberField("openLongField", givenDTO.openLongField);
|
||||
@ -91,7 +91,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
@Test
|
||||
public void shouldSerializePrimitiveLongField() throws IOException {
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeNumberField("openPrimitiveLongField", givenDTO.openPrimitiveLongField);
|
||||
@ -100,7 +100,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
@Test
|
||||
public void shouldSerializeBooleanField() throws IOException {
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeBooleanField("openBooleanField", givenDTO.openBooleanField);
|
||||
@ -109,7 +109,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
@Test
|
||||
public void shouldSerializePrimitiveBooleanField() throws IOException {
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeBooleanField("openPrimitiveBooleanField", givenDTO.openPrimitiveBooleanField);
|
||||
@ -118,7 +118,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
@Test
|
||||
public void shouldSerializeBigDecimalField() throws IOException {
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeNumberField("openBigDecimalField", givenDTO.openBigDecimalField);
|
||||
@ -127,7 +127,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
@Test
|
||||
public void shouldSerializeLocalDateField() throws IOException {
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeStringField("openLocalDateField", givenDTO.openLocalDateFieldAsString);
|
||||
@ -136,7 +136,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
@Test
|
||||
public void shouldSerializeEnumField() throws IOException {
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeStringField("openEnumField", givenDTO.openEnumFieldAsString);
|
||||
@ -150,7 +150,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
MockSecurityContext.givenUserHavingRole(GivenCustomerDto.class, 888L, Role.FINANCIAL_CONTACT);
|
||||
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeStringField("restrictedField", givenDTO.restrictedField);
|
||||
@ -164,7 +164,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
MockSecurityContext.givenUserHavingRole(GivenCustomerDto.class, 888L, Role.ANY_CUSTOMER_USER);
|
||||
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator, never()).writeStringField("restrictedField", givenDTO.restrictedField);
|
||||
@ -183,7 +183,7 @@ public class JSonSerializerWithAccessFilterUnitTest {
|
||||
final GivenDtoWithUnimplementedFieldType givenDtoWithUnimplementedFieldType = new GivenDtoWithUnimplementedFieldType();
|
||||
|
||||
// when
|
||||
final Throwable actual = catchThrowable(() -> new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDtoWithUnimplementedFieldType).serialize());
|
||||
final Throwable actual = catchThrowable(() -> new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDtoWithUnimplementedFieldType).serialize());
|
||||
|
||||
// then
|
||||
assertThat(actual).isInstanceOf(NotImplementedException.class);
|
@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||
import org.hostsharing.hsadminng.service.CustomerService;
|
||||
import org.hostsharing.hsadminng.service.MembershipService;
|
||||
import org.hostsharing.hsadminng.service.accessfilter.JSonDeserializerWithAccessFilter;
|
||||
import org.hostsharing.hsadminng.service.accessfilter.JSonDeserializationWithAccessFilter;
|
||||
import org.hostsharing.hsadminng.service.accessfilter.Role;
|
||||
import org.hostsharing.hsadminng.web.rest.errors.BadRequestAlertException;
|
||||
import org.junit.Before;
|
||||
@ -74,7 +74,7 @@ public class MembershipDTOUnitTest {
|
||||
givenJSonTree(asJSon(ImmutablePair.of("customerId", 1234L)));
|
||||
|
||||
// when
|
||||
final MembershipDTO actualDto = new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, MembershipDTO.class).deserialize();
|
||||
final MembershipDTO actualDto = new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, MembershipDTO.class).deserialize();
|
||||
|
||||
// then
|
||||
assertThat(actualDto.getCustomerId()).isEqualTo(1234L);
|
||||
@ -87,7 +87,7 @@ public class MembershipDTOUnitTest {
|
||||
givenJSonTree(asJSon(ImmutablePair.of("customerId", 1234L)));
|
||||
|
||||
// when
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, MembershipDTO.class).deserialize());
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, MembershipDTO.class).deserialize());
|
||||
|
||||
// then
|
||||
assertThat(exception).isInstanceOfSatisfying(BadRequestAlertException.class, badRequestAlertException -> {
|
||||
|
@ -9,8 +9,8 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||
import org.hostsharing.hsadminng.domain.enumeration.ShareAction;
|
||||
import org.hostsharing.hsadminng.service.CustomerService;
|
||||
import org.hostsharing.hsadminng.service.MembershipService;
|
||||
import org.hostsharing.hsadminng.service.accessfilter.JSonDeserializerWithAccessFilter;
|
||||
import org.hostsharing.hsadminng.service.accessfilter.JSonSerializerWithAccessFilter;
|
||||
import org.hostsharing.hsadminng.service.accessfilter.JSonDeserializationWithAccessFilter;
|
||||
import org.hostsharing.hsadminng.service.accessfilter.JSonSerializationWithAccessFilter;
|
||||
import org.hostsharing.hsadminng.service.accessfilter.Role;
|
||||
import org.hostsharing.hsadminng.web.rest.errors.BadRequestAlertException;
|
||||
import org.junit.Before;
|
||||
@ -89,7 +89,7 @@ public class ShareDTOUnitTest {
|
||||
givenJSonTree(asJSon(ImmutablePair.of("membershipId", SOME_MEMBERSHIP_ID)));
|
||||
|
||||
// when
|
||||
final ShareDTO actualDto = new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, ShareDTO.class).deserialize();
|
||||
final ShareDTO actualDto = new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, ShareDTO.class).deserialize();
|
||||
|
||||
// then
|
||||
assertThat(actualDto.getMembershipId()).isEqualTo(SOME_MEMBERSHIP_ID);
|
||||
@ -102,7 +102,7 @@ public class ShareDTOUnitTest {
|
||||
givenJSonTree(asJSon(ImmutablePair.of("membershipId", ShareDTOUnitTest.SOME_MEMBERSHIP_ID)));
|
||||
|
||||
// when
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializerWithAccessFilter<>(ctx, jsonParser, null, ShareDTO.class).deserialize());
|
||||
Throwable exception = catchThrowable(() -> new JSonDeserializationWithAccessFilter<>(ctx, jsonParser, null, ShareDTO.class).deserialize());
|
||||
|
||||
// then
|
||||
assertThat(exception).isInstanceOfSatisfying(BadRequestAlertException.class, badRequestAlertException -> {
|
||||
@ -118,7 +118,7 @@ public class ShareDTOUnitTest {
|
||||
final ShareDTO givenDTO = createShareDto();
|
||||
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeNumberField("id", givenDTO.getId());
|
||||
@ -133,7 +133,7 @@ public class ShareDTOUnitTest {
|
||||
final ShareDTO givenDTO = createShareDto();
|
||||
|
||||
// when
|
||||
new JSonSerializerWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
new JSonSerializationWithAccessFilter<>(ctx, jsonGenerator, null, givenDTO).serialize();
|
||||
|
||||
// then
|
||||
verify(jsonGenerator).writeNumberField("id", givenDTO.getId());
|
||||
|
@ -0,0 +1,129 @@
|
||||
package org.hostsharing.hsadminng.service.util;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.ThrowableAssert.catchThrowable;
|
||||
import static org.hostsharing.hsadminng.service.util.ReflectionUtil.unchecked;
|
||||
|
||||
|
||||
public class ReflectionUtilTest {
|
||||
|
||||
@Test
|
||||
public void setValue() {
|
||||
final TestDto dto = new TestDto(5);
|
||||
ReflectionUtil.setValue(dto, ReflectionUtil.getField(dto.getClass(), "intVal"), 77);
|
||||
assertThat(dto.intVal).isEqualTo(77);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setValueViaSuperclass() {
|
||||
final SubTestDto dto = new SubTestDto(5);
|
||||
ReflectionUtil.setValue(dto, ReflectionUtil.getField(dto.getClass(), "intVal"), 77);
|
||||
assertThat(dto.intVal).isEqualTo(77);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getValue() {
|
||||
final TestDto dto = new TestDto(5);
|
||||
final int actual = ReflectionUtil.getValue(dto, ReflectionUtil.getField(dto.getClass(), "intVal"));
|
||||
assertThat(actual).isEqualTo(5);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getValueViaSuperclass() {
|
||||
final SubTestDto dto = new SubTestDto(5);
|
||||
final int actual = ReflectionUtil.getValue(dto, ReflectionUtil.getField(dto.getClass(), "intVal"));
|
||||
assertThat(actual).isEqualTo(5);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void determineGenericInterfaceParameteDirect() {
|
||||
Class<?> actual = ReflectionUtil.determineGenericInterfaceParameter(SuperClass.class, GenericInterface.class, 1);
|
||||
assertThat(actual).isEqualTo(Long.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void determineGenericInterfaceParameterViaSuperclass() {
|
||||
Class<?> actual = ReflectionUtil.determineGenericInterfaceParameter(SomeClass.class, GenericInterface.class, 1);
|
||||
assertThat(actual).isEqualTo(Long.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void throwsExceptionIfGenericInterfaceNotImplemented() {
|
||||
final Throwable actual = catchThrowable(() -> ReflectionUtil.determineGenericInterfaceParameter(SomeClass.class, UnusedGenericInterface.class, 1));
|
||||
assertThat(actual).isInstanceOf(AssertionError.class).hasMessageContaining("GenericClass expected to implement UnusedGenericInterface<...>");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void determineGenericClassParameterDirect() {
|
||||
Class<?> actual = ReflectionUtil.determineGenericClassParameter(SuperClass.class, GenericClass.class, 1);
|
||||
assertThat(actual).isEqualTo(Boolean.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void determineGenericClassParameterViaSuperclss() {
|
||||
Class<?> actual = ReflectionUtil.determineGenericClassParameter(SomeClass.class, GenericClass.class, 1);
|
||||
assertThat(actual).isEqualTo(Boolean.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void throwsExceptionIfGenericClassNotExended() {
|
||||
final Throwable actual = catchThrowable(() -> ReflectionUtil.determineGenericClassParameter(SomeClass.class, UnusedSuperClass.class, 1));
|
||||
assertThat(actual).isInstanceOf(AssertionError.class).hasMessageContaining("GenericClass expected to extend UnusedSuperClass<...>");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void uncheckedRethrowsCheckedException() {
|
||||
final Exception givenException = new Exception("Checked Test Exception");
|
||||
final Throwable actual = catchThrowable(() -> unchecked(() -> {
|
||||
throw givenException;
|
||||
}));
|
||||
assertThat(actual).isInstanceOfSatisfying(RuntimeException.class, rte ->
|
||||
assertThat(rte.getCause()).isSameAs(givenException)
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void asEnumValue() {
|
||||
assertThat(ReflectionUtil.asEnumValue(Color.class, "RED")).isEqualTo(Color.RED);
|
||||
}
|
||||
|
||||
// --- only test fixture below ---
|
||||
|
||||
private static class TestDto {
|
||||
int intVal;
|
||||
|
||||
TestDto(final int intval) {
|
||||
this.intVal = intval;
|
||||
}
|
||||
}
|
||||
|
||||
private static class SubTestDto extends TestDto {
|
||||
|
||||
SubTestDto(final int intval) {
|
||||
super(intval);
|
||||
}
|
||||
}
|
||||
|
||||
private static class SomeClass extends SuperClass {
|
||||
}
|
||||
|
||||
private static class SuperClass extends GenericClass<String, Boolean> implements GenericInterface<Integer, Long> {
|
||||
}
|
||||
|
||||
|
||||
private static class UnusedSuperClass extends GenericClass<String, Boolean> implements GenericInterface<Integer, Long> {
|
||||
}
|
||||
|
||||
private static class GenericClass<T, V> {
|
||||
}
|
||||
|
||||
private interface GenericInterface<T, V> {
|
||||
}
|
||||
|
||||
private interface UnusedGenericInterface<T, V> {
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user