Migrate code to Java 17 style.
Use var instead of explicit local types where applicable. Use pattern variable instead instanceof and cast. Prefer loops and nullable types over Stream and Optional. Convert classes to records where applicable. See #2465
This commit is contained in:
committed by
Jens Schauder
parent
d4036ec0a9
commit
c735b58607
@@ -17,9 +17,8 @@ package org.springframework.data.annotation;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.data.util.AnnotatedTypeScanner;
|
||||
|
||||
/**
|
||||
@@ -33,8 +32,8 @@ class TypeAliasUnitTests {
|
||||
@SuppressWarnings("unchecked")
|
||||
void scanningforAtPersistentFindsTypeAliasAnnotatedTypes() {
|
||||
|
||||
AnnotatedTypeScanner scanner = new AnnotatedTypeScanner(Persistent.class);
|
||||
Set<Class<?>> types = scanner.findTypes(getClass().getPackage().getName());
|
||||
var scanner = new AnnotatedTypeScanner(Persistent.class);
|
||||
var types = scanner.findTypes(getClass().getPackage().getName());
|
||||
|
||||
assertThat(types).containsExactlyInAnyOrder(SampleType.class, TypeAlias.class);
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ class AnnotationAuditingMetadataUnitTests {
|
||||
@Test
|
||||
void checkAnnotationDiscovery() {
|
||||
|
||||
AnnotationAuditingMetadata metadata = AnnotationAuditingMetadata.getMetadata(AnnotatedUser.class);
|
||||
var metadata = AnnotationAuditingMetadata.getMetadata(AnnotatedUser.class);
|
||||
|
||||
assertThat(metadata).isNotNull();
|
||||
assertThat(metadata.getCreatedByField()).hasValue(createdByField);
|
||||
@@ -53,17 +53,17 @@ class AnnotationAuditingMetadataUnitTests {
|
||||
@Test
|
||||
void checkCaching() {
|
||||
|
||||
AnnotationAuditingMetadata firstCall = AnnotationAuditingMetadata.getMetadata(AnnotatedUser.class);
|
||||
var firstCall = AnnotationAuditingMetadata.getMetadata(AnnotatedUser.class);
|
||||
assertThat(firstCall).isNotNull();
|
||||
|
||||
AnnotationAuditingMetadata secondCall = AnnotationAuditingMetadata.getMetadata(AnnotatedUser.class);
|
||||
var secondCall = AnnotationAuditingMetadata.getMetadata(AnnotatedUser.class);
|
||||
assertThat(firstCall).isEqualTo(secondCall);
|
||||
}
|
||||
|
||||
@Test
|
||||
void checkIsAuditable() {
|
||||
|
||||
AnnotationAuditingMetadata metadata = AnnotationAuditingMetadata.getMetadata(AnnotatedUser.class);
|
||||
var metadata = AnnotationAuditingMetadata.getMetadata(AnnotatedUser.class);
|
||||
assertThat(metadata).isNotNull();
|
||||
assertThat(metadata.isAuditable()).isTrue();
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ class AuditingHandlerUnitTests {
|
||||
@Test
|
||||
void onlySetsModificationDataOnNotNewEntities() {
|
||||
|
||||
AuditedUser audited = new AuditedUser();
|
||||
var audited = new AuditedUser();
|
||||
audited.id = 1L;
|
||||
|
||||
handler.setAuditorAware(auditorAware);
|
||||
@@ -152,7 +152,7 @@ class AuditingHandlerUnitTests {
|
||||
@Test // DATAJPA-9
|
||||
void usesDateTimeProviderIfConfigured() {
|
||||
|
||||
DateTimeProvider provider = mock(DateTimeProvider.class);
|
||||
var provider = mock(DateTimeProvider.class);
|
||||
doReturn(Optional.empty()).when(provider).getNow();
|
||||
|
||||
handler.setDateTimeProvider(provider);
|
||||
@@ -164,10 +164,10 @@ class AuditingHandlerUnitTests {
|
||||
@Test
|
||||
void setsAuditingInfoOnEntityUsingInheritance() {
|
||||
|
||||
AuditingHandler handler = new AuditingHandler(PersistentEntities.of(new SampleMappingContext()));
|
||||
var handler = new AuditingHandler(PersistentEntities.of(new SampleMappingContext()));
|
||||
handler.setModifyOnCreation(false);
|
||||
|
||||
MyDocument result = handler.markCreated(new MyDocument());
|
||||
var result = handler.markCreated(new MyDocument());
|
||||
|
||||
assertThat(result.created).isNotNull();
|
||||
assertThat(result.modified).isNull();
|
||||
|
||||
@@ -39,7 +39,7 @@ class AuditorUnitTests {
|
||||
@Test // DATACMNS-1231
|
||||
void auditorOfMustNotWrapOtherAuditor() {
|
||||
|
||||
Auditor<String> source = Auditor.of("batman");
|
||||
var source = Auditor.of("batman");
|
||||
assertThat(Auditor.of(source)).isSameAs(source);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,8 +21,6 @@ import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.temporal.ChronoField;
|
||||
import java.time.temporal.TemporalAccessor;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -70,10 +68,10 @@ class DefaultAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-643
|
||||
void setsJsr310Types() {
|
||||
|
||||
Jsr310AuditedUser user = new Jsr310AuditedUser();
|
||||
Instant instant = Instant.now();
|
||||
var user = new Jsr310AuditedUser();
|
||||
var instant = Instant.now();
|
||||
|
||||
Optional<AuditableBeanWrapper<Jsr310AuditedUser>> wrapper = factory.getBeanWrapperFor(user);
|
||||
var wrapper = factory.getBeanWrapperFor(user);
|
||||
|
||||
assertThat(wrapper).hasValueSatisfying(it -> {
|
||||
|
||||
@@ -88,10 +86,10 @@ class DefaultAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-1259
|
||||
void lastModifiedDateAsLongIsAvailableViaWrapper() {
|
||||
|
||||
LongBasedAuditable source = new LongBasedAuditable();
|
||||
var source = new LongBasedAuditable();
|
||||
source.dateModified = 42000L;
|
||||
|
||||
Optional<Long> result = factory.getBeanWrapperFor(source) //
|
||||
var result = factory.getBeanWrapperFor(source) //
|
||||
.flatMap(AuditableBeanWrapper::getLastModifiedDate) //
|
||||
.map(ta -> ta.getLong(ChronoField.INSTANT_SECONDS));
|
||||
|
||||
@@ -101,9 +99,9 @@ class DefaultAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-1259
|
||||
void canSetLastModifiedDateAsInstantViaWrapperOnLongField() {
|
||||
|
||||
LongBasedAuditable source = new LongBasedAuditable();
|
||||
var source = new LongBasedAuditable();
|
||||
|
||||
Optional<AuditableBeanWrapper<LongBasedAuditable>> beanWrapper = factory.getBeanWrapperFor(source);
|
||||
var beanWrapper = factory.getBeanWrapperFor(source);
|
||||
assertThat(beanWrapper).isPresent();
|
||||
|
||||
beanWrapper.get().setLastModifiedDate(Instant.ofEpochMilli(42L));
|
||||
@@ -114,9 +112,9 @@ class DefaultAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-1259
|
||||
void canSetLastModifiedDateAsLocalDateTimeViaWrapperOnLongField() {
|
||||
|
||||
LongBasedAuditable source = new LongBasedAuditable();
|
||||
var source = new LongBasedAuditable();
|
||||
|
||||
Optional<Long> result = factory.getBeanWrapperFor(source).map(it -> {
|
||||
var result = factory.getBeanWrapperFor(source).map(it -> {
|
||||
it.setLastModifiedDate(LocalDateTime.ofInstant(Instant.ofEpochMilli(42L), ZoneOffset.systemDefault()));
|
||||
return it.getBean().dateModified;
|
||||
});
|
||||
@@ -127,12 +125,12 @@ class DefaultAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-1259
|
||||
void lastModifiedAsLocalDateTimeDateIsAvailableViaWrapperAsLocalDateTime() {
|
||||
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
var now = LocalDateTime.now();
|
||||
|
||||
AuditedUser source = new AuditedUser();
|
||||
var source = new AuditedUser();
|
||||
source.setLastModifiedDate(now);
|
||||
|
||||
Optional<TemporalAccessor> result = factory.getBeanWrapperFor(source) //
|
||||
var result = factory.getBeanWrapperFor(source) //
|
||||
.flatMap(AuditableBeanWrapper::getLastModifiedDate);
|
||||
|
||||
assertThat(result).hasValue(now);
|
||||
|
||||
@@ -59,7 +59,7 @@ class IsNewAwareAuditingHandlerUnitTests extends AuditingHandlerUnitTests {
|
||||
@Test
|
||||
void delegatesToMarkCreatedForNewEntity() {
|
||||
|
||||
AuditedUser user = new AuditedUser();
|
||||
var user = new AuditedUser();
|
||||
|
||||
getHandler().markAudited(user);
|
||||
|
||||
@@ -70,7 +70,7 @@ class IsNewAwareAuditingHandlerUnitTests extends AuditingHandlerUnitTests {
|
||||
@Test
|
||||
void delegatesToMarkModifiedForNonNewEntity() {
|
||||
|
||||
AuditedUser user = new AuditedUser();
|
||||
var user = new AuditedUser();
|
||||
user.id = 1L;
|
||||
|
||||
getHandler().markAudited(user);
|
||||
@@ -92,7 +92,7 @@ class IsNewAwareAuditingHandlerUnitTests extends AuditingHandlerUnitTests {
|
||||
@Test // DATACMNS-638
|
||||
void handlingOptionalIsANoOp() {
|
||||
|
||||
IsNewAwareAuditingHandler handler = getHandler();
|
||||
var handler = getHandler();
|
||||
|
||||
handler.markAudited(Optional.empty());
|
||||
handler.markCreated(Optional.empty());
|
||||
@@ -107,10 +107,10 @@ class IsNewAwareAuditingHandlerUnitTests extends AuditingHandlerUnitTests {
|
||||
@Test // DATACMNS-1780
|
||||
void singleContextAllowsInFlightMetadataCreationForUnknownPersistentEntities() {
|
||||
|
||||
SampleMappingContext mappingContext = spy(new SampleMappingContext());
|
||||
var mappingContext = spy(new SampleMappingContext());
|
||||
mappingContext.afterPropertiesSet();
|
||||
|
||||
AuditedUser user = new AuditedUser();
|
||||
var user = new AuditedUser();
|
||||
user.id = 1L;
|
||||
|
||||
new IsNewAwareAuditingHandler(PersistentEntities.of(mappingContext)).markAudited(user);
|
||||
|
||||
@@ -59,21 +59,21 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
context.getPersistentEntity(Sample.class);
|
||||
context.getPersistentEntity(SampleWithInstant.class);
|
||||
context.getPersistentEntity(WithEmbedded.class);
|
||||
|
||||
PersistentEntities entities = PersistentEntities.of(context);
|
||||
var entities = PersistentEntities.of(context);
|
||||
factory = new MappingAuditableBeanWrapperFactory(entities);
|
||||
}
|
||||
|
||||
@Test // DATACMNS-365
|
||||
void discoversAuditingPropertyOnField() {
|
||||
|
||||
Sample sample = new Sample();
|
||||
var sample = new Sample();
|
||||
|
||||
Optional<AuditableBeanWrapper<Sample>> wrapper = factory.getBeanWrapperFor(sample);
|
||||
var wrapper = factory.getBeanWrapperFor(sample);
|
||||
|
||||
assertThat(wrapper).hasValueSatisfying(it -> {
|
||||
|
||||
@@ -85,9 +85,9 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-365
|
||||
void discoversAuditingPropertyOnAccessor() {
|
||||
|
||||
Sample sample = new Sample();
|
||||
var sample = new Sample();
|
||||
|
||||
Optional<AuditableBeanWrapper<Sample>> wrapper = factory.getBeanWrapperFor(sample);
|
||||
var wrapper = factory.getBeanWrapperFor(sample);
|
||||
|
||||
assertThat(wrapper).hasValueSatisfying(it -> {
|
||||
|
||||
@@ -99,9 +99,9 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-365
|
||||
void settingInavailablePropertyIsNoop() {
|
||||
|
||||
Sample sample = new Sample();
|
||||
var sample = new Sample();
|
||||
|
||||
Optional<AuditableBeanWrapper<Sample>> wrapper = factory.getBeanWrapperFor(sample);
|
||||
var wrapper = factory.getBeanWrapperFor(sample);
|
||||
|
||||
assertThat(wrapper).hasValueSatisfying(it -> it.setLastModifiedDate(Instant.now()));
|
||||
}
|
||||
@@ -121,7 +121,7 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-638
|
||||
void returnsLastModificationCalendarAsCalendar() {
|
||||
|
||||
Date reference = new Date();
|
||||
var reference = new Date();
|
||||
|
||||
Calendar calendar = new GregorianCalendar();
|
||||
calendar.setTime(reference);
|
||||
@@ -133,7 +133,7 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-638
|
||||
void returnsLastModificationDateAsCalendar() {
|
||||
|
||||
Date reference = new Date();
|
||||
var reference = new Date();
|
||||
|
||||
assertLastModificationDate(reference, //
|
||||
Jsr310Converters.DateToLocalDateTimeConverter.INSTANCE.convert(reference));
|
||||
@@ -142,7 +142,7 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-638, DATACMNS-43
|
||||
void returnsLastModificationJsr310DateTimeAsCalendar() {
|
||||
|
||||
LocalDateTime reference = LocalDateTime.now();
|
||||
var reference = LocalDateTime.now();
|
||||
|
||||
assertLastModificationDate(reference, reference);
|
||||
}
|
||||
@@ -150,10 +150,10 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-1109
|
||||
void exposesInstantAsModificationDate() {
|
||||
|
||||
SampleWithInstant sample = new SampleWithInstant();
|
||||
var sample = new SampleWithInstant();
|
||||
sample.modified = Instant.now();
|
||||
|
||||
Optional<TemporalAccessor> result = factory.getBeanWrapperFor(sample) //
|
||||
var result = factory.getBeanWrapperFor(sample) //
|
||||
.flatMap(it -> it.getLastModifiedDate());
|
||||
|
||||
assertThat(result).hasValue(sample.modified);
|
||||
@@ -170,22 +170,22 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-1274
|
||||
void writesNestedAuditingData() {
|
||||
|
||||
WithEmbedded target = new WithEmbedded();
|
||||
var target = new WithEmbedded();
|
||||
target.embedded = new Embedded();
|
||||
|
||||
Optional<AuditableBeanWrapper<WithEmbedded>> wrapper = factory.getBeanWrapperFor(target);
|
||||
var wrapper = factory.getBeanWrapperFor(target);
|
||||
|
||||
assertThat(wrapper).hasValueSatisfying(it -> {
|
||||
|
||||
Instant now = Instant.now();
|
||||
String user = "user";
|
||||
var now = Instant.now();
|
||||
var user = "user";
|
||||
|
||||
it.setCreatedBy(user);
|
||||
it.setLastModifiedBy(user);
|
||||
it.setLastModifiedDate(now);
|
||||
it.setCreatedDate(now);
|
||||
|
||||
Embedded embedded = it.getBean().embedded;
|
||||
var embedded = it.getBean().embedded;
|
||||
|
||||
assertThat(embedded.created).isEqualTo(now);
|
||||
assertThat(embedded.creator).isEqualTo(user);
|
||||
@@ -199,7 +199,7 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-1461, DATACMNS-1671
|
||||
void skipsNullIntermediatesWhenSettingProperties() {
|
||||
|
||||
WithEmbedded withEmbedded = new WithEmbedded();
|
||||
var withEmbedded = new WithEmbedded();
|
||||
|
||||
assertThat(factory.getBeanWrapperFor(withEmbedded)).hasValueSatisfying(it -> {
|
||||
assertThatCode(() -> it.setCreatedBy("user")).doesNotThrowAnyException();
|
||||
@@ -210,7 +210,7 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
@Test // DATACMNS-1438
|
||||
void skipsCollectionPropertiesWhenSettingProperties() {
|
||||
|
||||
WithEmbedded withEmbedded = new WithEmbedded();
|
||||
var withEmbedded = new WithEmbedded();
|
||||
withEmbedded.embedded = new Embedded();
|
||||
withEmbedded.embeddeds = Arrays.asList(new Embedded());
|
||||
withEmbedded.embeddedMap = new HashMap<>();
|
||||
@@ -218,15 +218,15 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
|
||||
assertThat(factory.getBeanWrapperFor(withEmbedded)).hasValueSatisfying(it -> {
|
||||
|
||||
String user = "user";
|
||||
Instant now = Instant.now();
|
||||
var user = "user";
|
||||
var now = Instant.now();
|
||||
|
||||
it.setCreatedBy(user);
|
||||
it.setLastModifiedBy(user);
|
||||
it.setLastModifiedDate(now);
|
||||
it.setCreatedDate(now);
|
||||
|
||||
Embedded embedded = withEmbedded.embeddeds.iterator().next();
|
||||
var embedded = withEmbedded.embeddeds.iterator().next();
|
||||
|
||||
assertThat(embedded.created).isNull();
|
||||
assertThat(embedded.creator).isNull();
|
||||
@@ -244,10 +244,10 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
|
||||
private void assertLastModificationDate(Object source, TemporalAccessor expected) {
|
||||
|
||||
Sample sample = new Sample();
|
||||
var sample = new Sample();
|
||||
sample.lastModifiedDate = source;
|
||||
|
||||
Optional<TemporalAccessor> result = factory.getBeanWrapperFor(sample) //
|
||||
var result = factory.getBeanWrapperFor(sample) //
|
||||
.flatMap(it -> it.getLastModifiedDate());
|
||||
|
||||
assertThat(result).hasValueSatisfying(ta -> compareTemporalAccessors(expected, ta));
|
||||
@@ -255,8 +255,8 @@ class MappingAuditableBeanWrapperFactoryUnitTests {
|
||||
|
||||
private static AbstractLongAssert<?> compareTemporalAccessors(TemporalAccessor expected, TemporalAccessor actual) {
|
||||
|
||||
long actualSeconds = getInstantSeconds(actual);
|
||||
long expectedSeconds = getInstantSeconds(expected);
|
||||
var actualSeconds = getInstantSeconds(actual);
|
||||
var expectedSeconds = getInstantSeconds(expected);
|
||||
|
||||
return assertThat(actualSeconds) //
|
||||
.describedAs("Difference is %s", actualSeconds - expectedSeconds) //
|
||||
|
||||
@@ -50,7 +50,7 @@ class ReactiveAuditingHandlerUnitTests {
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
|
||||
SampleMappingContext sampleMappingContext = new SampleMappingContext();
|
||||
var sampleMappingContext = new SampleMappingContext();
|
||||
sampleMappingContext.getRequiredPersistentEntity(Immutable.class); // initialize to ensure we're using mapping
|
||||
// metadata instead of plain reflection
|
||||
|
||||
@@ -64,7 +64,7 @@ class ReactiveAuditingHandlerUnitTests {
|
||||
@Test // DATACMNS-1231
|
||||
void markCreatedShouldSetDatesIfAuditorNotSet() {
|
||||
|
||||
Immutable immutable = new Immutable(null, null, null, null);
|
||||
var immutable = new Immutable(null, null, null, null);
|
||||
|
||||
handler.markCreated(immutable).as(StepVerifier::create).consumeNextWith(actual -> {
|
||||
|
||||
@@ -81,7 +81,7 @@ class ReactiveAuditingHandlerUnitTests {
|
||||
@Test // DATACMNS-1231
|
||||
void markModifiedSetsModifiedFields() {
|
||||
|
||||
AuditedUser audited = new AuditedUser();
|
||||
var audited = new AuditedUser();
|
||||
audited.id = 1L;
|
||||
|
||||
handler.setAuditorAware(auditorAware);
|
||||
|
||||
@@ -74,7 +74,7 @@ class ReflectionAuditingBeanWrapperUnitTests {
|
||||
@LastModifiedDate long modifiedDate;
|
||||
}
|
||||
|
||||
Sample sample = new Sample();
|
||||
var sample = new Sample();
|
||||
AuditableBeanWrapper<Sample> wrapper = new ReflectionAuditingBeanWrapper<>(conversionService, sample);
|
||||
|
||||
wrapper.setCreatedDate(time);
|
||||
@@ -87,7 +87,7 @@ class ReflectionAuditingBeanWrapperUnitTests {
|
||||
@Test
|
||||
void setsAuditorFieldsCorrectly() {
|
||||
|
||||
Object object = new Object();
|
||||
var object = new Object();
|
||||
|
||||
wrapper.setCreatedBy(object);
|
||||
assertThat(user.createdBy).isEqualTo(object);
|
||||
|
||||
@@ -63,7 +63,7 @@ class TypeFilterParserUnitTests {
|
||||
|
||||
Resource sampleXmlFile = new ClassPathResource("type-filter-test.xml", TypeFilterParserUnitTests.class);
|
||||
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||
var factory = DocumentBuilderFactory.newInstance();
|
||||
factory.setNamespaceAware(true);
|
||||
|
||||
documentElement = factory.newDocumentBuilder().parse(sampleXmlFile.getInputStream()).getDocumentElement();
|
||||
@@ -72,7 +72,7 @@ class TypeFilterParserUnitTests {
|
||||
@Test
|
||||
void parsesIncludesCorrectly() throws Exception {
|
||||
|
||||
Element element = DomUtils.getChildElementByTagName(documentElement, "firstSample");
|
||||
var element = DomUtils.getChildElementByTagName(documentElement, "firstSample");
|
||||
|
||||
Iterable<TypeFilter> filters = parser.parseTypeFilters(element, Type.INCLUDE);
|
||||
assertThat(filters).hasAtLeastOneElementOfType(AssignableTypeFilter.class);
|
||||
@@ -81,7 +81,7 @@ class TypeFilterParserUnitTests {
|
||||
@Test
|
||||
void parsesExcludesCorrectly() throws Exception {
|
||||
|
||||
Element element = DomUtils.getChildElementByTagName(documentElement, "secondSample");
|
||||
var element = DomUtils.getChildElementByTagName(documentElement, "secondSample");
|
||||
|
||||
Iterable<TypeFilter> filters = parser.parseTypeFilters(element, Type.EXCLUDE);
|
||||
assertThat(filters).hasAtLeastOneElementOfType(AssignableTypeFilter.class);
|
||||
|
||||
@@ -19,12 +19,10 @@ import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.internal.util.Supplier;
|
||||
|
||||
import org.springframework.core.convert.TypeDescriptor;
|
||||
import org.springframework.core.convert.converter.GenericConverter;
|
||||
import org.springframework.core.convert.converter.GenericConverter.ConvertiblePair;
|
||||
import org.springframework.data.convert.ConverterBuilder.ConverterAware;
|
||||
import org.springframework.data.convert.ConverterBuilder.ReadingConverterBuilder;
|
||||
import org.springframework.data.convert.ConverterBuilder.WritingConverterBuilder;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link DefaultConverterBuilder}.
|
||||
@@ -38,7 +36,7 @@ class ConverterBuilderUnitTests {
|
||||
@Test // DATACMNS-1034
|
||||
void setsUpBidirectionalConvertersFromReading() {
|
||||
|
||||
ConverterAware builder = ConverterBuilder.reading(String.class, Long.class, it -> Long.valueOf(it))
|
||||
var builder = ConverterBuilder.reading(String.class, Long.class, it -> Long.valueOf(it))
|
||||
.andWriting(Object::toString);
|
||||
|
||||
assertConverter(builder.getReadingConverter(), "1", 1L);
|
||||
@@ -48,7 +46,7 @@ class ConverterBuilderUnitTests {
|
||||
@Test // DATACMNS-1034
|
||||
void setsUpBidirectionalConvertersFromWriting() {
|
||||
|
||||
ConverterAware builder = ConverterBuilder.writing(Long.class, String.class, Object::toString)
|
||||
var builder = ConverterBuilder.writing(Long.class, String.class, Object::toString)
|
||||
.andReading(it -> Long.valueOf(it));
|
||||
|
||||
assertConverter(builder.getReadingConverter(), "1", 1L);
|
||||
@@ -58,7 +56,7 @@ class ConverterBuilderUnitTests {
|
||||
@Test // DATACMNS-1034
|
||||
void setsUpReadingConverter() {
|
||||
|
||||
ReadingConverterBuilder<String, Long> builder = ConverterBuilder.reading(String.class, Long.class,
|
||||
var builder = ConverterBuilder.reading(String.class, Long.class,
|
||||
string -> Long.valueOf(string));
|
||||
|
||||
assertConverter(builder.getReadingConverter(), "1", 1L);
|
||||
@@ -68,7 +66,7 @@ class ConverterBuilderUnitTests {
|
||||
@Test // DATACMNS-1034
|
||||
void setsUpWritingConverter() {
|
||||
|
||||
WritingConverterBuilder<Long, String> builder = ConverterBuilder.writing(Long.class, String.class,
|
||||
var builder = ConverterBuilder.writing(Long.class, String.class,
|
||||
Object::toString);
|
||||
|
||||
assertConverter(builder.getWritingConverter(), 1L, "1");
|
||||
|
||||
@@ -38,7 +38,6 @@ import org.springframework.core.convert.converter.GenericConverter.ConvertiblePa
|
||||
import org.springframework.core.convert.support.ConfigurableConversionService;
|
||||
import org.springframework.core.convert.support.DefaultConversionService;
|
||||
import org.springframework.core.convert.support.GenericConversionService;
|
||||
import org.springframework.data.convert.ConverterBuilder.ConverterAware;
|
||||
import org.springframework.data.convert.CustomConversions.ConverterConfiguration;
|
||||
import org.springframework.data.convert.CustomConversions.StoreConversions;
|
||||
import org.springframework.data.convert.Jsr310Converters.LocalDateTimeToDateConverter;
|
||||
@@ -67,7 +66,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATACMNS-1035
|
||||
void findsBasicReadAndWriteConversions() {
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE,
|
||||
var conversions = new CustomConversions(StoreConversions.NONE,
|
||||
Arrays.asList(FormatToStringConverter.INSTANCE, StringToFormatConverter.INSTANCE));
|
||||
|
||||
assertThat(conversions.getCustomWriteTarget(Format.class)).hasValue(String.class);
|
||||
@@ -80,7 +79,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATACMNS-1035
|
||||
void considersSubtypesCorrectly() {
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE,
|
||||
var conversions = new CustomConversions(StoreConversions.NONE,
|
||||
Arrays.asList(NumberToStringConverter.INSTANCE, StringToNumberConverter.INSTANCE));
|
||||
|
||||
assertThat(conversions.getCustomWriteTarget(Long.class)).hasValue(String.class);
|
||||
@@ -90,7 +89,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATACMNS-1101
|
||||
void considersSubtypeCachingCorrectly() {
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE,
|
||||
var conversions = new CustomConversions(StoreConversions.NONE,
|
||||
Arrays.asList(NumberToStringConverter.INSTANCE, StringToNumberConverter.INSTANCE));
|
||||
|
||||
assertThat(conversions.getCustomWriteTarget(Long.class, Object.class)).isEmpty();
|
||||
@@ -103,7 +102,7 @@ class CustomConversionsUnitTests {
|
||||
|
||||
GenericConversionService conversionService = new DefaultConversionService();
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE,
|
||||
var conversions = new CustomConversions(StoreConversions.NONE,
|
||||
Arrays.asList(StringToFormatConverter.INSTANCE));
|
||||
conversions.registerConvertersIn(conversionService);
|
||||
|
||||
@@ -113,7 +112,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATAMONGO-259, DATACMNS-1035
|
||||
void doesNotConsiderTypeSimpleIfOnlyReadConverterIsRegistered() {
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE,
|
||||
var conversions = new CustomConversions(StoreConversions.NONE,
|
||||
Arrays.asList(StringToFormatConverter.INSTANCE));
|
||||
assertThat(conversions.isSimpleType(Format.class)).isFalse();
|
||||
}
|
||||
@@ -121,7 +120,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATAMONGO-298, DATACMNS-1035
|
||||
void discoversConvertersForSubtypesOfMongoTypes() {
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE,
|
||||
var conversions = new CustomConversions(StoreConversions.NONE,
|
||||
Arrays.asList(StringToIntegerConverter.INSTANCE));
|
||||
assertThat(conversions.hasCustomReadTarget(String.class, Integer.class)).isTrue();
|
||||
assertThat(conversions.hasCustomWriteTarget(String.class, Integer.class)).isTrue();
|
||||
@@ -130,7 +129,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATAMONGO-1001, DATACMNS-1035
|
||||
void shouldSelectPropertCustomWriteTargetForCglibProxiedType() {
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE,
|
||||
var conversions = new CustomConversions(StoreConversions.NONE,
|
||||
Arrays.asList(FormatToStringConverter.INSTANCE));
|
||||
assertThat(conversions.getCustomWriteTarget(createProxyTypeFor(Format.class))).hasValue(String.class);
|
||||
}
|
||||
@@ -138,7 +137,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATAMONGO-1001, DATACMNS-1035
|
||||
void shouldSelectPropertCustomReadTargetForCglibProxiedType() {
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE,
|
||||
var conversions = new CustomConversions(StoreConversions.NONE,
|
||||
Arrays.asList(CustomTypeToStringConverter.INSTANCE));
|
||||
assertThat(conversions.hasCustomReadTarget(createProxyTypeFor(CustomType.class), String.class)).isTrue();
|
||||
}
|
||||
@@ -146,7 +145,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATAMONGO-1131, DATACMNS-1035
|
||||
void registersConvertersForJsr310() {
|
||||
|
||||
CustomConversions customConversions = new CustomConversions(StoreConversions.NONE, Collections.emptyList());
|
||||
var customConversions = new CustomConversions(StoreConversions.NONE, Collections.emptyList());
|
||||
|
||||
assertThat(customConversions.hasCustomWriteTarget(java.time.LocalDateTime.class)).isTrue();
|
||||
}
|
||||
@@ -154,9 +153,9 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATAMONGO-1302, DATACMNS-1035
|
||||
void registersConverterFactoryCorrectly() {
|
||||
|
||||
StoreConversions conversions = StoreConversions.of(new SimpleTypeHolder(Collections.singleton(Format.class), true));
|
||||
var conversions = StoreConversions.of(new SimpleTypeHolder(Collections.singleton(Format.class), true));
|
||||
|
||||
CustomConversions customConversions = new CustomConversions(conversions,
|
||||
var customConversions = new CustomConversions(conversions,
|
||||
Collections.singletonList(new FormatConverterFactory()));
|
||||
|
||||
assertThat(customConversions.getCustomWriteTarget(String.class, SimpleDateFormat.class)).isPresent();
|
||||
@@ -165,11 +164,11 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATACMNS-1034
|
||||
void registersConverterFromConverterAware() {
|
||||
|
||||
ConverterAware converters = ConverterBuilder //
|
||||
var converters = ConverterBuilder //
|
||||
.reading(Locale.class, CustomType.class, left -> new CustomType()) //
|
||||
.andWriting(right -> Locale.GERMAN);
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE, Collections.singletonList(converters));
|
||||
var conversions = new CustomConversions(StoreConversions.NONE, Collections.singletonList(converters));
|
||||
|
||||
assertThat(conversions.hasCustomWriteTarget(CustomType.class)).isTrue();
|
||||
assertThat(conversions.hasCustomReadTarget(Locale.class, CustomType.class)).isTrue();
|
||||
@@ -184,7 +183,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATACMNS-1615
|
||||
void skipsUnsupportedDefaultWritingConverter() {
|
||||
|
||||
ConverterRegistry registry = mock(ConverterRegistry.class);
|
||||
var registry = mock(ConverterRegistry.class);
|
||||
|
||||
new CustomConversions(StoreConversions.of(DATE_EXCLUDING_SIMPLE_TYPE_HOLDER), Collections.emptyList())
|
||||
.registerConvertersIn(registry);
|
||||
@@ -195,11 +194,11 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATACMNS-1665
|
||||
void registersStoreConverter() {
|
||||
|
||||
ConverterRegistry registry = mock(ConverterRegistry.class);
|
||||
var registry = mock(ConverterRegistry.class);
|
||||
|
||||
SimpleTypeHolder holder = new SimpleTypeHolder(Collections.emptySet(), true);
|
||||
var holder = new SimpleTypeHolder(Collections.emptySet(), true);
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.of(holder, PointToMapConverter.INSTANCE),
|
||||
var conversions = new CustomConversions(StoreConversions.of(holder, PointToMapConverter.INSTANCE),
|
||||
Collections.emptyList());
|
||||
conversions.registerConvertersIn(registry);
|
||||
|
||||
@@ -210,7 +209,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATACMNS-1615
|
||||
void doesNotSkipUnsupportedUserConverter() {
|
||||
|
||||
ConverterRegistry registry = mock(ConverterRegistry.class);
|
||||
var registry = mock(ConverterRegistry.class);
|
||||
|
||||
new CustomConversions(StoreConversions.of(DATE_EXCLUDING_SIMPLE_TYPE_HOLDER),
|
||||
Collections.singletonList(Jsr310Converters.LocalDateTimeToInstantConverter.INSTANCE))
|
||||
@@ -222,9 +221,9 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATACMNS-1615
|
||||
void skipsConverterBasedOnConfiguration() {
|
||||
|
||||
ConverterRegistry registry = mock(ConverterRegistry.class);
|
||||
var registry = mock(ConverterRegistry.class);
|
||||
|
||||
ConverterConfiguration config = new ConverterConfiguration(StoreConversions.NONE, Collections.emptyList(),
|
||||
var config = new ConverterConfiguration(StoreConversions.NONE, Collections.emptyList(),
|
||||
Predicate.<ConvertiblePair> isEqual(new ConvertiblePair(java.time.LocalDateTime.class, Date.class)).negate());
|
||||
new CustomConversions(config).registerConvertersIn(registry);
|
||||
|
||||
@@ -234,9 +233,9 @@ class CustomConversionsUnitTests {
|
||||
@Test // DATACMNS-1615
|
||||
void doesNotSkipUserConverterConverterEvenWhenConfigurationWouldNotAllowIt() {
|
||||
|
||||
ConverterRegistry registry = mock(ConverterRegistry.class);
|
||||
var registry = mock(ConverterRegistry.class);
|
||||
|
||||
ConverterConfiguration config = new ConverterConfiguration(StoreConversions.NONE,
|
||||
var config = new ConverterConfiguration(StoreConversions.NONE,
|
||||
Collections.singletonList(LocalDateTimeToDateConverter.INSTANCE),
|
||||
Predicate.<ConvertiblePair> isEqual(new ConvertiblePair(java.time.LocalDateTime.class, Date.class)).negate());
|
||||
new CustomConversions(config).registerConvertersIn(registry);
|
||||
@@ -247,7 +246,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // GH-2315
|
||||
void addsAssociationConvertersByDefault() {
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE, Collections.emptyList());
|
||||
var conversions = new CustomConversions(StoreConversions.NONE, Collections.emptyList());
|
||||
|
||||
assertThat(conversions.hasCustomWriteTarget(Association.class)).isTrue();
|
||||
assertThat(conversions.hasCustomReadTarget(Object.class, Association.class)).isTrue();
|
||||
@@ -256,7 +255,7 @@ class CustomConversionsUnitTests {
|
||||
@Test // GH-2315
|
||||
void addsIdentifierConvertersByDefault() {
|
||||
|
||||
CustomConversions conversions = new CustomConversions(StoreConversions.NONE, Collections.emptyList());
|
||||
var conversions = new CustomConversions(StoreConversions.NONE, Collections.emptyList());
|
||||
|
||||
assertThat(conversions.hasCustomWriteTarget(Identifier.class)).isTrue();
|
||||
assertThat(conversions.hasCustomReadTarget(String.class, Identifier.class)).isTrue();
|
||||
@@ -264,7 +263,7 @@ class CustomConversionsUnitTests {
|
||||
|
||||
private static Class<?> createProxyTypeFor(Class<?> type) {
|
||||
|
||||
ProxyFactory factory = new ProxyFactory();
|
||||
var factory = new ProxyFactory();
|
||||
factory.setProxyTargetClass(true);
|
||||
factory.setTargetClass(type);
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ class DefaultTypeMapperUnitTests {
|
||||
@Test
|
||||
void cachesResolvedTypeInformation() {
|
||||
|
||||
TypeInformation<?> information = typeMapper.readType(source);
|
||||
var information = typeMapper.readType(source);
|
||||
assertThat(information).isEqualTo(STRING_TYPE_INFO);
|
||||
verify(mapper, times(1)).resolveTypeFrom(ALIAS);
|
||||
|
||||
@@ -79,7 +79,7 @@ class DefaultTypeMapperUnitTests {
|
||||
@Test // DATACMNS-349
|
||||
void returnsTypeAliasForInformation() {
|
||||
|
||||
Alias alias = Alias.of("alias");
|
||||
var alias = Alias.of("alias");
|
||||
doReturn(alias).when(mapper).createAliasFor(STRING_TYPE_INFO);
|
||||
|
||||
assertThat(this.typeMapper.getAliasFor(STRING_TYPE_INFO)).isEqualTo(alias);
|
||||
@@ -88,14 +88,14 @@ class DefaultTypeMapperUnitTests {
|
||||
@Test // DATACMNS-783
|
||||
void specializesRawSourceTypeUsingGenericContext() {
|
||||
|
||||
ClassTypeInformation<Foo> root = ClassTypeInformation.from(Foo.class);
|
||||
TypeInformation<?> propertyType = root.getProperty("abstractBar");
|
||||
var root = ClassTypeInformation.from(Foo.class);
|
||||
var propertyType = root.getProperty("abstractBar");
|
||||
TypeInformation<?> barType = ClassTypeInformation.from(Bar.class);
|
||||
|
||||
doReturn(Alias.of(barType)).when(accessor).readAliasFrom(source);
|
||||
doReturn(barType).when(mapper).resolveTypeFrom(Alias.of(barType));
|
||||
|
||||
TypeInformation<?> result = typeMapper.readType(source, propertyType);
|
||||
var result = typeMapper.readType(source, propertyType);
|
||||
|
||||
assertThat(result).isInstanceOf(TypeInformation.class);
|
||||
|
||||
|
||||
@@ -30,9 +30,7 @@ import java.time.temporal.Temporal;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@@ -41,7 +39,6 @@ import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.core.convert.support.GenericConversionService;
|
||||
|
||||
/**
|
||||
@@ -59,9 +56,9 @@ class Jsr310ConvertersUnitTests {
|
||||
|
||||
static {
|
||||
|
||||
GenericConversionService conversionService = new GenericConversionService();
|
||||
var conversionService = new GenericConversionService();
|
||||
|
||||
for (Converter<?, ?> converter : Jsr310Converters.getConvertersToRegister()) {
|
||||
for (var converter : Jsr310Converters.getConvertersToRegister()) {
|
||||
conversionService.addConverter(converter);
|
||||
}
|
||||
|
||||
@@ -82,7 +79,7 @@ class Jsr310ConvertersUnitTests {
|
||||
// DATACMNS-606, DATACMNS-1091
|
||||
void convertsLocalDateTimeToDate() {
|
||||
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
var now = LocalDateTime.now();
|
||||
assertThat(CONVERSION_SERVICE.convert(now, Date.class)).matches(formatted(now, FORMAT_FULL));
|
||||
}
|
||||
|
||||
@@ -96,7 +93,7 @@ class Jsr310ConvertersUnitTests {
|
||||
// DATACMNS-606, DATACMNS-1091
|
||||
void convertsLocalDateToDate() {
|
||||
|
||||
LocalDate now = LocalDate.now();
|
||||
var now = LocalDate.now();
|
||||
assertThat(CONVERSION_SERVICE.convert(now, Date.class)).matches(formatted(now, FORMAT_DATE));
|
||||
}
|
||||
|
||||
@@ -110,7 +107,7 @@ class Jsr310ConvertersUnitTests {
|
||||
// DATACMNS-606, DATACMNS-1091
|
||||
void convertsLocalTimeToDate() {
|
||||
|
||||
LocalTime now = LocalTime.now();
|
||||
var now = LocalTime.now();
|
||||
assertThat(CONVERSION_SERVICE.convert(now, Date.class)).matches(formatted(now, FORMAT_TIME));
|
||||
}
|
||||
|
||||
@@ -118,7 +115,7 @@ class Jsr310ConvertersUnitTests {
|
||||
// DATACMNS-623
|
||||
void convertsDateToInstant() {
|
||||
|
||||
Date now = new Date();
|
||||
var now = new Date();
|
||||
assertThat(CONVERSION_SERVICE.convert(now, Instant.class)).isEqualTo(now.toInstant());
|
||||
}
|
||||
|
||||
@@ -126,7 +123,7 @@ class Jsr310ConvertersUnitTests {
|
||||
// DATACMNS-623
|
||||
void convertsInstantToDate() {
|
||||
|
||||
Date now = new Date();
|
||||
var now = new Date();
|
||||
assertThat(CONVERSION_SERVICE.convert(now.toInstant(), Date.class)).isEqualTo(now);
|
||||
}
|
||||
|
||||
@@ -137,7 +134,7 @@ class Jsr310ConvertersUnitTests {
|
||||
ids.put("Europe/Berlin", ZoneId.of("Europe/Berlin"));
|
||||
ids.put("+06:00", ZoneId.of("+06:00"));
|
||||
|
||||
for (Entry<String, ZoneId> entry : ids.entrySet()) {
|
||||
for (var entry : ids.entrySet()) {
|
||||
assertThat(CONVERSION_SERVICE.convert(entry.getValue(), String.class)).isEqualTo(entry.getKey());
|
||||
assertThat(CONVERSION_SERVICE.convert(entry.getKey(), ZoneId.class)).isEqualTo(entry.getValue());
|
||||
}
|
||||
@@ -147,10 +144,10 @@ class Jsr310ConvertersUnitTests {
|
||||
// DATACMNS-1243
|
||||
void convertsLocalDateTimeToInstantAndBack() {
|
||||
|
||||
LocalDateTime dateTime = LocalDateTime.now();
|
||||
var dateTime = LocalDateTime.now();
|
||||
|
||||
Instant instant = CONVERSION_SERVICE.convert(dateTime, Instant.class);
|
||||
LocalDateTime convertedDateTime = CONVERSION_SERVICE.convert(dateTime, LocalDateTime.class);
|
||||
var instant = CONVERSION_SERVICE.convert(dateTime, Instant.class);
|
||||
var convertedDateTime = CONVERSION_SERVICE.convert(dateTime, LocalDateTime.class);
|
||||
|
||||
assertThat(convertedDateTime).isEqualTo(dateTime);
|
||||
}
|
||||
@@ -159,7 +156,7 @@ class Jsr310ConvertersUnitTests {
|
||||
// DATACMNS-1440
|
||||
void convertsIsoFormattedStringToLocalDate() {
|
||||
|
||||
LocalDate date = LocalDate.now();
|
||||
var date = LocalDate.now();
|
||||
|
||||
assertThat(CONVERSION_SERVICE.convert(date.toString(), LocalDate.class)).isEqualTo(date);
|
||||
}
|
||||
@@ -168,7 +165,7 @@ class Jsr310ConvertersUnitTests {
|
||||
// DATACMNS-1440
|
||||
void convertsIsoFormattedStringToLocalDateTime() {
|
||||
|
||||
LocalDateTime date = LocalDateTime.now();
|
||||
var date = LocalDateTime.now();
|
||||
|
||||
assertThat(CONVERSION_SERVICE.convert(date.toString(), LocalDateTime.class)).isEqualTo(date);
|
||||
}
|
||||
@@ -177,20 +174,20 @@ class Jsr310ConvertersUnitTests {
|
||||
// DATACMNS-1440
|
||||
void convertsIsoFormattedStringToInstant() {
|
||||
|
||||
Instant date = Instant.now();
|
||||
var date = Instant.now();
|
||||
|
||||
assertThat(CONVERSION_SERVICE.convert(date.toString(), Instant.class)).isEqualTo(date);
|
||||
}
|
||||
|
||||
private static Predicate<Date> formatted(Temporal expected, String format) {
|
||||
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
|
||||
var formatter = DateTimeFormatter.ofPattern(format);
|
||||
return d -> format(d, format).equals(formatter.format(expected));
|
||||
}
|
||||
|
||||
private static Predicate<Temporal> formatted(Date expected, String format) {
|
||||
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
|
||||
var formatter = DateTimeFormatter.ofPattern(format);
|
||||
return d -> formatter.format(d).equals(format(expected, format));
|
||||
}
|
||||
|
||||
@@ -200,7 +197,7 @@ class Jsr310ConvertersUnitTests {
|
||||
|
||||
static Stream<Object[]> parameters() {
|
||||
|
||||
List<Object[]> duration = Arrays.asList(new Object[][] { //
|
||||
var duration = Arrays.asList(new Object[][] { //
|
||||
{ "PT240H", Duration.ofDays(10) }, //
|
||||
{ "PT2H", Duration.ofHours(2) }, //
|
||||
{ "PT3M", Duration.ofMinutes(3) }, //
|
||||
@@ -209,7 +206,7 @@ class Jsr310ConvertersUnitTests {
|
||||
{ "PT0.000000006S", Duration.ofNanos(6) } //
|
||||
});
|
||||
|
||||
List<Object[]> period = Arrays.asList(new Object[][] { //
|
||||
var period = Arrays.asList(new Object[][] { //
|
||||
{ "P2D", Period.ofDays(2) }, //
|
||||
{ "P21D", Period.ofWeeks(3) }, //
|
||||
{ "P4M", Period.ofMonths(4) }, //
|
||||
|
||||
@@ -64,7 +64,7 @@ class MappingContextTypeInformationMapperUnitTests {
|
||||
@Test
|
||||
void extractsAliasForUnknownType() {
|
||||
|
||||
SampleMappingContext mappingContext = new SampleMappingContext();
|
||||
var mappingContext = new SampleMappingContext();
|
||||
mappingContext.initialize();
|
||||
|
||||
mapper = new MappingContextTypeInformationMapper(mappingContext);
|
||||
@@ -75,7 +75,7 @@ class MappingContextTypeInformationMapperUnitTests {
|
||||
@Test
|
||||
void doesNotReturnTypeAliasForSimpleType() {
|
||||
|
||||
SampleMappingContext mappingContext = new SampleMappingContext();
|
||||
var mappingContext = new SampleMappingContext();
|
||||
mappingContext.initialize();
|
||||
|
||||
mapper = new MappingContextTypeInformationMapper(mappingContext);
|
||||
@@ -85,7 +85,7 @@ class MappingContextTypeInformationMapperUnitTests {
|
||||
@Test
|
||||
void detectsTypeForUnknownEntity() {
|
||||
|
||||
SampleMappingContext mappingContext = new SampleMappingContext();
|
||||
var mappingContext = new SampleMappingContext();
|
||||
mappingContext.initialize();
|
||||
|
||||
mapper = new MappingContextTypeInformationMapper(mappingContext);
|
||||
@@ -101,9 +101,9 @@ class MappingContextTypeInformationMapperUnitTests {
|
||||
@SuppressWarnings("unchecked")
|
||||
void createsTypeMapperForGenericTypesWithDifferentBindings() {
|
||||
|
||||
AnnotatedTypeScanner scanner = new AnnotatedTypeScanner(TypeAlias.class);
|
||||
var scanner = new AnnotatedTypeScanner(TypeAlias.class);
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
context.setInitialEntitySet(scanner.findTypes(getClass().getPackage().getName()));
|
||||
context.initialize();
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ class SimpleTypeInformationMapperUnitTests {
|
||||
@Test
|
||||
void resolvesTypeByLoadingClass() {
|
||||
|
||||
TypeInformation<?> type = mapper.resolveTypeFrom(Alias.of("java.lang.String"));
|
||||
var type = mapper.resolveTypeFrom(Alias.of("java.lang.String"));
|
||||
|
||||
TypeInformation<?> expected = ClassTypeInformation.from(String.class);
|
||||
|
||||
|
||||
@@ -29,9 +29,9 @@ class AbstractAggregateRootUnitTests {
|
||||
@Test // DATACMNS-928
|
||||
void registersEvent() {
|
||||
|
||||
Object event = new Object();
|
||||
var event = new Object();
|
||||
|
||||
SampleAggregate aggregate = new SampleAggregate();
|
||||
var aggregate = new SampleAggregate();
|
||||
aggregate.registerEvent(event);
|
||||
|
||||
assertThat(aggregate.domainEvents()).containsExactly(event);
|
||||
@@ -40,9 +40,9 @@ class AbstractAggregateRootUnitTests {
|
||||
@Test // DATACMNS-928
|
||||
void clearsEvents() {
|
||||
|
||||
Object event = new Object();
|
||||
var event = new Object();
|
||||
|
||||
SampleAggregate aggregate = new SampleAggregate();
|
||||
var aggregate = new SampleAggregate();
|
||||
aggregate.registerEvent(event);
|
||||
|
||||
assertThat(aggregate.domainEvents()).isNotEmpty();
|
||||
@@ -55,10 +55,10 @@ class AbstractAggregateRootUnitTests {
|
||||
@Test // DATACMNS-928, DATACMNS-1162
|
||||
void copiesEventsFromExistingAggregate() {
|
||||
|
||||
SampleAggregate aggregate = new SampleAggregate();
|
||||
var aggregate = new SampleAggregate();
|
||||
aggregate.registerEvent(new Object());
|
||||
|
||||
SampleAggregate result = new SampleAggregate().andEventsFrom(aggregate);
|
||||
var result = new SampleAggregate().andEventsFrom(aggregate);
|
||||
|
||||
assertThat(result.domainEvents()).isEqualTo(aggregate.domainEvents());
|
||||
}
|
||||
@@ -66,13 +66,13 @@ class AbstractAggregateRootUnitTests {
|
||||
@Test // DATACMNS-928, DATACMNS-1162
|
||||
void addsEventAndReturnsAggregate() {
|
||||
|
||||
Object first = new Object();
|
||||
Object second = new Object();
|
||||
var first = new Object();
|
||||
var second = new Object();
|
||||
|
||||
SampleAggregate aggregate = new SampleAggregate();
|
||||
var aggregate = new SampleAggregate();
|
||||
aggregate.registerEvent(first);
|
||||
|
||||
SampleAggregate result = aggregate.andEvent(second);
|
||||
var result = aggregate.andEvent(second);
|
||||
|
||||
assertThat(result).isSameAs(aggregate);
|
||||
assertThat(result.domainEvents()).containsExactly(first, second);
|
||||
|
||||
@@ -46,7 +46,7 @@ public abstract class AbstractPageRequestUnitTests {
|
||||
assertThat(request.hasPrevious()).isTrue();
|
||||
assertThat(request.next()).isEqualTo((Pageable) newPageRequest(2, 10));
|
||||
|
||||
Pageable first = request.previousOrFirst();
|
||||
var first = request.previousOrFirst();
|
||||
|
||||
assertThat(first.hasPrevious()).isFalse();
|
||||
assertThat(first).isEqualTo(newPageRequest(0, 10));
|
||||
@@ -57,7 +57,7 @@ public abstract class AbstractPageRequestUnitTests {
|
||||
@Test // DATACMNS-402
|
||||
void equalsHonoursPageAndSize() {
|
||||
|
||||
AbstractPageRequest request = newPageRequest(0, 10);
|
||||
var request = newPageRequest(0, 10);
|
||||
|
||||
// Equals itself
|
||||
assertEqualsAndHashcode(request, request);
|
||||
@@ -80,7 +80,7 @@ public abstract class AbstractPageRequestUnitTests {
|
||||
@Test // DATACMNS-1327
|
||||
void getOffsetShouldNotCauseOverflow() {
|
||||
|
||||
AbstractPageRequest request = newPageRequest(Integer.MAX_VALUE, Integer.MAX_VALUE);
|
||||
var request = newPageRequest(Integer.MAX_VALUE, Integer.MAX_VALUE);
|
||||
|
||||
assertThat(request.getOffset()).isGreaterThan(Integer.MAX_VALUE);
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ class ExampleMatcherUnitTests {
|
||||
void withCreatesNewInstance() {
|
||||
|
||||
matcher = matching().withIgnorePaths("foo", "bar", "foo");
|
||||
ExampleMatcher configuredExampleSpec = matcher.withIgnoreCase();
|
||||
var configuredExampleSpec = matcher.withIgnoreCase();
|
||||
|
||||
assertThat(matcher).isNotSameAs(configuredExampleSpec);
|
||||
assertThat(matcher.getIgnoredPaths()).hasSize(2);
|
||||
@@ -166,14 +166,14 @@ class ExampleMatcherUnitTests {
|
||||
.withMatcher("hello", GenericPropertyMatchers.contains().caseSensitive()) //
|
||||
.withMatcher("world", GenericPropertyMatcher::endsWith);
|
||||
|
||||
ExampleMatcher sameAsMatcher = matching() //
|
||||
var sameAsMatcher = matching() //
|
||||
.withIgnorePaths("foo", "bar", "baz") //
|
||||
.withNullHandler(NullHandler.IGNORE) //
|
||||
.withIgnoreCase("ignored-case") //
|
||||
.withMatcher("hello", GenericPropertyMatchers.contains().caseSensitive()) //
|
||||
.withMatcher("world", GenericPropertyMatcher::endsWith);
|
||||
|
||||
ExampleMatcher different = matching() //
|
||||
var different = matching() //
|
||||
.withIgnorePaths("foo", "bar", "baz") //
|
||||
.withNullHandler(NullHandler.IGNORE) //
|
||||
.withMatcher("hello", GenericPropertyMatchers.contains().ignoreCase());
|
||||
|
||||
@@ -55,10 +55,10 @@ class ExampleUnitTests {
|
||||
@Test // DATACMNS-900
|
||||
void shouldCompareUsingHashCodeAndEquals() throws Exception {
|
||||
|
||||
Example<Person> example = Example.of(person, matching().withIgnoreCase("firstname"));
|
||||
Example<Person> sameAsExample = Example.of(person, matching().withIgnoreCase("firstname"));
|
||||
var example = Example.of(person, matching().withIgnoreCase("firstname"));
|
||||
var sameAsExample = Example.of(person, matching().withIgnoreCase("firstname"));
|
||||
|
||||
Example<Person> different = Example.of(person,
|
||||
var different = Example.of(person,
|
||||
matching().withMatcher("firstname", GenericPropertyMatchers.contains()));
|
||||
|
||||
assertThat(example.hashCode()).isEqualTo(sameAsExample.hashCode());
|
||||
|
||||
@@ -35,7 +35,7 @@ class PageImplUnitTests {
|
||||
@Test
|
||||
void assertEqualsForSimpleSetup() {
|
||||
|
||||
PageImpl<String> page = new PageImpl<>(Collections.singletonList("Foo"));
|
||||
var page = new PageImpl<String>(Collections.singletonList("Foo"));
|
||||
|
||||
assertEqualsAndHashcode(page, page);
|
||||
assertEqualsAndHashcode(page, new PageImpl<>(Collections.singletonList("Foo")));
|
||||
@@ -45,9 +45,9 @@ class PageImplUnitTests {
|
||||
void assertEqualsForComplexSetup() {
|
||||
|
||||
Pageable pageable = PageRequest.of(0, 10);
|
||||
List<String> content = Collections.singletonList("Foo");
|
||||
var content = Collections.singletonList("Foo");
|
||||
|
||||
PageImpl<String> page = new PageImpl<>(content, pageable, 100);
|
||||
var page = new PageImpl<String>(content, pageable, 100);
|
||||
|
||||
assertEqualsAndHashcode(page, page);
|
||||
assertEqualsAndHashcode(page, new PageImpl<>(content, pageable, 100));
|
||||
@@ -127,7 +127,7 @@ class PageImplUnitTests {
|
||||
@Test // DATACMNS-635
|
||||
void transformsPageCorrectly() {
|
||||
|
||||
Page<Integer> transformed = new PageImpl<>(Arrays.asList("foo", "bar"), PageRequest.of(0, 2), 10)
|
||||
var transformed = new PageImpl<>(Arrays.asList("foo", "bar"), PageRequest.of(0, 2), 10)
|
||||
.map(String::length);
|
||||
|
||||
assertThat(transformed.getContent()).hasSize(2).contains(3, 3);
|
||||
|
||||
@@ -43,7 +43,7 @@ class PageRequestUnitTests extends AbstractPageRequestUnitTests {
|
||||
@Test
|
||||
void equalsRegardsSortCorrectly() {
|
||||
|
||||
Sort sort = Sort.by(Direction.DESC, "foo");
|
||||
var sort = Sort.by(Direction.DESC, "foo");
|
||||
AbstractPageRequest request = PageRequest.ofSize(10).withPage(1).withSort(sort);
|
||||
|
||||
// Equals itself
|
||||
|
||||
@@ -39,7 +39,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-651
|
||||
void excludesLowerBoundIfConfigured() {
|
||||
|
||||
Range<Long> range = Range.from(Bound.exclusive(10L)).to(Bound.inclusive(20L));
|
||||
var range = Range.from(Bound.exclusive(10L)).to(Bound.inclusive(20L));
|
||||
|
||||
assertThat(range.contains(10L)).isFalse();
|
||||
assertThat(range.contains(20L)).isTrue();
|
||||
@@ -51,7 +51,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-651
|
||||
void excludesUpperBoundIfConfigured() {
|
||||
|
||||
Range<Long> range = Range.of(Bound.inclusive(10L), Bound.exclusive(20L));
|
||||
var range = Range.of(Bound.inclusive(10L), Bound.exclusive(20L));
|
||||
|
||||
assertThat(range.contains(10L)).isTrue();
|
||||
assertThat(range.contains(20L)).isFalse();
|
||||
@@ -63,7 +63,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-651, DATACMNS-1050
|
||||
void handlesOpenUpperBoundCorrectly() {
|
||||
|
||||
Range<Long> range = Range.of(Bound.inclusive(10L), Bound.unbounded());
|
||||
var range = Range.of(Bound.inclusive(10L), Bound.unbounded());
|
||||
|
||||
assertThat(range.contains(10L)).isTrue();
|
||||
assertThat(range.contains(20L)).isTrue();
|
||||
@@ -78,7 +78,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-651, DATACMNS-1050
|
||||
void handlesOpenLowerBoundCorrectly() {
|
||||
|
||||
Range<Long> range = Range.of(Bound.unbounded(), Bound.inclusive(20L));
|
||||
var range = Range.of(Bound.unbounded(), Bound.inclusive(20L));
|
||||
|
||||
assertThat(range.contains(10L)).isTrue();
|
||||
assertThat(range.contains(20L)).isTrue();
|
||||
@@ -92,7 +92,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-1050
|
||||
void createsInclusiveBoundaryCorrectly() {
|
||||
|
||||
Bound<Integer> bound = Bound.inclusive(10);
|
||||
var bound = Bound.inclusive(10);
|
||||
|
||||
assertThat(bound.isInclusive()).isTrue();
|
||||
assertThat(bound.getValue()).contains(10);
|
||||
@@ -101,7 +101,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-1050
|
||||
void createsExclusiveBoundaryCorrectly() {
|
||||
|
||||
Bound<Double> bound = Bound.exclusive(10d);
|
||||
var bound = Bound.exclusive(10d);
|
||||
|
||||
assertThat(bound.isInclusive()).isFalse();
|
||||
assertThat(bound.getValue()).contains(10d);
|
||||
@@ -110,10 +110,10 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-1050
|
||||
void createsRangeFromBoundariesCorrectly() {
|
||||
|
||||
Bound<Long> lower = Bound.inclusive(10L);
|
||||
Bound<Long> upper = Bound.inclusive(20L);
|
||||
var lower = Bound.inclusive(10L);
|
||||
var upper = Bound.inclusive(20L);
|
||||
|
||||
Range<Long> range = Range.of(lower, upper);
|
||||
var range = Range.of(lower, upper);
|
||||
|
||||
assertThat(range.contains(9L)).isFalse();
|
||||
assertThat(range.contains(10L)).isTrue();
|
||||
@@ -124,7 +124,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-1050
|
||||
void shouldExclusiveBuildRangeLowerFirst() {
|
||||
|
||||
Range<Long> range = Range.from(Bound.exclusive(10L)).to(Bound.exclusive(20L));
|
||||
var range = Range.from(Bound.exclusive(10L)).to(Bound.exclusive(20L));
|
||||
|
||||
assertThat(range.contains(9L)).isFalse();
|
||||
assertThat(range.contains(10L)).isFalse();
|
||||
@@ -138,7 +138,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-1050
|
||||
void shouldBuildRange() {
|
||||
|
||||
Range<Long> range = Range.from(Bound.inclusive(10L)).to(Bound.inclusive(20L));
|
||||
var range = Range.from(Bound.inclusive(10L)).to(Bound.inclusive(20L));
|
||||
|
||||
assertThat(range.contains(9L)).isFalse();
|
||||
assertThat(range.contains(10L)).isTrue();
|
||||
@@ -162,7 +162,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-1499
|
||||
void createsOpenRange() {
|
||||
|
||||
Range<Long> range = Range.open(5L, 10L);
|
||||
var range = Range.open(5L, 10L);
|
||||
|
||||
assertThat(range.contains(5L)).isFalse();
|
||||
assertThat(range.contains(10L)).isFalse();
|
||||
@@ -171,7 +171,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-1499
|
||||
void createsClosedRange() {
|
||||
|
||||
Range<Long> range = Range.closed(5L, 10L);
|
||||
var range = Range.closed(5L, 10L);
|
||||
|
||||
assertThat(range.contains(5L)).isTrue();
|
||||
assertThat(range.contains(10L)).isTrue();
|
||||
@@ -180,7 +180,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-1499
|
||||
void createsLeftOpenRange() {
|
||||
|
||||
Range<Long> range = Range.leftOpen(5L, 10L);
|
||||
var range = Range.leftOpen(5L, 10L);
|
||||
|
||||
assertThat(range.contains(5L)).isFalse();
|
||||
assertThat(range.contains(10L)).isTrue();
|
||||
@@ -189,7 +189,7 @@ class RangeUnitTests {
|
||||
@Test // DATACMNS-1499
|
||||
void createsRightOpenRange() {
|
||||
|
||||
Range<Long> range = Range.rightOpen(5L, 10L);
|
||||
var range = Range.rightOpen(5L, 10L);
|
||||
|
||||
assertThat(range.contains(5L)).isTrue();
|
||||
assertThat(range.contains(10L)).isFalse();
|
||||
|
||||
@@ -92,14 +92,14 @@ class SortUnitTests {
|
||||
@Test
|
||||
void allowsCombiningSorts() {
|
||||
|
||||
Sort sort = Sort.by("foo").and(Sort.by("bar"));
|
||||
var sort = Sort.by("foo").and(Sort.by("bar"));
|
||||
assertThat(sort).containsExactly(Order.by("foo"), Order.by("bar"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void handlesAdditionalNullSort() {
|
||||
|
||||
Sort sort = Sort.by("foo").and(Sort.unsorted());
|
||||
var sort = Sort.by("foo").and(Sort.unsorted());
|
||||
|
||||
assertThat(sort).containsExactly(Order.by("foo"));
|
||||
}
|
||||
@@ -127,8 +127,8 @@ class SortUnitTests {
|
||||
@Test // DATACMNS-436
|
||||
void ordersWithDifferentIgnoreCaseDoNotEqual() {
|
||||
|
||||
Order foo = Order.by("foo");
|
||||
Order fooIgnoreCase = Order.by("foo").ignoreCase();
|
||||
var foo = Order.by("foo");
|
||||
var fooIgnoreCase = Order.by("foo").ignoreCase();
|
||||
|
||||
assertThat(foo).isNotEqualTo(fooIgnoreCase);
|
||||
assertThat(foo.hashCode()).isNotEqualTo(fooIgnoreCase.hashCode());
|
||||
@@ -157,8 +157,8 @@ class SortUnitTests {
|
||||
@Test // DATACMNS-908
|
||||
void createsNewOrderForDifferentProperty() {
|
||||
|
||||
Order source = Order.desc("foo").nullsFirst().ignoreCase();
|
||||
Order result = source.withProperty("bar");
|
||||
var source = Order.desc("foo").nullsFirst().ignoreCase();
|
||||
var result = source.withProperty("bar");
|
||||
|
||||
assertThat(result.getProperty()).isEqualTo("bar");
|
||||
assertThat(result.getDirection()).isEqualTo(source.getDirection());
|
||||
|
||||
@@ -69,7 +69,7 @@ class SpringDataJaxbUnitTests {
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
|
||||
JAXBContext context = JAXBContext.newInstance("org.springframework.data.domain.jaxb");
|
||||
var context = JAXBContext.newInstance("org.springframework.data.domain.jaxb");
|
||||
|
||||
marshaller = context.createMarshaller();
|
||||
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
|
||||
@@ -80,8 +80,8 @@ class SpringDataJaxbUnitTests {
|
||||
@Test
|
||||
void usesCustomTypeAdapterForPageRequests() throws Exception {
|
||||
|
||||
StringWriter writer = new StringWriter();
|
||||
Wrapper wrapper = new Wrapper();
|
||||
var writer = new StringWriter();
|
||||
var wrapper = new Wrapper();
|
||||
wrapper.pageable = pageable;
|
||||
wrapper.sort = sort;
|
||||
wrapper.pageableWithoutSort = PageRequest.of(10, 20);
|
||||
@@ -93,7 +93,7 @@ class SpringDataJaxbUnitTests {
|
||||
@Test
|
||||
void readsPageRequest() throws Exception {
|
||||
|
||||
Object result = unmarshaller.unmarshal(resource.getFile());
|
||||
var result = unmarshaller.unmarshal(resource.getFile());
|
||||
|
||||
assertThat(result).isInstanceOf(Wrapper.class);
|
||||
assertThat(((Wrapper) result).pageable).isEqualTo(pageable);
|
||||
@@ -103,8 +103,8 @@ class SpringDataJaxbUnitTests {
|
||||
@Test
|
||||
void writesPlainPage() throws Exception {
|
||||
|
||||
PageWrapper wrapper = new PageWrapper();
|
||||
Content content = new Content();
|
||||
var wrapper = new PageWrapper();
|
||||
var content = new Content();
|
||||
content.name = "Foo";
|
||||
wrapper.page = new PageImpl<>(Collections.singletonList(content));
|
||||
wrapper.pageWithLinks = new PageImpl<>(Collections.singletonList(content));
|
||||
@@ -116,8 +116,8 @@ class SpringDataJaxbUnitTests {
|
||||
|
||||
try {
|
||||
|
||||
Scanner scanner = new Scanner(resource.getInputStream());
|
||||
StringBuilder builder = new StringBuilder();
|
||||
var scanner = new Scanner(resource.getInputStream());
|
||||
var builder = new StringBuilder();
|
||||
|
||||
while (scanner.hasNextLine()) {
|
||||
builder.append(scanner.nextLine()).append("\n");
|
||||
|
||||
@@ -56,7 +56,7 @@ class BoxUnitTests {
|
||||
@Test // DATACMNS-482
|
||||
void testSerialization() {
|
||||
|
||||
Box serialized = (Box) SerializationUtils.deserialize(SerializationUtils.serialize(first));
|
||||
var serialized = (Box) SerializationUtils.deserialize(SerializationUtils.serialize(first));
|
||||
assertThat(serialized).isEqualTo(first);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,8 +41,8 @@ class CircleUnitTests {
|
||||
@Test // DATACMNS-437
|
||||
void considersTwoCirclesEqualCorrectly() {
|
||||
|
||||
Circle left = new Circle(1, 1, 1);
|
||||
Circle right = new Circle(1, 1, 1);
|
||||
var left = new Circle(1, 1, 1);
|
||||
var right = new Circle(1, 1, 1);
|
||||
|
||||
assertThat(left).isEqualTo(right);
|
||||
assertThat(right).isEqualTo(left);
|
||||
@@ -62,9 +62,9 @@ class CircleUnitTests {
|
||||
@Test // DATACMNS-482
|
||||
void testSerialization() {
|
||||
|
||||
Circle circle = new Circle(1, 1, 1);
|
||||
var circle = new Circle(1, 1, 1);
|
||||
|
||||
Circle serialized = (Circle) SerializationUtils.deserialize(SerializationUtils.serialize(circle));
|
||||
var serialized = (Circle) SerializationUtils.deserialize(SerializationUtils.serialize(circle));
|
||||
assertThat(serialized).isEqualTo(circle);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import static org.springframework.data.geo.Metrics.*;
|
||||
|
||||
import org.assertj.core.data.Offset;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.data.domain.Range;
|
||||
|
||||
import org.springframework.data.domain.Range.Bound;
|
||||
import org.springframework.util.SerializationUtils;
|
||||
|
||||
@@ -45,8 +45,8 @@ class DistanceUnitTests {
|
||||
@Test // DATACMNS-437
|
||||
void addsDistancesWithoutExplicitMetric() {
|
||||
|
||||
Distance left = new Distance(2.5, KILOMETERS);
|
||||
Distance right = new Distance(2.5, KILOMETERS);
|
||||
var left = new Distance(2.5, KILOMETERS);
|
||||
var right = new Distance(2.5, KILOMETERS);
|
||||
|
||||
assertThat(left.add(right)).isEqualTo(new Distance(5.0, KILOMETERS));
|
||||
}
|
||||
@@ -54,8 +54,8 @@ class DistanceUnitTests {
|
||||
@Test // DATACMNS-437
|
||||
void addsDistancesWithExplicitMetric() {
|
||||
|
||||
Distance left = new Distance(2.5, KILOMETERS);
|
||||
Distance right = new Distance(2.5, KILOMETERS);
|
||||
var left = new Distance(2.5, KILOMETERS);
|
||||
var right = new Distance(2.5, KILOMETERS);
|
||||
|
||||
assertThat(left.add(right, MILES)).isEqualTo(new Distance(3.106856281073925, MILES));
|
||||
}
|
||||
@@ -109,9 +109,9 @@ class DistanceUnitTests {
|
||||
@Test // DATACMNS-482
|
||||
void testSerialization() {
|
||||
|
||||
Distance dist = new Distance(10, KILOMETERS);
|
||||
var dist = new Distance(10, KILOMETERS);
|
||||
|
||||
Distance serialized = (Distance) SerializationUtils.deserialize(SerializationUtils.serialize(dist));
|
||||
var serialized = (Distance) SerializationUtils.deserialize(SerializationUtils.serialize(dist));
|
||||
assertThat(serialized).isEqualTo(dist);
|
||||
}
|
||||
|
||||
@@ -123,10 +123,10 @@ class DistanceUnitTests {
|
||||
@Test // DATACMNS-651
|
||||
void createsARangeCorrectly() {
|
||||
|
||||
Distance twoKilometers = new Distance(2, KILOMETERS);
|
||||
Distance tenKilometers = new Distance(10, KILOMETERS);
|
||||
var twoKilometers = new Distance(2, KILOMETERS);
|
||||
var tenKilometers = new Distance(10, KILOMETERS);
|
||||
|
||||
Range<Distance> range = Distance.between(twoKilometers, tenKilometers);
|
||||
var range = Distance.between(twoKilometers, tenKilometers);
|
||||
|
||||
assertThat(range).isNotNull();
|
||||
assertThat(range.getLowerBound()).isEqualTo(Bound.inclusive(twoKilometers));
|
||||
@@ -136,10 +136,10 @@ class DistanceUnitTests {
|
||||
@Test // DATACMNS-651
|
||||
void createsARangeFromPiecesCorrectly() {
|
||||
|
||||
Distance twoKilometers = new Distance(2, KILOMETERS);
|
||||
Distance tenKilometers = new Distance(10, KILOMETERS);
|
||||
var twoKilometers = new Distance(2, KILOMETERS);
|
||||
var tenKilometers = new Distance(10, KILOMETERS);
|
||||
|
||||
Range<Distance> range = Distance.between(2, KILOMETERS, 10, KILOMETERS);
|
||||
var range = Distance.between(2, KILOMETERS, 10, KILOMETERS);
|
||||
|
||||
assertThat(range).isNotNull();
|
||||
assertThat(range.getLowerBound()).isEqualTo(Bound.inclusive(twoKilometers));
|
||||
@@ -149,9 +149,9 @@ class DistanceUnitTests {
|
||||
@Test // DATACMNS-651
|
||||
void implementsComparableCorrectly() {
|
||||
|
||||
Distance twoKilometers = new Distance(2, KILOMETERS);
|
||||
Distance tenKilometers = new Distance(10, KILOMETERS);
|
||||
Distance tenKilometersInMiles = new Distance(6.21371256214785, MILES);
|
||||
var twoKilometers = new Distance(2, KILOMETERS);
|
||||
var tenKilometers = new Distance(10, KILOMETERS);
|
||||
var tenKilometersInMiles = new Distance(6.21371256214785, MILES);
|
||||
|
||||
assertThat(tenKilometers.compareTo(tenKilometers)).isEqualTo(0);
|
||||
assertThat(tenKilometers.compareTo(tenKilometersInMiles)).isEqualTo(0);
|
||||
|
||||
@@ -41,8 +41,8 @@ class GeoModuleIntegrationTests {
|
||||
@Test // DATACMNS-475
|
||||
void deserializesDistance() throws Exception {
|
||||
|
||||
String json = "{\"value\":10.0,\"metric\":\"KILOMETERS\"}";
|
||||
Distance reference = new Distance(10.0, Metrics.KILOMETERS);
|
||||
var json = "{\"value\":10.0,\"metric\":\"KILOMETERS\"}";
|
||||
var reference = new Distance(10.0, Metrics.KILOMETERS);
|
||||
|
||||
assertThat(mapper.readValue(json, Distance.class)).isEqualTo(reference);
|
||||
assertThat(mapper.writeValueAsString(reference)).isEqualTo(json);
|
||||
@@ -51,8 +51,8 @@ class GeoModuleIntegrationTests {
|
||||
@Test // DATACMNS-475
|
||||
void deserializesPoint() throws Exception {
|
||||
|
||||
String json = "{\"x\":10.0,\"y\":20.0}";
|
||||
Point reference = new Point(10.0, 20.0);
|
||||
var json = "{\"x\":10.0,\"y\":20.0}";
|
||||
var reference = new Point(10.0, 20.0);
|
||||
|
||||
assertThat(mapper.readValue(json, Point.class)).isEqualTo(reference);
|
||||
assertThat(mapper.writeValueAsString(reference)).isEqualTo(json);
|
||||
@@ -61,8 +61,8 @@ class GeoModuleIntegrationTests {
|
||||
@Test // DATACMNS-475
|
||||
void deserializesCircle() throws Exception {
|
||||
|
||||
String json = "{\"center\":{\"x\":10.0,\"y\":20.0},\"radius\":{\"value\":10.0,\"metric\":\"KILOMETERS\"}}";
|
||||
Circle reference = new Circle(new Point(10.0, 20.0), new Distance(10, Metrics.KILOMETERS));
|
||||
var json = "{\"center\":{\"x\":10.0,\"y\":20.0},\"radius\":{\"value\":10.0,\"metric\":\"KILOMETERS\"}}";
|
||||
var reference = new Circle(new Point(10.0, 20.0), new Distance(10, Metrics.KILOMETERS));
|
||||
|
||||
assertThat(mapper.readValue(json, Circle.class)).isEqualTo(reference);
|
||||
assertThat(mapper.writeValueAsString(reference)).isEqualTo(json);
|
||||
@@ -71,8 +71,8 @@ class GeoModuleIntegrationTests {
|
||||
@Test // DATACMNS-475
|
||||
void deserializesBox() throws Exception {
|
||||
|
||||
String json = "{\"first\":{\"x\":1.0,\"y\":2.0},\"second\":{\"x\":2.0,\"y\":3.0}}";
|
||||
Box reference = new Box(new Point(1, 2), new Point(2, 3));
|
||||
var json = "{\"first\":{\"x\":1.0,\"y\":2.0},\"second\":{\"x\":2.0,\"y\":3.0}}";
|
||||
var reference = new Box(new Point(1, 2), new Point(2, 3));
|
||||
|
||||
assertThat(mapper.readValue(json, Box.class)).isEqualTo(reference);
|
||||
assertThat(mapper.writeValueAsString(reference)).isEqualTo(json);
|
||||
@@ -81,8 +81,8 @@ class GeoModuleIntegrationTests {
|
||||
@Test // DATACMNS-475
|
||||
void deserializesPolygon() throws Exception {
|
||||
|
||||
String json = "{\"points\":[{\"x\":1.0,\"y\":2.0},{\"x\":2.0,\"y\":3.0},{\"x\":3.0,\"y\":4.0}]}";
|
||||
Polygon reference = new Polygon(new Point(1, 2), new Point(2, 3), new Point(3, 4));
|
||||
var json = "{\"points\":[{\"x\":1.0,\"y\":2.0},{\"x\":2.0,\"y\":3.0},{\"x\":3.0,\"y\":4.0}]}";
|
||||
var reference = new Polygon(new Point(1, 2), new Point(2, 3), new Point(3, 4));
|
||||
|
||||
assertThat(mapper.readValue(json, Polygon.class)).isEqualTo(reference);
|
||||
assertThat(mapper.writeValueAsString(reference)).isEqualTo(json);
|
||||
|
||||
@@ -60,10 +60,10 @@ class GeoResultUnitTests {
|
||||
@Test // DATACMNS-482
|
||||
void testSerialization() {
|
||||
|
||||
GeoResult<String> result = new GeoResult<>("test", new Distance(2));
|
||||
var result = new GeoResult<String>("test", new Distance(2));
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
GeoResult<String> serialized = (GeoResult<String>) SerializationUtils.deserialize(SerializationUtils.serialize(result));
|
||||
var serialized = (GeoResult<String>) SerializationUtils.deserialize(SerializationUtils.serialize(result));
|
||||
assertThat(serialized).isEqualTo(result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,9 +35,9 @@ class GeoResultsUnitTests {
|
||||
@SuppressWarnings("unchecked")
|
||||
void calculatesAverageForGivenGeoResults() {
|
||||
|
||||
GeoResult<Object> first = new GeoResult<>(new Object(), new Distance(2));
|
||||
GeoResult<Object> second = new GeoResult<>(new Object(), new Distance(5));
|
||||
GeoResults<Object> geoResults = new GeoResults<>(Arrays.asList(first, second));
|
||||
var first = new GeoResult<Object>(new Object(), new Distance(2));
|
||||
var second = new GeoResult<Object>(new Object(), new Distance(5));
|
||||
var geoResults = new GeoResults<Object>(Arrays.asList(first, second));
|
||||
|
||||
assertThat(geoResults.getAverageDistance()).isEqualTo(new Distance(3.5));
|
||||
}
|
||||
@@ -45,11 +45,11 @@ class GeoResultsUnitTests {
|
||||
@Test // DATACMNS-482
|
||||
void testSerialization() {
|
||||
|
||||
GeoResult<String> result = new GeoResult<>("test", new Distance(2));
|
||||
GeoResults<String> geoResults = new GeoResults<>(Collections.singletonList(result));
|
||||
var result = new GeoResult<String>("test", new Distance(2));
|
||||
var geoResults = new GeoResults<String>(Collections.singletonList(result));
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
GeoResults<String> serialized = (GeoResults<String>) SerializationUtils
|
||||
var serialized = (GeoResults<String>) SerializationUtils
|
||||
.deserialize(SerializationUtils.serialize(geoResults));
|
||||
assertThat(serialized).isEqualTo(geoResults);
|
||||
}
|
||||
|
||||
@@ -49,9 +49,9 @@ class PointUnitTests {
|
||||
@Test // DATACMNS-482
|
||||
void testSerialization() {
|
||||
|
||||
Point point = new Point(1.5, 1.5);
|
||||
var point = new Point(1.5, 1.5);
|
||||
|
||||
Point serialized = (Point) SerializationUtils.deserialize(SerializationUtils.serialize(point));
|
||||
var serialized = (Point) SerializationUtils.deserialize(SerializationUtils.serialize(point));
|
||||
assertThat(serialized).isEqualTo(point);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ class PolygonUnitTests {
|
||||
@Test // DATACMNS-437
|
||||
void createsSimplePolygon() {
|
||||
|
||||
Polygon polygon = new Polygon(third, second, first);
|
||||
var polygon = new Polygon(third, second, first);
|
||||
|
||||
assertThat(polygon).isNotNull();
|
||||
}
|
||||
@@ -48,8 +48,8 @@ class PolygonUnitTests {
|
||||
@Test // DATACMNS-437
|
||||
void isEqualForSamePoints() {
|
||||
|
||||
Polygon left = new Polygon(third, second, first);
|
||||
Polygon right = new Polygon(third, second, first);
|
||||
var left = new Polygon(third, second, first);
|
||||
var right = new Polygon(third, second, first);
|
||||
|
||||
assertThat(left).isEqualTo(right);
|
||||
assertThat(right).isEqualTo(left);
|
||||
@@ -65,9 +65,9 @@ class PolygonUnitTests {
|
||||
@Test // DATACMNS-482
|
||||
void testSerialization() {
|
||||
|
||||
Polygon polygon = new Polygon(third, second, first);
|
||||
var polygon = new Polygon(third, second, first);
|
||||
|
||||
Polygon serialized = (Polygon) SerializationUtils.deserialize(SerializationUtils.serialize(polygon));
|
||||
var serialized = (Polygon) SerializationUtils.deserialize(SerializationUtils.serialize(polygon));
|
||||
assertThat(serialized).isEqualTo(polygon);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,8 +41,8 @@ class AnnotationRevisionMetadataUnitTests {
|
||||
@Test // DATACMNS-1173
|
||||
void exposesNoInformationOnEmptyProbe() {
|
||||
|
||||
Sample sample = new Sample();
|
||||
RevisionMetadata<Long> metadata = getMetadata(sample);
|
||||
var sample = new Sample();
|
||||
var metadata = getMetadata(sample);
|
||||
|
||||
assertThat(metadata.getRevisionNumber()).isEmpty();
|
||||
|
||||
@@ -57,10 +57,10 @@ class AnnotationRevisionMetadataUnitTests {
|
||||
@Test // DATACMNS-1173
|
||||
void exposesRevisionNumber() {
|
||||
|
||||
Sample sample = new Sample();
|
||||
var sample = new Sample();
|
||||
sample.revisionNumber = 1L;
|
||||
|
||||
RevisionMetadata<Long> metadata = getMetadata(sample);
|
||||
var metadata = getMetadata(sample);
|
||||
|
||||
softly.assertThat(metadata.getRevisionNumber()).hasValue(1L);
|
||||
softly.assertThat(metadata.getRequiredRevisionNumber()).isEqualTo(1L);
|
||||
@@ -71,11 +71,11 @@ class AnnotationRevisionMetadataUnitTests {
|
||||
@Test // DATACMNS-1173
|
||||
void exposesRevisionDateAndInstantForLocalDateTime() {
|
||||
|
||||
Sample sample = new Sample();
|
||||
var sample = new Sample();
|
||||
sample.revisionDate = LocalDateTime.now();
|
||||
Instant expectedInstant = sample.revisionDate.atZone(ZoneOffset.systemDefault()).toInstant();
|
||||
var expectedInstant = sample.revisionDate.atZone(ZoneOffset.systemDefault()).toInstant();
|
||||
|
||||
RevisionMetadata<Long> metadata = getMetadata(sample);
|
||||
var metadata = getMetadata(sample);
|
||||
|
||||
softly.assertThat(metadata.getRevisionInstant()).hasValue(expectedInstant);
|
||||
softly.assertThat(metadata.getRequiredRevisionInstant()).isEqualTo(expectedInstant);
|
||||
@@ -86,11 +86,11 @@ class AnnotationRevisionMetadataUnitTests {
|
||||
@Test // DATACMNS-1251
|
||||
void exposesRevisionDateAndInstantForInstant() {
|
||||
|
||||
SampleWithInstant sample = new SampleWithInstant();
|
||||
var sample = new SampleWithInstant();
|
||||
sample.revisionInstant = Instant.now();
|
||||
LocalDateTime expectedLocalDateTime = LocalDateTime.ofInstant(sample.revisionInstant, ZoneOffset.systemDefault());
|
||||
var expectedLocalDateTime = LocalDateTime.ofInstant(sample.revisionInstant, ZoneOffset.systemDefault());
|
||||
|
||||
RevisionMetadata<Long> metadata = getMetadata(sample);
|
||||
var metadata = getMetadata(sample);
|
||||
|
||||
softly.assertThat(metadata.getRevisionInstant()).hasValue(sample.revisionInstant);
|
||||
softly.assertThat(metadata.getRequiredRevisionInstant()).isEqualTo(sample.revisionInstant);
|
||||
@@ -101,13 +101,13 @@ class AnnotationRevisionMetadataUnitTests {
|
||||
@Test // DATACMNS-1290
|
||||
void exposesRevisionDateAndInstantForLong() {
|
||||
|
||||
SampleWithLong sample = new SampleWithLong();
|
||||
var sample = new SampleWithLong();
|
||||
sample.revisionLong = 4711L;
|
||||
|
||||
Instant expectedInstant = Instant.ofEpochMilli(sample.revisionLong);
|
||||
LocalDateTime expectedLocalDateTime = LocalDateTime.ofInstant(expectedInstant, ZoneOffset.systemDefault());
|
||||
var expectedInstant = Instant.ofEpochMilli(sample.revisionLong);
|
||||
var expectedLocalDateTime = LocalDateTime.ofInstant(expectedInstant, ZoneOffset.systemDefault());
|
||||
|
||||
RevisionMetadata<Long> metadata = getMetadata(sample);
|
||||
var metadata = getMetadata(sample);
|
||||
|
||||
softly.assertThat(metadata.getRevisionInstant()).hasValue(expectedInstant);
|
||||
softly.assertThat(metadata.getRequiredRevisionInstant()).isEqualTo(expectedInstant);
|
||||
@@ -118,11 +118,11 @@ class AnnotationRevisionMetadataUnitTests {
|
||||
@Test // DATACMNS-1384
|
||||
void supportsTimestampRevisionInstant() {
|
||||
|
||||
SampleWithTimestamp sample = new SampleWithTimestamp();
|
||||
Instant now = Instant.now();
|
||||
var sample = new SampleWithTimestamp();
|
||||
var now = Instant.now();
|
||||
sample.revision = Timestamp.from(now);
|
||||
|
||||
RevisionMetadata<Long> metadata = getMetadata(sample);
|
||||
var metadata = getMetadata(sample);
|
||||
|
||||
assertThat(metadata.getRequiredRevisionInstant()).isEqualTo(now);
|
||||
}
|
||||
@@ -130,11 +130,11 @@ class AnnotationRevisionMetadataUnitTests {
|
||||
@Test // DATACMNS-1384
|
||||
void supportsDateRevisionInstant() {
|
||||
|
||||
SampleWithDate sample = new SampleWithDate();
|
||||
Date date = new Date();
|
||||
var sample = new SampleWithDate();
|
||||
var date = new Date();
|
||||
sample.revision = date;
|
||||
|
||||
RevisionMetadata<Long> metadata = getMetadata(sample);
|
||||
var metadata = getMetadata(sample);
|
||||
|
||||
assertThat(metadata.getRequiredRevisionInstant()).isEqualTo(date.toInstant());
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -46,10 +45,10 @@ class RevisionUnitTests {
|
||||
when(firstMetadata.getRevisionNumber()).thenReturn(Optional.of(1));
|
||||
when(secondMetadata.getRevisionNumber()).thenReturn(Optional.of(2));
|
||||
|
||||
Revision<Integer, Object> first = Revision.of(firstMetadata, new Object());
|
||||
Revision<Integer, Object> second = Revision.of(secondMetadata, new Object());
|
||||
var first = Revision.of(firstMetadata, new Object());
|
||||
var second = Revision.of(secondMetadata, new Object());
|
||||
|
||||
List<Revision<Integer, Object>> revisions = Stream.of(second, first).sorted().collect(Collectors.toList());
|
||||
var revisions = Stream.of(second, first).sorted().collect(Collectors.toList());
|
||||
|
||||
assertThat(revisions.get(0)).isEqualTo(first);
|
||||
assertThat(revisions.get(1)).isEqualTo(second);
|
||||
@@ -58,7 +57,7 @@ class RevisionUnitTests {
|
||||
@Test // DATACMNS-187
|
||||
void returnsRevisionNumber() {
|
||||
|
||||
Optional<Integer> reference = Optional.of(4711);
|
||||
var reference = Optional.of(4711);
|
||||
when(firstMetadata.getRevisionNumber()).thenReturn(reference);
|
||||
|
||||
assertThat(Revision.of(firstMetadata, new Object()).getRevisionNumber()).isEqualTo(reference);
|
||||
@@ -67,7 +66,7 @@ class RevisionUnitTests {
|
||||
@Test // DATACMNS-1251
|
||||
void returnsRevisionInstant() {
|
||||
|
||||
Optional<Instant> reference = Optional.of(Instant.now());
|
||||
var reference = Optional.of(Instant.now());
|
||||
when(firstMetadata.getRevisionInstant()).thenReturn(reference);
|
||||
|
||||
assertThat(Revision.of(firstMetadata, new Object()).getRevisionInstant()).isEqualTo(reference);
|
||||
|
||||
@@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -58,8 +57,8 @@ class RevisionsUnitTests {
|
||||
@Test
|
||||
void iteratesInCorrectOrder() {
|
||||
|
||||
Revisions<Integer, Object> revisions = Revisions.of(Arrays.asList(firstRevision, secondRevision));
|
||||
Iterator<Revision<Integer, Object>> iterator = revisions.iterator();
|
||||
var revisions = Revisions.of(Arrays.asList(firstRevision, secondRevision));
|
||||
var iterator = revisions.iterator();
|
||||
|
||||
assertThat(iterator.hasNext()).isTrue();
|
||||
assertThat(iterator.next()).isEqualTo(firstRevision);
|
||||
@@ -77,8 +76,8 @@ class RevisionsUnitTests {
|
||||
@Test
|
||||
void iteratesReversedRevisionsInCorrectOrder() {
|
||||
|
||||
Revisions<Integer, Object> revisions = Revisions.of(Arrays.asList(firstRevision, secondRevision));
|
||||
Iterator<Revision<Integer, Object>> iterator = revisions.reverse().iterator();
|
||||
var revisions = Revisions.of(Arrays.asList(firstRevision, secondRevision));
|
||||
var iterator = revisions.reverse().iterator();
|
||||
|
||||
assertThat(iterator.hasNext()).isTrue();
|
||||
assertThat(iterator.next()).isEqualTo(secondRevision);
|
||||
@@ -90,8 +89,8 @@ class RevisionsUnitTests {
|
||||
@Test
|
||||
void forcesInvalidlyOrderedRevisionsToBeOrdered() {
|
||||
|
||||
Revisions<Integer, Object> revisions = Revisions.of(Arrays.asList(secondRevision, firstRevision));
|
||||
Iterator<Revision<Integer, Object>> iterator = revisions.iterator();
|
||||
var revisions = Revisions.of(Arrays.asList(secondRevision, firstRevision));
|
||||
var iterator = revisions.iterator();
|
||||
|
||||
assertThat(iterator.hasNext()).isTrue();
|
||||
assertThat(iterator.next()).isEqualTo(firstRevision);
|
||||
|
||||
@@ -36,12 +36,12 @@ class InstantiationAwarePersistentPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-1639
|
||||
void shouldCreateNewInstance() {
|
||||
|
||||
EntityInstantiators instantiators = new EntityInstantiators();
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var instantiators = new EntityInstantiators();
|
||||
var context = new SampleMappingContext();
|
||||
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Sample.class);
|
||||
|
||||
Sample sample = new Sample("Dave", "Matthews", 42);
|
||||
var sample = new Sample("Dave", "Matthews", 42);
|
||||
|
||||
PersistentPropertyAccessor<Sample> wrapper = new InstantiationAwarePropertyAccessor<>(sample,
|
||||
entity::getPropertyAccessor,
|
||||
@@ -55,12 +55,12 @@ class InstantiationAwarePersistentPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-1768
|
||||
void shouldSetMultipleProperties() {
|
||||
|
||||
EntityInstantiators instantiators = new EntityInstantiators();
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var instantiators = new EntityInstantiators();
|
||||
var context = new SampleMappingContext();
|
||||
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Sample.class);
|
||||
|
||||
Sample bean = new Sample("Dave", "Matthews", 42);
|
||||
var bean = new Sample("Dave", "Matthews", 42);
|
||||
|
||||
PersistentPropertyAccessor<Sample> wrapper = new InstantiationAwarePropertyAccessor<>(bean,
|
||||
entity::getPropertyAccessor, instantiators);
|
||||
|
||||
@@ -45,8 +45,8 @@ class ParameterUnitTests<P extends PersistentProperty<P>> {
|
||||
@Test
|
||||
void twoParametersWithIdenticalSetupEqual() {
|
||||
|
||||
Parameter<Object, P> left = new Parameter<>("name", type, annotations, entity);
|
||||
Parameter<Object, P> right = new Parameter<>("name", type, annotations, entity);
|
||||
var left = new Parameter<Object, P>("name", type, annotations, entity);
|
||||
var right = new Parameter<Object, P>("name", type, annotations, entity);
|
||||
|
||||
assertThat(left).isEqualTo(right);
|
||||
assertThat(left.hashCode()).isEqualTo(right.hashCode());
|
||||
@@ -55,8 +55,8 @@ class ParameterUnitTests<P extends PersistentProperty<P>> {
|
||||
@Test
|
||||
void twoParametersWithIdenticalSetupAndNullNameEqual() {
|
||||
|
||||
Parameter<Object, P> left = new Parameter<>(null, type, annotations, entity);
|
||||
Parameter<Object, P> right = new Parameter<>(null, type, annotations, entity);
|
||||
var left = new Parameter<Object, P>(null, type, annotations, entity);
|
||||
var right = new Parameter<Object, P>(null, type, annotations, entity);
|
||||
|
||||
assertThat(left).isEqualTo(right);
|
||||
assertThat(left.hashCode()).isEqualTo(right.hashCode());
|
||||
@@ -65,8 +65,8 @@ class ParameterUnitTests<P extends PersistentProperty<P>> {
|
||||
@Test
|
||||
void twoParametersWithIdenticalAndNullEntitySetupEqual() {
|
||||
|
||||
Parameter<Object, P> left = new Parameter<>("name", type, annotations, null);
|
||||
Parameter<Object, P> right = new Parameter<>("name", type, annotations, null);
|
||||
var left = new Parameter<Object, P>("name", type, annotations, null);
|
||||
var right = new Parameter<Object, P>("name", type, annotations, null);
|
||||
|
||||
assertThat(left).isEqualTo(right);
|
||||
assertThat(left.hashCode()).isEqualTo(right.hashCode());
|
||||
@@ -75,8 +75,8 @@ class ParameterUnitTests<P extends PersistentProperty<P>> {
|
||||
@Test
|
||||
void twoParametersWithDifferentNameAreNotEqual() {
|
||||
|
||||
Parameter<Object, P> left = new Parameter<>("first", type, annotations, entity);
|
||||
Parameter<Object, P> right = new Parameter<>("second", type, annotations, entity);
|
||||
var left = new Parameter<Object, P>("first", type, annotations, entity);
|
||||
var right = new Parameter<Object, P>("second", type, annotations, entity);
|
||||
|
||||
assertThat(left).isNotEqualTo(right);
|
||||
}
|
||||
@@ -84,8 +84,8 @@ class ParameterUnitTests<P extends PersistentProperty<P>> {
|
||||
@Test
|
||||
void twoParametersWithDifferenTypeAreNotEqual() {
|
||||
|
||||
Parameter<Object, P> left = new Parameter<>("name", type, annotations, entity);
|
||||
Parameter<String, P> right = new Parameter<>("name", ClassTypeInformation.from(String.class), annotations,
|
||||
var left = new Parameter<Object, P>("name", type, annotations, entity);
|
||||
var right = new Parameter<String, P>("name", ClassTypeInformation.from(String.class), annotations,
|
||||
stringEntity);
|
||||
|
||||
assertThat(left).isNotEqualTo(right);
|
||||
|
||||
@@ -61,7 +61,7 @@ public class PersistentPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-1275
|
||||
public void looksUpValueForPropertyPath() {
|
||||
|
||||
Order order = new Order(new Customer("Dave"));
|
||||
var order = new Order(new Customer("Dave"));
|
||||
|
||||
setUp(order, "customer.firstname");
|
||||
|
||||
@@ -71,8 +71,8 @@ public class PersistentPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-1275
|
||||
public void setsPropertyOnNestedPath() {
|
||||
|
||||
Customer customer = new Customer("Dave");
|
||||
Order order = new Order(customer);
|
||||
var customer = new Customer("Dave");
|
||||
var order = new Order(customer);
|
||||
|
||||
setUp(order, "customer.firstname");
|
||||
|
||||
@@ -112,16 +112,16 @@ public class PersistentPropertyAccessorUnitTests {
|
||||
public void correctlyReplacesObjectInstancesWhenSettingPropertyPathOnImmutableObjects() {
|
||||
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getPersistentEntity(Outer.class);
|
||||
PersistentPropertyPath<SamplePersistentProperty> path = context.getPersistentPropertyPath("immutable.value",
|
||||
var path = context.getPersistentPropertyPath("immutable.value",
|
||||
entity.getType());
|
||||
|
||||
NestedImmutable immutable = new NestedImmutable("foo");
|
||||
Outer outer = new Outer(immutable);
|
||||
var immutable = new NestedImmutable("foo");
|
||||
var outer = new Outer(immutable);
|
||||
|
||||
PersistentPropertyAccessor accessor = entity.getPropertyAccessor(outer);
|
||||
accessor.setProperty(path, "bar");
|
||||
|
||||
Object result = accessor.getBean();
|
||||
var result = accessor.getBean();
|
||||
|
||||
assertThat(result).isInstanceOfSatisfying(Outer.class, it -> {
|
||||
assertThat(it.immutable).isNotSameAs(immutable);
|
||||
@@ -132,13 +132,13 @@ public class PersistentPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-1377
|
||||
public void shouldConvertToPropertyPathLeafType() {
|
||||
|
||||
Order order = new Order(new Customer("1"));
|
||||
var order = new Order(new Customer("1"));
|
||||
|
||||
PersistentPropertyAccessor<Order> accessor = context.getPersistentEntity(Order.class).getPropertyAccessor(order);
|
||||
ConvertingPropertyAccessor<Order> convertingAccessor = new ConvertingPropertyAccessor<>(accessor,
|
||||
var accessor = context.getPersistentEntity(Order.class).getPropertyAccessor(order);
|
||||
var convertingAccessor = new ConvertingPropertyAccessor<Order>(accessor,
|
||||
new DefaultConversionService());
|
||||
|
||||
PersistentPropertyPath<SamplePersistentProperty> path = context.getPersistentPropertyPath("customer.firstname",
|
||||
var path = context.getPersistentPropertyPath("customer.firstname",
|
||||
Order.class);
|
||||
|
||||
convertingAccessor.setProperty(path, 2);
|
||||
@@ -149,7 +149,7 @@ public class PersistentPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-1555
|
||||
public void usesTraversalContextToTraverseCollections() {
|
||||
|
||||
WithContext withContext = WithContext.builder() //
|
||||
var withContext = WithContext.builder() //
|
||||
.collection(Collections.singleton("value")) //
|
||||
.list(Collections.singletonList("value")) //
|
||||
.set(Collections.singleton("value")) //
|
||||
@@ -157,24 +157,24 @@ public class PersistentPropertyAccessorUnitTests {
|
||||
.string(" value ") //
|
||||
.build();
|
||||
|
||||
Spec collectionHelper = Spec.of("collection",
|
||||
var collectionHelper = Spec.of("collection",
|
||||
(context, property) -> context.registerCollectionHandler(property, it -> it.iterator().next()));
|
||||
Spec listHelper = Spec.of("list", (context, property) -> context.registerListHandler(property, it -> it.get(0)));
|
||||
Spec setHelper = Spec.of("set",
|
||||
var listHelper = Spec.of("list", (context, property) -> context.registerListHandler(property, it -> it.get(0)));
|
||||
var setHelper = Spec.of("set",
|
||||
(context, property) -> context.registerSetHandler(property, it -> it.iterator().next()));
|
||||
Spec mapHelper = Spec.of("map", (context, property) -> context.registerMapHandler(property, it -> it.get("key")));
|
||||
Spec stringHelper = Spec.of("string",
|
||||
var mapHelper = Spec.of("map", (context, property) -> context.registerMapHandler(property, it -> it.get("key")));
|
||||
var stringHelper = Spec.of("string",
|
||||
(context, property) -> context.registerHandler(property, String.class, it -> it.trim()));
|
||||
|
||||
Stream.of(collectionHelper, listHelper, setHelper, mapHelper, stringHelper).forEach(it -> {
|
||||
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getPersistentEntity(WithContext.class);
|
||||
PersistentProperty<?> property = entity.getRequiredPersistentProperty(it.name);
|
||||
PersistentPropertyAccessor<WithContext> accessor = entity.getPropertyAccessor(withContext);
|
||||
var accessor = entity.getPropertyAccessor(withContext);
|
||||
|
||||
TraversalContext traversalContext = it.registrar.apply(new TraversalContext(), property);
|
||||
var traversalContext = it.registrar.apply(new TraversalContext(), property);
|
||||
|
||||
PersistentPropertyPath<SamplePersistentProperty> propertyPath = context.getPersistentPropertyPath(it.name,
|
||||
var propertyPath = context.getPersistentPropertyPath(it.name,
|
||||
WithContext.class);
|
||||
|
||||
assertThat(accessor.getProperty(propertyPath, traversalContext)).isEqualTo("value");
|
||||
@@ -187,7 +187,7 @@ public class PersistentPropertyAccessorUnitTests {
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getPersistentEntity(WithContext.class);
|
||||
PersistentProperty<?> property = entity.getRequiredPersistentProperty("collection");
|
||||
|
||||
TraversalContext traversal = new TraversalContext();
|
||||
var traversal = new TraversalContext();
|
||||
|
||||
assertThatIllegalArgumentException() //
|
||||
.isThrownBy(() -> traversal.registerHandler(property, Map.class, Function.identity()));
|
||||
|
||||
@@ -112,7 +112,7 @@ class PreferredConstructorDiscovererUnitTests<P extends PersistentProperty<P>> {
|
||||
|
||||
assertThat(PreferredConstructorDiscoverer.discover(entity)).satisfies(constructor -> {
|
||||
|
||||
PersistenceConstructor annotation = constructor.getConstructor().getAnnotation(PersistenceConstructor.class);
|
||||
var annotation = constructor.getConstructor().getAnnotation(PersistenceConstructor.class);
|
||||
assertThat(annotation).isNotNull();
|
||||
assertThat(constructor.getConstructor().isSynthetic()).isFalse();
|
||||
});
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.springframework.data.mapping;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.springframework.data.mapping.PropertyPath.from;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -41,7 +40,7 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void parsesSimplePropertyCorrectly() {
|
||||
|
||||
PropertyPath reference = PropertyPath.from("userName", Foo.class);
|
||||
var reference = PropertyPath.from("userName", Foo.class);
|
||||
|
||||
assertThat(reference.hasNext()).isFalse();
|
||||
assertThat(reference.toDotPath()).isEqualTo("userName");
|
||||
@@ -51,7 +50,7 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void parsesPathPropertyCorrectly() {
|
||||
|
||||
PropertyPath reference = PropertyPath.from("userName", Bar.class);
|
||||
var reference = PropertyPath.from("userName", Bar.class);
|
||||
assertThat(reference.hasNext()).isTrue();
|
||||
assertThat(reference.next()).isEqualTo(new PropertyPath("name", FooBar.class));
|
||||
assertThat(reference.toDotPath()).isEqualTo("user.name");
|
||||
@@ -60,7 +59,7 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void prefersLongerMatches() {
|
||||
|
||||
PropertyPath reference = PropertyPath.from("userName", Sample.class);
|
||||
var reference = PropertyPath.from("userName", Sample.class);
|
||||
assertThat(reference.hasNext()).isFalse();
|
||||
assertThat(reference.toDotPath()).isEqualTo("userName");
|
||||
}
|
||||
@@ -68,7 +67,7 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void testname() {
|
||||
|
||||
PropertyPath reference = PropertyPath.from("userName", Sample2.class);
|
||||
var reference = PropertyPath.from("userName", Sample2.class);
|
||||
assertThat(reference.getSegment()).isEqualTo("user");
|
||||
assertThat(reference.hasNext()).isTrue();
|
||||
assertThat(reference.next()).isEqualTo(new PropertyPath("name", FooBar.class));
|
||||
@@ -77,7 +76,7 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void prefersExplicitPaths() {
|
||||
|
||||
PropertyPath reference = PropertyPath.from("user_name", Sample.class);
|
||||
var reference = PropertyPath.from("user_name", Sample.class);
|
||||
assertThat(reference.getSegment()).isEqualTo("user");
|
||||
assertThat(reference.hasNext()).isTrue();
|
||||
assertThat(reference.next()).isEqualTo(new PropertyPath("name", FooBar.class));
|
||||
@@ -86,7 +85,7 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void handlesGenericsCorrectly() {
|
||||
|
||||
PropertyPath reference = PropertyPath.from("usersName", Bar.class);
|
||||
var reference = PropertyPath.from("usersName", Bar.class);
|
||||
assertThat(reference.getSegment()).isEqualTo("users");
|
||||
assertThat(reference.isCollection()).isTrue();
|
||||
assertThat(reference.hasNext()).isTrue();
|
||||
@@ -96,7 +95,7 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void handlesMapCorrectly() {
|
||||
|
||||
PropertyPath reference = PropertyPath.from("userMapName", Bar.class);
|
||||
var reference = PropertyPath.from("userMapName", Bar.class);
|
||||
assertThat(reference.getSegment()).isEqualTo("userMap");
|
||||
assertThat(reference.isCollection()).isFalse();
|
||||
assertThat(reference.hasNext()).isTrue();
|
||||
@@ -106,7 +105,7 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void handlesArrayCorrectly() {
|
||||
|
||||
PropertyPath reference = PropertyPath.from("userArrayName", Bar.class);
|
||||
var reference = PropertyPath.from("userArrayName", Bar.class);
|
||||
assertThat(reference.getSegment()).isEqualTo("userArray");
|
||||
assertThat(reference.isCollection()).isTrue();
|
||||
assertThat(reference.hasNext()).isTrue();
|
||||
@@ -137,7 +136,7 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void findsNested() {
|
||||
|
||||
PropertyPath from = PropertyPath.from("barUserName", Sample.class);
|
||||
var from = PropertyPath.from("barUserName", Sample.class);
|
||||
|
||||
assertThat(from).isNotNull();
|
||||
assertThat(from.getLeafProperty()).isEqualTo(PropertyPath.from("name", FooBar.class));
|
||||
@@ -146,7 +145,7 @@ class PropertyPathUnitTests {
|
||||
@Test // DATACMNS-45
|
||||
void handlesEmptyUnderscoresCorrectly() {
|
||||
|
||||
PropertyPath propertyPath = PropertyPath.from("_foo", Sample2.class);
|
||||
var propertyPath = PropertyPath.from("_foo", Sample2.class);
|
||||
assertThat(propertyPath.getSegment()).isEqualTo("_foo");
|
||||
assertThat(propertyPath.getType()).isEqualTo(Foo.class);
|
||||
|
||||
@@ -157,7 +156,7 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void supportsDotNotationAsWell() {
|
||||
|
||||
PropertyPath propertyPath = PropertyPath.from("bar.userMap.name", Sample.class);
|
||||
var propertyPath = PropertyPath.from("bar.userMap.name", Sample.class);
|
||||
|
||||
assertThat(propertyPath).isNotNull();
|
||||
assertThat(propertyPath.getSegment()).isEqualTo("bar");
|
||||
@@ -167,9 +166,9 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void returnsCorrectIteratorForSingleElement() {
|
||||
|
||||
PropertyPath propertyPath = PropertyPath.from("userName", Foo.class);
|
||||
var propertyPath = PropertyPath.from("userName", Foo.class);
|
||||
|
||||
Iterator<PropertyPath> iterator = propertyPath.iterator();
|
||||
var iterator = propertyPath.iterator();
|
||||
assertThat(iterator.hasNext()).isTrue();
|
||||
assertThat(iterator.next()).isEqualTo(propertyPath);
|
||||
assertThat(iterator.hasNext()).isFalse();
|
||||
@@ -178,9 +177,9 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void returnsCorrectIteratorForMultipleElement() {
|
||||
|
||||
PropertyPath propertyPath = PropertyPath.from("user.name", Bar.class);
|
||||
var propertyPath = PropertyPath.from("user.name", Bar.class);
|
||||
|
||||
Iterator<PropertyPath> iterator = propertyPath.iterator();
|
||||
var iterator = propertyPath.iterator();
|
||||
assertThat(iterator.hasNext()).isTrue();
|
||||
assertThat(iterator.next()).isEqualTo(propertyPath);
|
||||
assertThat(iterator.hasNext()).isTrue();
|
||||
@@ -243,10 +242,10 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void samePathsEqual() {
|
||||
|
||||
PropertyPath left = PropertyPath.from("user.name", Bar.class);
|
||||
PropertyPath right = PropertyPath.from("user.name", Bar.class);
|
||||
var left = PropertyPath.from("user.name", Bar.class);
|
||||
var right = PropertyPath.from("user.name", Bar.class);
|
||||
|
||||
PropertyPath shortPath = PropertyPath.from("user", Bar.class);
|
||||
var shortPath = PropertyPath.from("user", Bar.class);
|
||||
|
||||
assertThat(left).isEqualTo(right);
|
||||
assertThat(right).isEqualTo(left);
|
||||
@@ -259,10 +258,10 @@ class PropertyPathUnitTests {
|
||||
@Test
|
||||
void hashCodeTests() {
|
||||
|
||||
PropertyPath left = PropertyPath.from("user.name", Bar.class);
|
||||
PropertyPath right = PropertyPath.from("user.name", Bar.class);
|
||||
var left = PropertyPath.from("user.name", Bar.class);
|
||||
var right = PropertyPath.from("user.name", Bar.class);
|
||||
|
||||
PropertyPath shortPath = PropertyPath.from("user", Bar.class);
|
||||
var shortPath = PropertyPath.from("user", Bar.class);
|
||||
|
||||
assertThat(left.hashCode()).isEqualTo(right.hashCode());
|
||||
assertThat(left.hashCode()).isNotEqualTo(shortPath.hashCode());
|
||||
@@ -271,7 +270,7 @@ class PropertyPathUnitTests {
|
||||
@Test // DATACMNS-257
|
||||
void findsAllUppercaseProperty() {
|
||||
|
||||
PropertyPath path = PropertyPath.from("UUID", Foo.class);
|
||||
var path = PropertyPath.from("UUID", Foo.class);
|
||||
|
||||
assertThat(path).isNotNull();
|
||||
assertThat(path.getSegment()).isEqualTo("UUID");
|
||||
@@ -280,7 +279,7 @@ class PropertyPathUnitTests {
|
||||
@Test // DATACMNS-257
|
||||
void findsNestedAllUppercaseProperty() {
|
||||
|
||||
PropertyPath path = PropertyPath.from("_fooUUID", Sample2.class);
|
||||
var path = PropertyPath.from("_fooUUID", Sample2.class);
|
||||
|
||||
assertThat(path).isNotNull();
|
||||
assertThat(path.getSegment()).isEqualTo("_foo");
|
||||
@@ -344,7 +343,7 @@ class PropertyPathUnitTests {
|
||||
@Test // DATACMNS-867
|
||||
void preservesUnderscoresForQuotedNames() {
|
||||
|
||||
PropertyPath path = from(Pattern.quote("var_name_with_underscore"), Foo.class);
|
||||
var path = from(Pattern.quote("var_name_with_underscore"), Foo.class);
|
||||
|
||||
assertThat(path).isNotNull();
|
||||
assertThat(path.getSegment()).isEqualTo("var_name_with_underscore");
|
||||
@@ -378,15 +377,15 @@ class PropertyPathUnitTests {
|
||||
@Test // DATACMNS-1285
|
||||
void rejectsTooLongPath() {
|
||||
|
||||
String source = "foo.bar";
|
||||
var source = "foo.bar";
|
||||
|
||||
for (int i = 0; i < 9; i++) {
|
||||
for (var i = 0; i < 9; i++) {
|
||||
source = source + "." + source;
|
||||
}
|
||||
|
||||
assertThat(source.split("\\.").length).isGreaterThan(1000);
|
||||
|
||||
final String path = source;
|
||||
final var path = source;
|
||||
|
||||
assertThatIllegalArgumentException() //
|
||||
.isThrownBy(() -> PropertyPath.from(path, Left.class));
|
||||
|
||||
@@ -17,7 +17,6 @@ package org.springframework.data.mapping;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@@ -61,9 +60,9 @@ public class PropertyReferenceExceptionUnitTests {
|
||||
@Test // DATACMNS-801
|
||||
public void exposesPotentialMatch() {
|
||||
|
||||
PropertyReferenceException exception = new PropertyReferenceException("nme", TYPE_INFO, NO_PATHS);
|
||||
var exception = new PropertyReferenceException("nme", TYPE_INFO, NO_PATHS);
|
||||
|
||||
Collection<String> matches = exception.getPropertyMatches();
|
||||
var matches = exception.getPropertyMatches();
|
||||
|
||||
assertThat(matches).containsExactly("name");
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ public class SimpleTypeHolderUnitTests {
|
||||
@Test // DATACMNS-31
|
||||
public void rejectsNullTypeForIsSimpleTypeCall() {
|
||||
|
||||
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
|
||||
var holder = SimpleTypeHolder.DEFAULT;
|
||||
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> holder.isSimpleType(null));
|
||||
}
|
||||
@@ -56,7 +56,7 @@ public class SimpleTypeHolderUnitTests {
|
||||
@Test
|
||||
public void addsDefaultTypes() {
|
||||
|
||||
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
|
||||
var holder = SimpleTypeHolder.DEFAULT;
|
||||
|
||||
assertThat(holder.isSimpleType(String.class)).isTrue();
|
||||
}
|
||||
@@ -64,7 +64,7 @@ public class SimpleTypeHolderUnitTests {
|
||||
@Test
|
||||
public void doesNotAddDefaultConvertersIfConfigured() {
|
||||
|
||||
SimpleTypeHolder holder = new SimpleTypeHolder(new HashSet<>(), false);
|
||||
var holder = new SimpleTypeHolder(new HashSet<>(), false);
|
||||
|
||||
assertThat(holder.isSimpleType(UUID.class)).isFalse();
|
||||
}
|
||||
@@ -72,7 +72,7 @@ public class SimpleTypeHolderUnitTests {
|
||||
@Test
|
||||
public void addsCustomTypesToSimpleOnes() {
|
||||
|
||||
SimpleTypeHolder holder = new SimpleTypeHolder(Collections.singleton(SimpleTypeHolder.class), true);
|
||||
var holder = new SimpleTypeHolder(Collections.singleton(SimpleTypeHolder.class), true);
|
||||
|
||||
assertThat(holder.isSimpleType(SimpleTypeHolder.class)).isTrue();
|
||||
assertThat(holder.isSimpleType(SimpleTypeHolderUnitTests.class)).isFalse();
|
||||
@@ -81,8 +81,8 @@ public class SimpleTypeHolderUnitTests {
|
||||
@Test
|
||||
public void createsHolderFromAnotherOneCorrectly() {
|
||||
|
||||
SimpleTypeHolder holder = new SimpleTypeHolder(Collections.singleton(SimpleTypeHolder.class), true);
|
||||
SimpleTypeHolder second = new SimpleTypeHolder(Collections.singleton(SimpleTypeHolderUnitTests.class), holder);
|
||||
var holder = new SimpleTypeHolder(Collections.singleton(SimpleTypeHolder.class), true);
|
||||
var second = new SimpleTypeHolder(Collections.singleton(SimpleTypeHolderUnitTests.class), holder);
|
||||
|
||||
assertThat(holder.isSimpleType(SimpleTypeHolder.class)).isTrue();
|
||||
assertThat(holder.isSimpleType(SimpleTypeHolderUnitTests.class)).isFalse();
|
||||
@@ -92,28 +92,28 @@ public class SimpleTypeHolderUnitTests {
|
||||
|
||||
@Test
|
||||
public void considersObjectToBeSimpleType() {
|
||||
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
|
||||
var holder = SimpleTypeHolder.DEFAULT;
|
||||
assertThat(holder.isSimpleType(Object.class)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void considersSimpleEnumAsSimple() {
|
||||
|
||||
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
|
||||
var holder = SimpleTypeHolder.DEFAULT;
|
||||
assertThat(holder.isSimpleType(SimpleEnum.FOO.getClass())).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void considersComplexEnumAsSimple() {
|
||||
|
||||
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
|
||||
var holder = SimpleTypeHolder.DEFAULT;
|
||||
assertThat(holder.isSimpleType(ComplexEnum.FOO.getClass())).isTrue();
|
||||
}
|
||||
|
||||
@Test // DATACMNS-1006
|
||||
public void considersJavaLangTypesSimple() {
|
||||
|
||||
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
|
||||
var holder = SimpleTypeHolder.DEFAULT;
|
||||
|
||||
assertThat(holder.isSimpleType(Type.class)).isTrue();
|
||||
}
|
||||
@@ -121,7 +121,7 @@ public class SimpleTypeHolderUnitTests {
|
||||
@Test // DATACMNS-1294
|
||||
public void considersJavaTimeTypesSimple() {
|
||||
|
||||
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
|
||||
var holder = SimpleTypeHolder.DEFAULT;
|
||||
|
||||
assertThat(holder.isSimpleType(Instant.class)).isTrue();
|
||||
}
|
||||
@@ -129,7 +129,7 @@ public class SimpleTypeHolderUnitTests {
|
||||
@Test // DATACMNS-1101
|
||||
public void considersExtendedTypeAsSimple() {
|
||||
|
||||
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
|
||||
var holder = SimpleTypeHolder.DEFAULT;
|
||||
|
||||
assertThat(holder.isSimpleType(ExtendedPerson.class)).isFalse();
|
||||
}
|
||||
@@ -137,7 +137,7 @@ public class SimpleTypeHolderUnitTests {
|
||||
@Test // DATACMNS-1101
|
||||
public void considersExtendedTypeAsSimpleSeenBaseClassBefore() {
|
||||
|
||||
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
|
||||
var holder = SimpleTypeHolder.DEFAULT;
|
||||
|
||||
assertThat(holder.isSimpleType(Person.class)).isFalse();
|
||||
assertThat(holder.isSimpleType(ExtendedPerson.class)).isFalse();
|
||||
@@ -146,7 +146,7 @@ public class SimpleTypeHolderUnitTests {
|
||||
@Test // DATACMNS-1278
|
||||
public void alwaysConsidersEnumsSimple() {
|
||||
|
||||
SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT;
|
||||
var holder = SimpleTypeHolder.DEFAULT;
|
||||
|
||||
assertThat(holder.isSimpleType(SomeInterface.class)).isFalse();
|
||||
assertThat(holder.isSimpleType(InterfacedEnum.class)).isTrue();
|
||||
|
||||
@@ -31,7 +31,7 @@ public class TargetAwareIdentifierAccessorUnitTests {
|
||||
@Test // DATACMNS-1015
|
||||
public void throwsExceptionContainingInformationAboutTargetIfIdentifierAbsent() {
|
||||
|
||||
Object sample = new Object();
|
||||
var sample = new Object();
|
||||
|
||||
IdentifierAccessor accessor = new TargetAwareIdentifierAccessor(sample) {
|
||||
|
||||
|
||||
@@ -43,12 +43,12 @@ class DefaultEntityCallbacksUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void shouldDispatchCallback() {
|
||||
|
||||
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MyConfig.class);
|
||||
var ctx = new AnnotationConfigApplicationContext(MyConfig.class);
|
||||
|
||||
DefaultEntityCallbacks callbacks = new DefaultEntityCallbacks(ctx);
|
||||
var callbacks = new DefaultEntityCallbacks(ctx);
|
||||
|
||||
PersonDocument personDocument = new PersonDocument(null, "Walter", null);
|
||||
PersonDocument afterCallback = callbacks.callback(BeforeSaveCallback.class, personDocument);
|
||||
var personDocument = new PersonDocument(null, "Walter", null);
|
||||
var afterCallback = callbacks.callback(BeforeSaveCallback.class, personDocument);
|
||||
|
||||
assertThat(afterCallback.getSsn()).isEqualTo(6);
|
||||
}
|
||||
@@ -56,12 +56,12 @@ class DefaultEntityCallbacksUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void shouldDispatchCallsToLambdaReceivers() {
|
||||
|
||||
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(LambdaConfig.class);
|
||||
var ctx = new AnnotationConfigApplicationContext(LambdaConfig.class);
|
||||
|
||||
DefaultEntityCallbacks callbacks = new DefaultEntityCallbacks(ctx);
|
||||
var callbacks = new DefaultEntityCallbacks(ctx);
|
||||
|
||||
PersonDocument personDocument = new PersonDocument(null, "Walter", null);
|
||||
PersonDocument afterCallback = callbacks.callback(BeforeSaveCallback.class, personDocument);
|
||||
var personDocument = new PersonDocument(null, "Walter", null);
|
||||
var afterCallback = callbacks.callback(BeforeSaveCallback.class, personDocument);
|
||||
|
||||
assertThat(afterCallback).isSameAs(personDocument);
|
||||
}
|
||||
@@ -69,7 +69,7 @@ class DefaultEntityCallbacksUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void invokeGenericEvent() {
|
||||
|
||||
DefaultEntityCallbacks callbacks = new DefaultEntityCallbacks();
|
||||
var callbacks = new DefaultEntityCallbacks();
|
||||
callbacks.addEntityCallback(new GenericPersonCallback());
|
||||
|
||||
Person afterCallback = callbacks.callback(GenericPersonCallback.class, new PersonDocument(null, "Walter", null));
|
||||
@@ -80,7 +80,7 @@ class DefaultEntityCallbacksUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void invokeGenericEventWithArgs() {
|
||||
|
||||
DefaultEntityCallbacks callbacks = new DefaultEntityCallbacks();
|
||||
var callbacks = new DefaultEntityCallbacks();
|
||||
callbacks.addEntityCallback(new GenericPersonCallbackWithArgs());
|
||||
|
||||
Person afterCallback = callbacks.callback(GenericPersonCallbackWithArgs.class,
|
||||
@@ -92,7 +92,7 @@ class DefaultEntityCallbacksUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void invokeInvalidEvent() {
|
||||
|
||||
DefaultEntityCallbacks callbacks = new DefaultEntityCallbacks();
|
||||
var callbacks = new DefaultEntityCallbacks();
|
||||
callbacks.addEntityCallback(new InvalidEntityCallback() {});
|
||||
|
||||
assertThatIllegalStateException()
|
||||
@@ -106,11 +106,11 @@ class DefaultEntityCallbacksUnitTests {
|
||||
CapturingEntityCallback first = new FirstCallback();
|
||||
CapturingEntityCallback second = new SecondCallback();
|
||||
|
||||
DefaultEntityCallbacks callbacks = new DefaultEntityCallbacks();
|
||||
var callbacks = new DefaultEntityCallbacks();
|
||||
callbacks.addEntityCallback(first);
|
||||
callbacks.addEntityCallback(second);
|
||||
|
||||
PersonDocument initial = new PersonDocument(null, "Walter", null);
|
||||
var initial = new PersonDocument(null, "Walter", null);
|
||||
|
||||
callbacks.callback(CapturingEntityCallback.class, initial);
|
||||
|
||||
@@ -123,7 +123,7 @@ class DefaultEntityCallbacksUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void errorsOnNullEntity() {
|
||||
|
||||
DefaultEntityCallbacks callbacks = new DefaultEntityCallbacks();
|
||||
var callbacks = new DefaultEntityCallbacks();
|
||||
callbacks.addEntityCallback(new CapturingEntityCallback());
|
||||
|
||||
assertThatIllegalArgumentException()
|
||||
@@ -137,12 +137,12 @@ class DefaultEntityCallbacksUnitTests {
|
||||
CapturingEntityCallback second = new SecondCallback(null);
|
||||
CapturingEntityCallback third = new ThirdCallback();
|
||||
|
||||
DefaultEntityCallbacks callbacks = new DefaultEntityCallbacks();
|
||||
var callbacks = new DefaultEntityCallbacks();
|
||||
callbacks.addEntityCallback(first);
|
||||
callbacks.addEntityCallback(second);
|
||||
callbacks.addEntityCallback(third);
|
||||
|
||||
PersonDocument initial = new PersonDocument(null, "Walter", null);
|
||||
var initial = new PersonDocument(null, "Walter", null);
|
||||
|
||||
assertThatIllegalArgumentException()
|
||||
.isThrownBy(() -> callbacks.callback(CapturingEntityCallback.class, initial));
|
||||
@@ -155,11 +155,11 @@ class DefaultEntityCallbacksUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void detectsMultipleCallbacksWithinOneClass() {
|
||||
|
||||
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MultipleCallbacksInOneClassConfig.class);
|
||||
var ctx = new AnnotationConfigApplicationContext(MultipleCallbacksInOneClassConfig.class);
|
||||
|
||||
DefaultEntityCallbacks callbacks = new DefaultEntityCallbacks(ctx);
|
||||
var callbacks = new DefaultEntityCallbacks(ctx);
|
||||
|
||||
PersonDocument personDocument = new PersonDocument(null, "Walter", null);
|
||||
var personDocument = new PersonDocument(null, "Walter", null);
|
||||
callbacks.callback(BeforeSaveCallback.class, personDocument);
|
||||
|
||||
assertThat(ctx.getBean("callbacks", MultipleCallbacks.class).invocations).containsExactly("save");
|
||||
|
||||
@@ -41,12 +41,12 @@ class DefaultReactiveEntityCallbacksUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void dispatchResolvesOnSubscribe() {
|
||||
|
||||
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MyConfig.class);
|
||||
var ctx = new AnnotationConfigApplicationContext(MyConfig.class);
|
||||
|
||||
DefaultReactiveEntityCallbacks callbacks = new DefaultReactiveEntityCallbacks(ctx);
|
||||
var callbacks = new DefaultReactiveEntityCallbacks(ctx);
|
||||
|
||||
PersonDocument personDocument = new PersonDocument(null, "Walter", null);
|
||||
Mono<PersonDocument> afterCallback = callbacks.callback(ReactiveBeforeSaveCallback.class, personDocument);
|
||||
var personDocument = new PersonDocument(null, "Walter", null);
|
||||
var afterCallback = callbacks.callback(ReactiveBeforeSaveCallback.class, personDocument);
|
||||
|
||||
assertThat(personDocument.getSsn()).isNull();
|
||||
|
||||
@@ -58,7 +58,7 @@ class DefaultReactiveEntityCallbacksUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void invokeGenericEvent() {
|
||||
|
||||
DefaultReactiveEntityCallbacks callbacks = new DefaultReactiveEntityCallbacks();
|
||||
var callbacks = new DefaultReactiveEntityCallbacks();
|
||||
callbacks.addEntityCallback(new GenericPersonCallback());
|
||||
|
||||
callbacks.callback(GenericPersonCallback.class, new PersonDocument(null, "Walter", null)) //
|
||||
@@ -73,11 +73,11 @@ class DefaultReactiveEntityCallbacksUnitTests {
|
||||
CapturingEntityCallback first = new FirstCallback();
|
||||
CapturingEntityCallback second = new SecondCallback();
|
||||
|
||||
DefaultReactiveEntityCallbacks callbacks = new DefaultReactiveEntityCallbacks();
|
||||
var callbacks = new DefaultReactiveEntityCallbacks();
|
||||
callbacks.addEntityCallback(first);
|
||||
callbacks.addEntityCallback(second);
|
||||
|
||||
PersonDocument initial = new PersonDocument(null, "Walter", null);
|
||||
var initial = new PersonDocument(null, "Walter", null);
|
||||
|
||||
callbacks.callback(CapturingEntityCallback.class, initial) //
|
||||
.as(StepVerifier::create) //
|
||||
@@ -93,7 +93,7 @@ class DefaultReactiveEntityCallbacksUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void errorsOnNullEntity() {
|
||||
|
||||
DefaultReactiveEntityCallbacks callbacks = new DefaultReactiveEntityCallbacks();
|
||||
var callbacks = new DefaultReactiveEntityCallbacks();
|
||||
callbacks.addEntityCallback(new CapturingEntityCallback());
|
||||
|
||||
assertThatIllegalArgumentException()
|
||||
@@ -107,12 +107,12 @@ class DefaultReactiveEntityCallbacksUnitTests {
|
||||
CapturingEntityCallback second = new SecondCallback(null);
|
||||
CapturingEntityCallback third = new ThirdCallback();
|
||||
|
||||
DefaultReactiveEntityCallbacks callbacks = new DefaultReactiveEntityCallbacks();
|
||||
var callbacks = new DefaultReactiveEntityCallbacks();
|
||||
callbacks.addEntityCallback(first);
|
||||
callbacks.addEntityCallback(second);
|
||||
callbacks.addEntityCallback(third);
|
||||
|
||||
PersonDocument initial = new PersonDocument(null, "Walter", null);
|
||||
var initial = new PersonDocument(null, "Walter", null);
|
||||
|
||||
callbacks.callback(CapturingEntityCallback.class, initial) //
|
||||
.as(StepVerifier::create) //
|
||||
@@ -143,7 +143,7 @@ class DefaultReactiveEntityCallbacksUnitTests {
|
||||
@Override
|
||||
public Mono<Person> onBeforeSave(Person object) {
|
||||
|
||||
PersonDocument result = new PersonDocument(object.getFirstName().length(), object.getFirstName(),
|
||||
var result = new PersonDocument(object.getFirstName().length(), object.getFirstName(),
|
||||
object.getLastName());
|
||||
|
||||
return Mono.just(result);
|
||||
|
||||
@@ -49,9 +49,9 @@ class EntityCallbackDiscovererUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void shouldDiscoverCallbackType() {
|
||||
|
||||
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MyConfig.class);
|
||||
var ctx = new AnnotationConfigApplicationContext(MyConfig.class);
|
||||
|
||||
EntityCallbackDiscoverer discoverer = new EntityCallbackDiscoverer(ctx);
|
||||
var discoverer = new EntityCallbackDiscoverer(ctx);
|
||||
|
||||
Collection<EntityCallback<Person>> entityCallbacks = discoverer.getEntityCallbacks(PersonDocument.class,
|
||||
ResolvableType.forType(BeforeSaveCallback.class));
|
||||
@@ -62,17 +62,17 @@ class EntityCallbackDiscovererUnitTests {
|
||||
@Test // DATACMNS-1735
|
||||
void shouldDiscoverCallbackTypeConcurrencyCache() throws InterruptedException {
|
||||
|
||||
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MyConfig.class);
|
||||
var ctx = new AnnotationConfigApplicationContext(MyConfig.class);
|
||||
|
||||
EntityCallbackDiscoverer discoverer = new EntityCallbackDiscoverer(ctx);
|
||||
int poolSize = Runtime.getRuntime().availableProcessors();
|
||||
ThreadPoolExecutor executor = new ThreadPoolExecutor(poolSize, poolSize, 20, TimeUnit.SECONDS,
|
||||
var discoverer = new EntityCallbackDiscoverer(ctx);
|
||||
var poolSize = Runtime.getRuntime().availableProcessors();
|
||||
var executor = new ThreadPoolExecutor(poolSize, poolSize, 20, TimeUnit.SECONDS,
|
||||
new LinkedBlockingDeque<>());
|
||||
CountDownLatch startLatch = new CountDownLatch(poolSize);
|
||||
CountDownLatch doneLatch = new CountDownLatch(poolSize);
|
||||
var startLatch = new CountDownLatch(poolSize);
|
||||
var doneLatch = new CountDownLatch(poolSize);
|
||||
|
||||
List<Exception> exceptions = new CopyOnWriteArrayList<>();
|
||||
for (int i = 0; i < poolSize; i++) {
|
||||
for (var i = 0; i < poolSize; i++) {
|
||||
executor.submit(() -> {
|
||||
try {
|
||||
startLatch.countDown();
|
||||
@@ -97,9 +97,9 @@ class EntityCallbackDiscovererUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void shouldDiscoverCallbackTypeByName() {
|
||||
|
||||
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MyConfig.class);
|
||||
var ctx = new AnnotationConfigApplicationContext(MyConfig.class);
|
||||
|
||||
EntityCallbackDiscoverer discoverer = new EntityCallbackDiscoverer(ctx);
|
||||
var discoverer = new EntityCallbackDiscoverer(ctx);
|
||||
discoverer.clear();
|
||||
discoverer.addEntityCallbackBean("namedCallback");
|
||||
|
||||
@@ -112,7 +112,7 @@ class EntityCallbackDiscovererUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void shouldSupportCallbackTypes() {
|
||||
|
||||
EntityCallbackDiscoverer discoverer = new EntityCallbackDiscoverer();
|
||||
var discoverer = new EntityCallbackDiscoverer();
|
||||
|
||||
assertThat(discoverer.supportsEvent(MyBeforeSaveCallback.class, ResolvableType.forClass(Person.class))).isTrue();
|
||||
assertThat(discoverer.supportsEvent(MyBeforeSaveCallback.class, ResolvableType.forClass(Child.class))).isTrue();
|
||||
@@ -126,9 +126,9 @@ class EntityCallbackDiscovererUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void shouldSupportInstanceCallbackTypes() {
|
||||
|
||||
EntityCallbackDiscoverer discoverer = new EntityCallbackDiscoverer();
|
||||
var discoverer = new EntityCallbackDiscoverer();
|
||||
|
||||
MyBeforeSaveCallback callback = new MyBeforeSaveCallback();
|
||||
var callback = new MyBeforeSaveCallback();
|
||||
|
||||
assertThat(discoverer.supportsEvent(callback, ResolvableType.forClass(Person.class),
|
||||
ResolvableType.forClass(BeforeSaveCallback.class))).isTrue();
|
||||
@@ -146,9 +146,9 @@ class EntityCallbackDiscovererUnitTests {
|
||||
@Test // DATACMNS-1467
|
||||
void shouldDispatchInOrder() {
|
||||
|
||||
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(OrderedConfig.class);
|
||||
var ctx = new AnnotationConfigApplicationContext(OrderedConfig.class);
|
||||
|
||||
EntityCallbackDiscoverer discoverer = new EntityCallbackDiscoverer(ctx);
|
||||
var discoverer = new EntityCallbackDiscoverer(ctx);
|
||||
|
||||
Collection<EntityCallback<Person>> entityCallbacks = discoverer.getEntityCallbacks(PersonDocument.class,
|
||||
ResolvableType.forType(EntityCallback.class));
|
||||
|
||||
@@ -41,7 +41,7 @@ class AbstractMappingContextIntegrationTests<T extends PersistentProperty<T>> {
|
||||
@Test // DATACMNS-457
|
||||
void returnsManagedType() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
context.setInitialEntitySet(Collections.singleton(Person.class));
|
||||
context.initialize();
|
||||
|
||||
@@ -51,7 +51,7 @@ class AbstractMappingContextIntegrationTests<T extends PersistentProperty<T>> {
|
||||
@Test // DATACMNS-457
|
||||
void indicatesManagedType() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
context.setInitialEntitySet(Collections.singleton(Person.class));
|
||||
context.initialize();
|
||||
|
||||
@@ -61,7 +61,7 @@ class AbstractMappingContextIntegrationTests<T extends PersistentProperty<T>> {
|
||||
@Test // DATACMNS-243
|
||||
void createsPersistentEntityForInterfaceCorrectly() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context
|
||||
.getRequiredPersistentEntity(InterfaceOnly.class);
|
||||
|
||||
@@ -71,11 +71,11 @@ class AbstractMappingContextIntegrationTests<T extends PersistentProperty<T>> {
|
||||
@Test // DATACMNS-65
|
||||
void foo() throws InterruptedException {
|
||||
|
||||
final DummyMappingContext context = new DummyMappingContext();
|
||||
final var context = new DummyMappingContext();
|
||||
|
||||
Thread a = new Thread(() -> context.getPersistentEntity(Person.class));
|
||||
var a = new Thread(() -> context.getPersistentEntity(Person.class));
|
||||
|
||||
Thread b = new Thread(() -> {
|
||||
var b = new Thread(() -> {
|
||||
|
||||
PersistentEntity<Object, T> entity = context.getRequiredPersistentEntity(Person.class);
|
||||
|
||||
@@ -109,7 +109,7 @@ class AbstractMappingContextIntegrationTests<T extends PersistentProperty<T>> {
|
||||
protected T createPersistentProperty(Property property, BasicPersistentEntity<Object, T> owner,
|
||||
SimpleTypeHolder simpleTypeHolder) {
|
||||
|
||||
PersistentProperty prop = mock(PersistentProperty.class);
|
||||
var prop = mock(PersistentProperty.class);
|
||||
|
||||
when(prop.getTypeInformation()).thenReturn(owner.getTypeInformation());
|
||||
when(prop.getName()).thenReturn(property.getName());
|
||||
|
||||
@@ -30,7 +30,6 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
@@ -41,6 +40,7 @@ import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.aop.SpringProxy;
|
||||
import org.springframework.aop.framework.Advised;
|
||||
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
import org.springframework.data.annotation.Id;
|
||||
@@ -88,7 +88,7 @@ class AbstractMappingContextUnitTests {
|
||||
@Test
|
||||
void registersEntitiesOnInitialization() {
|
||||
|
||||
ApplicationContext applicationContext = mock(ApplicationContext.class);
|
||||
var applicationContext = mock(ApplicationContext.class);
|
||||
|
||||
context.setInitialEntitySet(Collections.singleton(Person.class));
|
||||
context.setApplicationEventPublisher(applicationContext);
|
||||
@@ -102,7 +102,7 @@ class AbstractMappingContextUnitTests {
|
||||
@Test // DATACMNS-214
|
||||
void returnsNullPersistentEntityForSimpleTypes() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
assertThat(context.getPersistentEntity(String.class)).isNull();
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ class AbstractMappingContextUnitTests {
|
||||
@Test // DATACMNS-228
|
||||
void doesNotCreatePersistentPropertyForGroovyMetaClass() {
|
||||
|
||||
SampleMappingContext mappingContext = new SampleMappingContext();
|
||||
var mappingContext = new SampleMappingContext();
|
||||
mappingContext.initialize();
|
||||
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = mappingContext
|
||||
@@ -130,7 +130,7 @@ class AbstractMappingContextUnitTests {
|
||||
@Test // DATACMNS-332
|
||||
void usesMostConcreteProperty() {
|
||||
|
||||
SampleMappingContext mappingContext = new SampleMappingContext();
|
||||
var mappingContext = new SampleMappingContext();
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = mappingContext
|
||||
.getRequiredPersistentEntity(Extension.class);
|
||||
|
||||
@@ -141,7 +141,7 @@ class AbstractMappingContextUnitTests {
|
||||
@SuppressWarnings("rawtypes")
|
||||
void returnsEntityForComponentType() {
|
||||
|
||||
SampleMappingContext mappingContext = new SampleMappingContext();
|
||||
var mappingContext = new SampleMappingContext();
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = mappingContext
|
||||
.getRequiredPersistentEntity(Sample.class);
|
||||
|
||||
@@ -153,10 +153,10 @@ class AbstractMappingContextUnitTests {
|
||||
@Test // DATACMNS-390
|
||||
void exposesCopyOfPersistentEntitiesToAvoidConcurrentModificationException() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
context.getPersistentEntity(ClassTypeInformation.MAP);
|
||||
|
||||
Iterator<BasicPersistentEntity<Object, SamplePersistentProperty>> iterator = context.getPersistentEntities()
|
||||
var iterator = context.getPersistentEntities()
|
||||
.iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -208,7 +208,7 @@ class AbstractMappingContextUnitTests {
|
||||
void doesNotReturnPersistentEntityForCustomSimpleTypeProperty() {
|
||||
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Person.class);
|
||||
SamplePersistentProperty property = entity.getRequiredPersistentProperty("date");
|
||||
var property = entity.getRequiredPersistentProperty("date");
|
||||
|
||||
assertThat(context.getPersistentEntity(property)).isNull();
|
||||
}
|
||||
@@ -216,7 +216,7 @@ class AbstractMappingContextUnitTests {
|
||||
@Test // DATACMNS-1574
|
||||
void cleansUpCacheForRuntimeException() {
|
||||
|
||||
TypeRejectingMappingContext context = TypeRejectingMappingContext.rejecting(() -> new RuntimeException(),
|
||||
var context = TypeRejectingMappingContext.rejecting(() -> new RuntimeException(),
|
||||
Unsupported.class);
|
||||
|
||||
assertThatExceptionOfType(RuntimeException.class) //
|
||||
@@ -231,7 +231,7 @@ class AbstractMappingContextUnitTests {
|
||||
@Test // GH-3113
|
||||
void shouldIgnoreKotlinOverrideCtorPropertyInSuperClass() {
|
||||
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> entity = context
|
||||
var entity = context
|
||||
.getPersistentEntity(ClassTypeInformation.from(ShadowingPropertyTypeWithCtor.class));
|
||||
entity.doWithProperties((PropertyHandler<SamplePersistentProperty>) property -> {
|
||||
assertThat(property.getField().getDeclaringClass()).isIn(ShadowingPropertyTypeWithCtor.class,
|
||||
@@ -242,7 +242,7 @@ class AbstractMappingContextUnitTests {
|
||||
@Test // GH-3113
|
||||
void shouldIncludeAssignableKotlinOverridePropertyInSuperClass() {
|
||||
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> entity = context
|
||||
var entity = context
|
||||
.getPersistentEntity(ClassTypeInformation.from(ShadowingPropertyType.class));
|
||||
entity.doWithProperties((PropertyHandler<SamplePersistentProperty>) property -> {
|
||||
assertThat(property.getField().getDeclaringClass()).isIn(ShadowedPropertyType.class, ShadowingPropertyType.class);
|
||||
@@ -252,7 +252,7 @@ class AbstractMappingContextUnitTests {
|
||||
@Test // GH-3113
|
||||
void shouldIncludeAssignableShadowedPropertyInSuperClass() {
|
||||
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> entity = context
|
||||
var entity = context
|
||||
.getPersistentEntity(ClassTypeInformation.from(ShadowingPropertyAssignable.class));
|
||||
|
||||
assertThat(StreamUtils.createStreamFromIterator(entity.iterator())
|
||||
@@ -270,7 +270,7 @@ class AbstractMappingContextUnitTests {
|
||||
@Test // GH-3113
|
||||
void shouldIgnoreNonAssignableOverridePropertyInSuperClass() {
|
||||
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> entity = context
|
||||
var entity = context
|
||||
.getPersistentEntity(ClassTypeInformation.from(ShadowingPropertyNotAssignable.class));
|
||||
entity.doWithProperties((PropertyHandler<SamplePersistentProperty>) property -> {
|
||||
assertThat(property.getField().getDeclaringClass()).isEqualTo(ShadowingPropertyNotAssignable.class);
|
||||
@@ -367,9 +367,9 @@ class AbstractMappingContextUnitTests {
|
||||
|
||||
private static void assertHasEntityFor(Class<?> type, SampleMappingContext context, boolean expected) {
|
||||
|
||||
boolean found = false;
|
||||
var found = false;
|
||||
|
||||
for (BasicPersistentEntity<Object, SamplePersistentProperty> entity : context.getPersistentEntities()) {
|
||||
for (var entity : context.getPersistentEntities()) {
|
||||
if (entity.getType().equals(type)) {
|
||||
found = true;
|
||||
break;
|
||||
|
||||
@@ -99,7 +99,7 @@ class DefaultPersistentPropertyPathUnitTests<P extends PersistentProperty<P>> {
|
||||
@Test
|
||||
void calculatesExtensionCorrectly() {
|
||||
|
||||
PersistentPropertyPath<P> extension = twoLegs.getExtensionForBaseOf(oneLeg);
|
||||
var extension = twoLegs.getExtensionForBaseOf(oneLeg);
|
||||
|
||||
assertThat(extension).isEqualTo(new DefaultPersistentPropertyPath<>(Collections.singletonList(second)));
|
||||
}
|
||||
@@ -117,8 +117,8 @@ class DefaultPersistentPropertyPathUnitTests<P extends PersistentProperty<P>> {
|
||||
@Test
|
||||
void returnItselfForEmptyPath() {
|
||||
|
||||
PersistentPropertyPath<P> parent = oneLeg.getParentPath();
|
||||
PersistentPropertyPath<P> parentsParent = parent.getParentPath();
|
||||
var parent = oneLeg.getParentPath();
|
||||
var parentsParent = parent.getParentPath();
|
||||
|
||||
assertThat(parentsParent).isEmpty();
|
||||
assertThat(parentsParent).isSameAs(parent);
|
||||
|
||||
@@ -42,21 +42,21 @@ class MappingContextEventUnitTests<E extends PersistentEntity<?, P>, P extends P
|
||||
@Test
|
||||
void returnsPersistentEntityHandedToTheEvent() {
|
||||
|
||||
MappingContextEvent<E, P> event = new MappingContextEvent<>(mappingContext, entity);
|
||||
var event = new MappingContextEvent<E, P>(mappingContext, entity);
|
||||
assertThat(event.getPersistentEntity()).isEqualTo(entity);
|
||||
}
|
||||
|
||||
@Test
|
||||
void usesMappingContextAsEventSource() {
|
||||
|
||||
MappingContextEvent<E, P> event = new MappingContextEvent<>(mappingContext, entity);
|
||||
var event = new MappingContextEvent<E, P>(mappingContext, entity);
|
||||
assertThat(event.getSource()).isEqualTo(mappingContext);
|
||||
}
|
||||
|
||||
@Test
|
||||
void detectsEmittingMappingContextCorrectly() {
|
||||
|
||||
MappingContextEvent<E, P> event = new MappingContextEvent<>(mappingContext, entity);
|
||||
var event = new MappingContextEvent<E, P>(mappingContext, entity);
|
||||
assertThat(event.wasEmittedBy(mappingContext)).isTrue();
|
||||
assertThat(event.wasEmittedBy(otherMappingContext)).isFalse();
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.annotation.Reference;
|
||||
import org.springframework.data.mapping.MappingException;
|
||||
import org.springframework.data.mapping.PersistentEntity;
|
||||
import org.springframework.data.mapping.model.BasicPersistentEntity;
|
||||
import org.springframework.data.util.ClassTypeInformation;
|
||||
|
||||
@@ -69,11 +68,11 @@ class PersistentEntitiesUnitTests {
|
||||
@Test // DATACMNS-458
|
||||
void indicatesManagedType() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
context.setInitialEntitySet(Collections.singleton(Sample.class));
|
||||
context.initialize();
|
||||
|
||||
PersistentEntities entities = PersistentEntities.of(context);
|
||||
var entities = PersistentEntities.of(context);
|
||||
|
||||
assertThat(entities.getPersistentEntity(Sample.class)).isPresent();
|
||||
assertThat(entities.getPersistentEntity(Object.class)).isNotPresent();
|
||||
@@ -85,13 +84,13 @@ class PersistentEntitiesUnitTests {
|
||||
@Test // DATACMNS-1318
|
||||
void detectsReferredToEntity() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
context.getPersistentEntity(Sample.class);
|
||||
|
||||
SamplePersistentProperty property = context.getRequiredPersistentEntity(WithReference.class)//
|
||||
var property = context.getRequiredPersistentEntity(WithReference.class)//
|
||||
.getPersistentProperty("sampleId");
|
||||
|
||||
PersistentEntity<?, ?> referredToEntity = PersistentEntities.of(context).getEntityUltimatelyReferredToBy(property);
|
||||
var referredToEntity = PersistentEntities.of(context).getEntityUltimatelyReferredToBy(property);
|
||||
|
||||
assertThat(referredToEntity).isNotNull();
|
||||
assertThat(referredToEntity.getType()).isEqualTo(Sample.class);
|
||||
@@ -100,14 +99,14 @@ class PersistentEntitiesUnitTests {
|
||||
@Test // DATACMNS-1318
|
||||
void rejectsAmbiguousIdentifierType() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
context.getPersistentEntity(FirstWithLongId.class);
|
||||
context.getPersistentEntity(SecondWithLongId.class);
|
||||
|
||||
SamplePersistentProperty property = context.getRequiredPersistentEntity(WithReference.class) //
|
||||
var property = context.getRequiredPersistentEntity(WithReference.class) //
|
||||
.getPersistentProperty("longId");
|
||||
|
||||
PersistentEntities entities = PersistentEntities.of(context);
|
||||
var entities = PersistentEntities.of(context);
|
||||
|
||||
assertThatIllegalStateException()//
|
||||
.isThrownBy(() -> entities.getEntityUltimatelyReferredToBy(property)) //
|
||||
@@ -119,14 +118,14 @@ class PersistentEntitiesUnitTests {
|
||||
@Test // DATACMNS-1318
|
||||
void allowsExplicitlyQualifiedReference() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
context.getPersistentEntity(FirstWithLongId.class);
|
||||
context.getPersistentEntity(SecondWithLongId.class);
|
||||
|
||||
SamplePersistentProperty property = context.getRequiredPersistentEntity(WithReference.class) //
|
||||
var property = context.getRequiredPersistentEntity(WithReference.class) //
|
||||
.getPersistentProperty("qualifiedLongId");
|
||||
|
||||
PersistentEntity<?, ?> entity = PersistentEntities.of(context).getEntityUltimatelyReferredToBy(property);
|
||||
var entity = PersistentEntities.of(context).getEntityUltimatelyReferredToBy(property);
|
||||
|
||||
assertThat(entity).isNotNull();
|
||||
assertThat(entity.getType()).isEqualTo(FirstWithLongId.class);
|
||||
@@ -135,14 +134,14 @@ class PersistentEntitiesUnitTests {
|
||||
@Test // DATACMNS-1318
|
||||
void allowsGenericReference() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
context.getPersistentEntity(FirstWithGenericId.class);
|
||||
context.getPersistentEntity(SecondWithGenericId.class);
|
||||
|
||||
SamplePersistentProperty property = context.getRequiredPersistentEntity(WithReference.class) //
|
||||
var property = context.getRequiredPersistentEntity(WithReference.class) //
|
||||
.getPersistentProperty("generic");
|
||||
|
||||
PersistentEntity<?, ?> entity = PersistentEntities.of(context).getEntityUltimatelyReferredToBy(property);
|
||||
var entity = PersistentEntities.of(context).getEntityUltimatelyReferredToBy(property);
|
||||
|
||||
assertThat(entity).isNotNull();
|
||||
assertThat(entity.getType()).isEqualTo(SecondWithGenericId.class);
|
||||
@@ -151,7 +150,7 @@ class PersistentEntitiesUnitTests {
|
||||
@Test // DATACMNS-1780
|
||||
void getRequiredPersistentEntityAllowsInFlightEntityCreationForUnknownTypesWhenHavingJustASingleMappingContext() {
|
||||
|
||||
SampleMappingContext mappingContext = spy(new SampleMappingContext());
|
||||
var mappingContext = spy(new SampleMappingContext());
|
||||
mappingContext.afterPropertiesSet();
|
||||
|
||||
assertThat(PersistentEntities.of(mappingContext).getRequiredPersistentEntity(Sample.class)).isNotNull();
|
||||
|
||||
@@ -29,7 +29,6 @@ import org.springframework.data.mapping.PersistentPropertyPath;
|
||||
import org.springframework.data.mapping.PersistentPropertyPaths;
|
||||
import org.springframework.data.mapping.PropertyPath;
|
||||
import org.springframework.data.mapping.model.BasicPersistentEntity;
|
||||
import org.springframework.data.util.Streamable;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
@@ -51,7 +50,7 @@ class PersistentPropertyPathFactoryUnitTests {
|
||||
@Test // DATACMNS-380
|
||||
void returnsPersistentPropertyPathForDotPath() {
|
||||
|
||||
PersistentPropertyPath<SamplePersistentProperty> path = factory.from(PersonSample.class, "persons.name");
|
||||
var path = factory.from(PersonSample.class, "persons.name");
|
||||
|
||||
assertThat(path.getLength()).isEqualTo(2);
|
||||
assertThat(path.getBaseProperty().getName()).isEqualTo("persons");
|
||||
@@ -114,7 +113,7 @@ class PersistentPropertyPathFactoryUnitTests {
|
||||
@Test // DATACMNS-1275
|
||||
void returnsShortestsPathsFirst() {
|
||||
|
||||
Streamable<String> paths = factory.from(First.class, it -> true, it -> true) //
|
||||
var paths = factory.from(First.class, it -> true, it -> true) //
|
||||
.map(PersistentPropertyPath::toDotPath);
|
||||
|
||||
assertThat(paths).containsExactly("third", "second", "third.lastname", "second.firstname");
|
||||
@@ -123,7 +122,7 @@ class PersistentPropertyPathFactoryUnitTests {
|
||||
@Test // DATACMNS-1275
|
||||
void doesNotTraverseAssociationsByDefault() {
|
||||
|
||||
Streamable<String> paths = factory.from(First.class, it -> true) //
|
||||
var paths = factory.from(First.class, it -> true) //
|
||||
.map(PersistentPropertyPath::toDotPath);
|
||||
|
||||
assertThat(paths) //
|
||||
@@ -134,7 +133,7 @@ class PersistentPropertyPathFactoryUnitTests {
|
||||
@Test // DATACMNS-1275
|
||||
void traversesAssociationsIfTraversalGuardAllowsIt() {
|
||||
|
||||
PersistentPropertyPaths<First, SamplePersistentProperty> paths = //
|
||||
var paths = //
|
||||
factory.from(First.class, it -> true, it -> true);
|
||||
|
||||
assertThat(paths.contains("third.lastname")).isTrue();
|
||||
@@ -144,7 +143,7 @@ class PersistentPropertyPathFactoryUnitTests {
|
||||
@Test // DATACMNS-1275
|
||||
void returnsEmptyPropertyPathsIfNoneSelected() {
|
||||
|
||||
PersistentPropertyPaths<Third, SamplePersistentProperty> paths = factory.from(Third.class, it -> false);
|
||||
var paths = factory.from(Third.class, it -> false);
|
||||
|
||||
assertThat(paths).isEmpty();
|
||||
assertThat(paths.getFirst()).isEmpty();
|
||||
@@ -153,7 +152,7 @@ class PersistentPropertyPathFactoryUnitTests {
|
||||
@Test // DATACMNS-1275
|
||||
void returnsShortestPathFirst() {
|
||||
|
||||
PersistentPropertyPaths<First, SamplePersistentProperty> paths = factory.from(First.class, it -> !it.isEntity(),
|
||||
var paths = factory.from(First.class, it -> !it.isEntity(),
|
||||
it -> true);
|
||||
|
||||
assertThat(paths.contains("second.firstname")).isTrue();
|
||||
|
||||
@@ -36,7 +36,7 @@ class PropertyMatchUnitTests {
|
||||
@Test
|
||||
void matchesFieldByConcreteNameAndType() throws Exception {
|
||||
|
||||
PropertyMatch match = new PropertyMatch("name", "java.lang.String");
|
||||
var match = new PropertyMatch("name", "java.lang.String");
|
||||
assertThat(match.matches("this$0", Object.class)).isFalse();
|
||||
assertThat(match.matches("this$1", Object.class)).isFalse();
|
||||
assertThat(match.matches("name", String.class)).isTrue();
|
||||
@@ -45,7 +45,7 @@ class PropertyMatchUnitTests {
|
||||
@Test
|
||||
void matchesFieldByNamePattern() throws Exception {
|
||||
|
||||
PropertyMatch match = new PropertyMatch("this\\$.*", "java.lang.Object");
|
||||
var match = new PropertyMatch("this\\$.*", "java.lang.Object");
|
||||
assertThat(match.matches("this$0", Object.class)).isTrue();
|
||||
assertThat(match.matches("this$1", Object.class)).isTrue();
|
||||
assertThat(match.matches("name", String.class)).isFalse();
|
||||
@@ -54,7 +54,7 @@ class PropertyMatchUnitTests {
|
||||
@Test
|
||||
void matchesFieldByNameOnly() throws Exception {
|
||||
|
||||
PropertyMatch match = new PropertyMatch("this\\$.*", null);
|
||||
var match = new PropertyMatch("this\\$.*", null);
|
||||
assertThat(match.matches("this$0", Object.class)).isTrue();
|
||||
assertThat(match.matches("this$1", Object.class)).isTrue();
|
||||
assertThat(match.matches("name", String.class)).isFalse();
|
||||
@@ -63,7 +63,7 @@ class PropertyMatchUnitTests {
|
||||
@Test
|
||||
void matchesFieldByTypeNameOnly() throws Exception {
|
||||
|
||||
PropertyMatch match = new PropertyMatch(null, "java.lang.Object");
|
||||
var match = new PropertyMatch(null, "java.lang.Object");
|
||||
assertThat(match.matches("this$0", Object.class)).isTrue();
|
||||
assertThat(match.matches("this$1", Object.class)).isTrue();
|
||||
assertThat(match.matches("name", String.class)).isFalse();
|
||||
|
||||
@@ -24,7 +24,6 @@ import java.beans.IntrospectionException;
|
||||
import java.beans.Introspector;
|
||||
import java.beans.PropertyDescriptor;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
@@ -36,6 +35,7 @@ import org.jmolecules.ddd.types.AggregateRoot;
|
||||
import org.jmolecules.ddd.types.Identifier;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.data.mapping.Association;
|
||||
import org.springframework.data.mapping.PersistentEntity;
|
||||
import org.springframework.data.mapping.PersistentProperty;
|
||||
@@ -89,8 +89,8 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // DATACMNS-121
|
||||
void considersPropertiesEqualIfFieldEquals() {
|
||||
|
||||
SamplePersistentProperty firstProperty = getProperty(FirstConcrete.class, "genericField");
|
||||
SamplePersistentProperty secondProperty = getProperty(SecondConcrete.class, "genericField");
|
||||
var firstProperty = getProperty(FirstConcrete.class, "genericField");
|
||||
var secondProperty = getProperty(SecondConcrete.class, "genericField");
|
||||
|
||||
assertThat(firstProperty).isEqualTo(secondProperty);
|
||||
assertThat(firstProperty.hashCode()).isEqualTo(secondProperty.hashCode());
|
||||
@@ -104,7 +104,7 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // DATACMNS-206
|
||||
void findsSimpleGettersAndASetters() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(AccessorTestClass.class, "id");
|
||||
var property = getProperty(AccessorTestClass.class, "id");
|
||||
|
||||
assertThat(property.getGetter()).isNotNull();
|
||||
assertThat(property.getSetter()).isNotNull();
|
||||
@@ -113,7 +113,7 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // DATACMNS-206
|
||||
void doesNotUseInvalidGettersAndASetters() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(AccessorTestClass.class, "anotherId");
|
||||
var property = getProperty(AccessorTestClass.class, "anotherId");
|
||||
|
||||
assertThat(property.getGetter()).isNull();
|
||||
assertThat(property.getSetter()).isNull();
|
||||
@@ -122,7 +122,7 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // DATACMNS-206
|
||||
void usesCustomGetter() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(AccessorTestClass.class, "yetAnotherId");
|
||||
var property = getProperty(AccessorTestClass.class, "yetAnotherId");
|
||||
|
||||
assertThat(property.getGetter()).isNotNull();
|
||||
assertThat(property.getSetter()).isNull();
|
||||
@@ -131,7 +131,7 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // DATACMNS-206
|
||||
void usesCustomSetter() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(AccessorTestClass.class, "yetYetAnotherId");
|
||||
var property = getProperty(AccessorTestClass.class, "yetYetAnotherId");
|
||||
|
||||
assertThat(property.getGetter()).isNull();
|
||||
assertThat(property.getSetter()).isNotNull();
|
||||
@@ -140,8 +140,8 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // DATACMNS-206
|
||||
void doesNotDiscoverGetterAndSetterIfNoPropertyDescriptorGiven() {
|
||||
|
||||
Field field = ReflectionUtils.findField(AccessorTestClass.class, "id");
|
||||
Property property = Property.of(ClassTypeInformation.from(AccessorTestClass.class), field);
|
||||
var field = ReflectionUtils.findField(AccessorTestClass.class, "id");
|
||||
var property = Property.of(ClassTypeInformation.from(AccessorTestClass.class), field);
|
||||
|
||||
PersistentProperty<SamplePersistentProperty> persistentProperty = new SamplePersistentProperty(property,
|
||||
getEntity(AccessorTestClass.class), typeHolder);
|
||||
@@ -153,7 +153,7 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // DATACMNS-337
|
||||
void resolvesActualType() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(Sample.class, "person");
|
||||
var property = getProperty(Sample.class, "person");
|
||||
assertThat(property.getActualType()).isEqualTo(Person.class);
|
||||
|
||||
property = getProperty(Sample.class, "persons");
|
||||
@@ -169,35 +169,35 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // DATACMNS-462
|
||||
void considersCollectionPropertyEntitiesIfComponentTypeIsEntity() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(Sample.class, "persons");
|
||||
var property = getProperty(Sample.class, "persons");
|
||||
assertThat(property.isEntity()).isTrue();
|
||||
}
|
||||
|
||||
@Test // DATACMNS-462
|
||||
void considersMapPropertyEntitiesIfValueTypeIsEntity() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(Sample.class, "personMap");
|
||||
var property = getProperty(Sample.class, "personMap");
|
||||
assertThat(property.isEntity()).isTrue();
|
||||
}
|
||||
|
||||
@Test // DATACMNS-462
|
||||
void considersArrayPropertyEntitiesIfComponentTypeIsEntity() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(Sample.class, "personArray");
|
||||
var property = getProperty(Sample.class, "personArray");
|
||||
assertThat(property.isEntity()).isTrue();
|
||||
}
|
||||
|
||||
@Test // DATACMNS-462
|
||||
void considersCollectionPropertySimpleIfComponentTypeIsSimple() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(Sample.class, "strings");
|
||||
var property = getProperty(Sample.class, "strings");
|
||||
assertThat(property.isEntity()).isFalse();
|
||||
}
|
||||
|
||||
@Test // DATACMNS-562
|
||||
void doesNotConsiderPropertyWithTreeMapMapValueAnEntity() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(TreeMapWrapper.class, "map");
|
||||
var property = getProperty(TreeMapWrapper.class, "map");
|
||||
assertThat(property.getPersistentEntityTypeInformation()).isEmpty();
|
||||
assertThat(property.isEntity()).isFalse();
|
||||
}
|
||||
@@ -205,14 +205,14 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // DATACMNS-867
|
||||
void resolvesFieldNameWithUnderscoresCorrectly() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(TestClassComplex.class, "var_name_with_underscores");
|
||||
var property = getProperty(TestClassComplex.class, "var_name_with_underscores");
|
||||
assertThat(property.getName()).isEqualTo("var_name_with_underscores");
|
||||
}
|
||||
|
||||
@Test // DATACMNS-1139
|
||||
void resolvesGenericsForRawType() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(FirstConcrete.class, "genericField");
|
||||
var property = getProperty(FirstConcrete.class, "genericField");
|
||||
|
||||
assertThat(property.getRawType()).isEqualTo(String.class);
|
||||
}
|
||||
@@ -220,7 +220,7 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // DATACMNS-1180
|
||||
void returnsAccessorsForGenericReturnType() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(ConcreteGetter.class, "genericField");
|
||||
var property = getProperty(ConcreteGetter.class, "genericField");
|
||||
|
||||
assertThat(property.getSetter()).isNotNull();
|
||||
assertThat(property.getGetter()).isNotNull();
|
||||
@@ -229,7 +229,7 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
@Test // GH-2315
|
||||
void detectsJMoleculesAssociation() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(JMolecules.class, "association");
|
||||
var property = getProperty(JMolecules.class, "association");
|
||||
|
||||
assertThat(property.isAssociation()).isTrue();
|
||||
assertThat(property.getAssociationTargetType()).isEqualTo(JMoleculesAggregate.class);
|
||||
@@ -245,10 +245,10 @@ public class AbstractPersistentPropertyUnitTests {
|
||||
private <T> SamplePersistentProperty getProperty(Class<T> type, String name) {
|
||||
|
||||
TypeInformation<?> typeInformation = ClassTypeInformation.from(type);
|
||||
Optional<Field> field = Optional.ofNullable(ReflectionUtils.findField(type, name));
|
||||
Optional<PropertyDescriptor> descriptor = getPropertyDescriptor(type, name);
|
||||
var field = Optional.ofNullable(ReflectionUtils.findField(type, name));
|
||||
var descriptor = getPropertyDescriptor(type, name);
|
||||
|
||||
Property property = Optionals.firstNonEmpty( //
|
||||
var property = Optionals.firstNonEmpty( //
|
||||
() -> Optionals.mapIfAllPresent(field, descriptor, (left, right) -> Property.of(typeInformation, left, right)), //
|
||||
() -> field.map(it -> Property.of(typeInformation, it)), //
|
||||
() -> descriptor.map(it -> Property.of(typeInformation, it))) //
|
||||
|
||||
@@ -99,7 +99,7 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
assertThat(entity.getPersistentProperty("meta")).satisfies(property -> {
|
||||
|
||||
// Assert direct annotations are cached on construction
|
||||
Map<Class<? extends Annotation>, Annotation> cache = getAnnotationCache(property);
|
||||
var cache = getAnnotationCache(property);
|
||||
assertThat(cache.containsKey(MyAnnotationAsMeta.class)).isTrue();
|
||||
assertThat(cache.containsKey(MyAnnotation.class)).isFalse();
|
||||
|
||||
@@ -187,13 +187,13 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
@SuppressWarnings("unchecked")
|
||||
public void cachesNonPresenceOfAnnotationOnField() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(Sample.class, "getterWithoutField");
|
||||
var property = getProperty(Sample.class, "getterWithoutField");
|
||||
|
||||
assertThat(property).satisfies(it -> {
|
||||
|
||||
assertThat(it.findAnnotation(MyAnnotation.class)).isNull();
|
||||
|
||||
Map<Class<?>, ?> field = (Map<Class<?>, ?>) ReflectionTestUtils.getField(it, "annotationCache");
|
||||
var field = (Map<Class<?>, ?>) ReflectionTestUtils.getField(it, "annotationCache");
|
||||
|
||||
assertThat(field.containsKey(MyAnnotation.class)).isTrue();
|
||||
assertThat(field.get(MyAnnotation.class)).isEqualTo(Optional.empty());
|
||||
@@ -206,7 +206,7 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
assertThat(entity.getPersistentProperty("metaAliased")).satisfies(property -> {
|
||||
|
||||
// Assert direct annotations are cached on construction
|
||||
Map<Class<? extends Annotation>, Annotation> cache = getAnnotationCache(property);
|
||||
var cache = getAnnotationCache(property);
|
||||
assertThat(cache.containsKey(MyComposedAnnotationUsingAliasFor.class)).isTrue();
|
||||
assertThat(cache.containsKey(MyAnnotation.class)).isFalse();
|
||||
|
||||
@@ -253,14 +253,14 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
@TestFactory // DATACMNS-1318
|
||||
public Stream<DynamicTest> detectsUltimateAssociationTargetClass() {
|
||||
|
||||
Function<String, ClassAssert> verifier = it -> assertThat(
|
||||
var verifier = (Function<String, ClassAssert>) it -> assertThat(
|
||||
getProperty(WithReferences.class, it).getAssociationTargetType());
|
||||
|
||||
Stream<DynamicTest> positives = DynamicTest.stream(Stream.of("toSample", "toSample2", "sample"), //
|
||||
var positives = DynamicTest.stream(Stream.of("toSample", "toSample2", "sample"), //
|
||||
it -> String.format("Property %s resolves to %s.", it, Sample.class.getSimpleName()), //
|
||||
it -> verifier.apply(it).isEqualTo(Sample.class));
|
||||
|
||||
Stream<DynamicTest> negatives = DynamicTest.stream(Stream.of("withoutAnnotation"), //
|
||||
var negatives = DynamicTest.stream(Stream.of("withoutAnnotation"), //
|
||||
it -> String.format("Property %s resolves to null.", it), //
|
||||
it -> verifier.apply(it).isNull());
|
||||
|
||||
@@ -270,7 +270,7 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
@Test // DATACMNS-1359
|
||||
public void missingRequiredGetterThrowsException() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(Sample.class, "field");
|
||||
var property = getProperty(Sample.class, "field");
|
||||
|
||||
assertThatIllegalArgumentException() //
|
||||
.isThrownBy(() -> property.getRequiredGetter()) //
|
||||
@@ -281,7 +281,7 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
@Test // DATACMNS-1359
|
||||
public void missingRequiredSetterThrowsException() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(Sample.class, "field");
|
||||
var property = getProperty(Sample.class, "field");
|
||||
|
||||
assertThatIllegalArgumentException() //
|
||||
.isThrownBy(() -> property.getRequiredSetter()) //
|
||||
@@ -292,7 +292,7 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
@Test // DATACMNS-1359
|
||||
public void missingRequiredWitherThrowsException() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(Sample.class, "field");
|
||||
var property = getProperty(Sample.class, "field");
|
||||
|
||||
assertThatIllegalArgumentException() //
|
||||
.isThrownBy(() -> property.getRequiredWither()) //
|
||||
@@ -303,7 +303,7 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
@Test
|
||||
public void missingRequiredFieldThrowsException() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(NoField.class, "firstname");
|
||||
var property = getProperty(NoField.class, "firstname");
|
||||
|
||||
assertThatIllegalArgumentException() //
|
||||
.isThrownBy(() -> property.getRequiredField()) //
|
||||
@@ -314,7 +314,7 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
@Test // GH-2315
|
||||
void detectsJMoleculesAssociation() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(JMolecules.class, "association");
|
||||
var property = getProperty(JMolecules.class, "association");
|
||||
|
||||
assertThat(property.isAssociation()).isTrue();
|
||||
assertThat(property.getAssociationTargetType()).isEqualTo(JMoleculesAggregate.class);
|
||||
@@ -323,7 +323,7 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
@Test // GH-2409
|
||||
void exposesAssociationTargetClassAsPersistentEntityType() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(WithReferences.class, "toSample");
|
||||
var property = getProperty(WithReferences.class, "toSample");
|
||||
|
||||
assertThat(property.getPersistentEntityTypeInformation()) //
|
||||
.isNotEmpty() //
|
||||
@@ -333,7 +333,7 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
@Test // #2438
|
||||
void detectsJMoleculesIdentity() {
|
||||
|
||||
SamplePersistentProperty property = getProperty(JMolecules.class, "identifier");
|
||||
var property = getProperty(JMolecules.class, "identifier");
|
||||
|
||||
assertThat(property.isIdProperty()).isTrue();
|
||||
}
|
||||
@@ -346,7 +346,7 @@ public class AnnotationBasedPersistentPropertyUnitTests<P extends AnnotationBase
|
||||
private <A extends Annotation> A assertAnnotationPresent(Class<A> annotationType,
|
||||
AnnotationBasedPersistentProperty<?> property) {
|
||||
|
||||
A annotation = property.findAnnotation(annotationType);
|
||||
var annotation = property.findAnnotation(annotationType);
|
||||
|
||||
assertThat(annotation).isNotNull();
|
||||
|
||||
|
||||
@@ -25,7 +25,6 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
@@ -37,6 +36,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import org.springframework.core.annotation.AliasFor;
|
||||
import org.springframework.data.annotation.AccessType;
|
||||
import org.springframework.data.annotation.AccessType.Type;
|
||||
@@ -108,16 +108,16 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
@SuppressWarnings("unchecked")
|
||||
void considersComparatorForPropertyOrder() {
|
||||
|
||||
BasicPersistentEntity<Person, T> entity = createEntity(Person.class,
|
||||
var entity = createEntity(Person.class,
|
||||
Comparator.comparing(PersistentProperty::getName));
|
||||
|
||||
T lastName = (T) Mockito.mock(PersistentProperty.class);
|
||||
var lastName = (T) Mockito.mock(PersistentProperty.class);
|
||||
when(lastName.getName()).thenReturn("lastName");
|
||||
|
||||
T firstName = (T) Mockito.mock(PersistentProperty.class);
|
||||
var firstName = (T) Mockito.mock(PersistentProperty.class);
|
||||
when(firstName.getName()).thenReturn("firstName");
|
||||
|
||||
T ssn = (T) Mockito.mock(PersistentProperty.class);
|
||||
var ssn = (T) Mockito.mock(PersistentProperty.class);
|
||||
when(ssn.getName()).thenReturn("ssn");
|
||||
|
||||
entity.addPersistentProperty(lastName);
|
||||
@@ -125,10 +125,10 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
entity.addPersistentProperty(ssn);
|
||||
entity.verify();
|
||||
|
||||
List<T> properties = (List<T>) ReflectionTestUtils.getField(entity, "properties");
|
||||
var properties = (List<T>) ReflectionTestUtils.getField(entity, "properties");
|
||||
|
||||
assertThat(properties).hasSize(3);
|
||||
Iterator<T> iterator = properties.iterator();
|
||||
var iterator = properties.iterator();
|
||||
|
||||
assertThat(entity.getPersistentProperty("firstName")).isEqualTo(iterator.next());
|
||||
assertThat(entity.getPersistentProperty("lastName")).isEqualTo(iterator.next());
|
||||
@@ -164,10 +164,10 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
@Test // DATACMNS-365
|
||||
void detectsPropertyWithAnnotation() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Entity.class);
|
||||
|
||||
SamplePersistentProperty property = entity.getPersistentProperty(LastModifiedBy.class);
|
||||
var property = entity.getPersistentProperty(LastModifiedBy.class);
|
||||
|
||||
assertThat(property.getName()).isEqualTo("field");
|
||||
|
||||
@@ -181,7 +181,7 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
@Test // DATACMNS-1122
|
||||
void reportsRequiredPropertyName() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Entity.class);
|
||||
|
||||
assertThatThrownBy(() -> entity.getRequiredPersistentProperty("foo"))
|
||||
@@ -192,19 +192,19 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
@SuppressWarnings("rawtypes")
|
||||
void returnsGeneratedPropertyAccessorForPropertyAccessor() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Entity.class);
|
||||
|
||||
Entity value = new Entity();
|
||||
var value = new Entity();
|
||||
PersistentPropertyAccessor accessor = entity.getPropertyAccessor(value);
|
||||
|
||||
assertThat(accessor).isNotInstanceOf(BeanWrapper.class);
|
||||
assertThat(accessor).isInstanceOfSatisfying(InstantiationAwarePropertyAccessor.class, it -> {
|
||||
|
||||
Function<Object, PersistentPropertyAccessor<Object>> delegateFunction = (Function<Object, PersistentPropertyAccessor<Object>>) ReflectionTestUtils
|
||||
var delegateFunction = (Function<Object, PersistentPropertyAccessor<Object>>) ReflectionTestUtils
|
||||
.getField(it, "delegateFunction");
|
||||
|
||||
PersistentPropertyAccessor<Object> delegate = delegateFunction.apply(value);
|
||||
var delegate = delegateFunction.apply(value);
|
||||
assertThat(delegate.getClass().getName()).contains("_Accessor_");
|
||||
assertThat(delegate.getBean()).isEqualTo(value);
|
||||
});
|
||||
@@ -213,7 +213,7 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
@Test // DATACMNS-596
|
||||
void rejectsNullBeanForPropertyAccessor() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Entity.class);
|
||||
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> entity.getPropertyAccessor(null));
|
||||
@@ -222,7 +222,7 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
@Test // DATACMNS-596
|
||||
void rejectsNonMatchingBeanForPropertyAccessor() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Entity.class);
|
||||
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> entity.getPropertyAccessor("foo"));
|
||||
@@ -231,7 +231,7 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
@Test // DATACMNS-597
|
||||
void supportsSubtypeInstancesOnPropertyAccessorLookup() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Entity.class);
|
||||
|
||||
assertThat(entity.getPropertyAccessor(new Subtype())).isNotNull();
|
||||
@@ -282,9 +282,9 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
@Test // DATACMNS-1210
|
||||
void findAnnotationShouldBeThreadSafe() throws InterruptedException {
|
||||
|
||||
CountDownLatch latch = new CountDownLatch(2);
|
||||
CountDownLatch syncLatch = new CountDownLatch(1);
|
||||
AtomicBoolean failed = new AtomicBoolean(false);
|
||||
var latch = new CountDownLatch(2);
|
||||
var syncLatch = new CountDownLatch(1);
|
||||
var failed = new AtomicBoolean(false);
|
||||
|
||||
PersistentEntity<EntityWithAnnotation, T> entity = new BasicPersistentEntity<EntityWithAnnotation, T>(
|
||||
ClassTypeInformation.from(EntityWithAnnotation.class), null) {
|
||||
@@ -303,7 +303,7 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
}
|
||||
};
|
||||
|
||||
Runnable findAccessType = () -> {
|
||||
var findAccessType = (Runnable) () -> {
|
||||
|
||||
try {
|
||||
entity.findAnnotation(AccessType.class);
|
||||
@@ -314,7 +314,7 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
}
|
||||
};
|
||||
|
||||
Runnable findPersistent = () -> {
|
||||
var findPersistent = (Runnable) () -> {
|
||||
|
||||
try {
|
||||
entity.findAnnotation(Persistent.class);
|
||||
@@ -383,7 +383,7 @@ class BasicPersistentEntityUnitTests<T extends PersistentProperty<T>> {
|
||||
|
||||
private static PersistentEntity<Object, ?> createPopulatedPersistentEntity(Class<?> type) {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
return context.getRequiredPersistentEntity(type);
|
||||
}
|
||||
|
||||
|
||||
@@ -104,15 +104,15 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
@Test // DATACMNS-134, DATACMNS-578
|
||||
void createsInnerClassInstanceCorrectly() {
|
||||
|
||||
BasicPersistentEntity<Inner, P> entity = new BasicPersistentEntity<>(from(Inner.class));
|
||||
var entity = new BasicPersistentEntity<Inner, P>(from(Inner.class));
|
||||
assertThat(entity.getPersistenceConstructor()).satisfies(constructor -> {
|
||||
|
||||
Parameter<Object, P> parameter = constructor.getParameters().iterator().next();
|
||||
var parameter = constructor.getParameters().iterator().next();
|
||||
|
||||
Object outer = new Outer();
|
||||
|
||||
doReturn(outer).when(provider).getParameterValue(parameter);
|
||||
Inner instance = this.instance.createInstance(entity, provider);
|
||||
var instance = this.instance.createInstance(entity, provider);
|
||||
|
||||
assertThat(instance).isNotNull();
|
||||
|
||||
@@ -164,7 +164,7 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
|
||||
doReturn(2L, "FOO").when(provider).getParameterValue(any(Parameter.class));
|
||||
|
||||
ParameterValueProvider<P> recursive = new ParameterValueProvider<P>() {
|
||||
var recursive = new ParameterValueProvider<P>() {
|
||||
|
||||
@Override
|
||||
public <T> T getParameterValue(Parameter<T, P> parameter) {
|
||||
@@ -181,7 +181,7 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
}
|
||||
};
|
||||
|
||||
SampleWithReference reference = this.instance.createInstance(outer, recursive);
|
||||
var reference = this.instance.createInstance(outer, recursive);
|
||||
|
||||
assertThat(reference.id).isEqualTo(1L);
|
||||
assertThat(reference.sample).isNotNull();
|
||||
@@ -209,13 +209,13 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
|
||||
IntStream.range(0, 2).forEach(i -> {
|
||||
|
||||
Object instance = this.instance.createInstance(entity, provider);
|
||||
var instance = this.instance.createInstance(entity, provider);
|
||||
|
||||
assertThat(instance).isInstanceOf(ObjCtorNoArgs.class);
|
||||
assertThat(((ObjCtorNoArgs) instance).ctorInvoked).isTrue();
|
||||
});
|
||||
|
||||
ClassGeneratingEntityInstantiator classGeneratingEntityInstantiator = new ClassGeneratingEntityInstantiator();
|
||||
var classGeneratingEntityInstantiator = new ClassGeneratingEntityInstantiator();
|
||||
classGeneratingEntityInstantiator.createInstance(entity, provider);
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
|
||||
IntStream.range(0, 2).forEach(i -> {
|
||||
|
||||
Object instance = this.instance.createInstance(entity, provider);
|
||||
var instance = this.instance.createInstance(entity, provider);
|
||||
|
||||
assertThat(instance).isInstanceOf(ObjCtor1ParamString.class);
|
||||
assertThat(((ObjCtor1ParamString) instance).ctorInvoked).isTrue();
|
||||
@@ -248,7 +248,7 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
|
||||
when(provider.getParameterValue(any())).thenReturn("FOO", "BAR");
|
||||
|
||||
Object instance = this.instance.createInstance(entity, provider);
|
||||
var instance = this.instance.createInstance(entity, provider);
|
||||
|
||||
assertThat(instance).isInstanceOf(ObjCtor2ParamStringString.class);
|
||||
assertThat(((ObjCtor2ParamStringString) instance).ctorInvoked).isTrue();
|
||||
@@ -268,7 +268,7 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
|
||||
doReturn(42).when(provider).getParameterValue(any());
|
||||
|
||||
Object instance = this.instance.createInstance(entity, provider);
|
||||
var instance = this.instance.createInstance(entity, provider);
|
||||
|
||||
assertThat(instance).isInstanceOf(ObjectCtor1ParamInt.class);
|
||||
assertThat(((ObjectCtor1ParamInt) instance).param1).isEqualTo(42);
|
||||
@@ -298,11 +298,11 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
|
||||
when(provider.getParameterValue(any(Parameter.class))).thenReturn("A", 1, 2, 3, 4, 5, "B");
|
||||
|
||||
Object instance = this.instance.createInstance(entity, provider);
|
||||
var instance = this.instance.createInstance(entity, provider);
|
||||
|
||||
assertThat(instance).isInstanceOf(ObjectCtor7ParamsString5IntsString.class);
|
||||
|
||||
ObjectCtor7ParamsString5IntsString toTest = (ObjectCtor7ParamsString5IntsString) instance;
|
||||
var toTest = (ObjectCtor7ParamsString5IntsString) instance;
|
||||
|
||||
assertThat(toTest.param1).isEqualTo("A");
|
||||
assertThat(toTest.param2).isEqualTo(1);
|
||||
@@ -352,7 +352,7 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
@Test // DATACMNS-1373
|
||||
void shouldInstantiateClassInDefaultPackage() throws ClassNotFoundException {
|
||||
|
||||
Class<?> typeInDefaultPackage = Class.forName("TypeInDefaultPackage");
|
||||
var typeInDefaultPackage = Class.forName("TypeInDefaultPackage");
|
||||
prepareMocks(typeInDefaultPackage);
|
||||
|
||||
assertThat(this.instance.shouldUseReflectionEntityInstantiator(entity)).isFalse();
|
||||
@@ -374,13 +374,13 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
|
||||
this.instance.createInstance(entity, provider);
|
||||
|
||||
ClassGeneratingEntityInstantiator instantiator = new ClassGeneratingEntityInstantiator();
|
||||
var instantiator = new ClassGeneratingEntityInstantiator();
|
||||
instantiator.createInstance(entity, provider);
|
||||
|
||||
Map<TypeInformation<?>, EntityInstantiator> first = (Map<TypeInformation<?>, EntityInstantiator>) ReflectionTestUtils
|
||||
var first = (Map<TypeInformation<?>, EntityInstantiator>) ReflectionTestUtils
|
||||
.getField(this.instance, "entityInstantiators");
|
||||
|
||||
Map<TypeInformation<?>, EntityInstantiator> second = (Map<TypeInformation<?>, EntityInstantiator>) ReflectionTestUtils
|
||||
var second = (Map<TypeInformation<?>, EntityInstantiator>) ReflectionTestUtils
|
||||
.getField(instantiator, "entityInstantiators");
|
||||
|
||||
assertThat(first.get(null)).isNotNull().isNotInstanceOf(Enum.class);
|
||||
@@ -390,11 +390,11 @@ class ClassGeneratingEntityInstantiatorUnitTests<P extends PersistentProperty<P>
|
||||
@Test // DATACMNS-1422
|
||||
void shouldUseReflectionIfFrameworkTypesNotVisible() throws Exception {
|
||||
|
||||
HidingClassLoader classLoader = HidingClassLoader.hide(ObjectInstantiator.class);
|
||||
var classLoader = HidingClassLoader.hide(ObjectInstantiator.class);
|
||||
classLoader.excludePackage("org.springframework.data.mapping");
|
||||
|
||||
// require type from different package to meet visibility quirks
|
||||
Class<?> entityType = classLoader.loadClass("org.springframework.data.mapping.Person");
|
||||
var entityType = classLoader.loadClass("org.springframework.data.mapping.Person");
|
||||
|
||||
prepareMocks(entityType);
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -32,7 +31,6 @@ import org.springframework.data.annotation.AccessType.Type;
|
||||
import org.springframework.data.mapping.PersistentProperty;
|
||||
import org.springframework.data.mapping.PersistentPropertyAccessor;
|
||||
import org.springframework.data.mapping.context.SampleMappingContext;
|
||||
import org.springframework.data.mapping.context.SamplePersistentProperty;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
/**
|
||||
@@ -49,7 +47,7 @@ public class ClassGeneratingPropertyAccessorFactoryDatatypeTests {
|
||||
static List<Object[]> parameters() throws Exception {
|
||||
|
||||
List<Object[]> parameters = new ArrayList<>();
|
||||
List<Class<?>> types = Arrays.asList(FieldAccess.class, PropertyAccess.class, PrivateFinalFieldAccess.class,
|
||||
var types = Arrays.asList(FieldAccess.class, PropertyAccess.class, PrivateFinalFieldAccess.class,
|
||||
PrivateFinalPropertyAccess.class);
|
||||
|
||||
parameters.addAll(parameters(types, "primitiveInteger", Integer.valueOf(1)));
|
||||
@@ -94,9 +92,9 @@ public class ClassGeneratingPropertyAccessorFactoryDatatypeTests {
|
||||
|
||||
List<Object[]> parameters = new ArrayList<>();
|
||||
|
||||
for (Class<?> type : types) {
|
||||
for (var type : types) {
|
||||
|
||||
Constructor<?>[] constructors = type.getDeclaredConstructors();
|
||||
var constructors = type.getDeclaredConstructors();
|
||||
constructors[0].setAccessible(true);
|
||||
parameters.add(new Object[] { constructors[0].newInstance(), propertyName, value,
|
||||
type.getSimpleName() + "/" + propertyName });
|
||||
@@ -111,7 +109,7 @@ public class ClassGeneratingPropertyAccessorFactoryDatatypeTests {
|
||||
|
||||
assertThat(getProperty(bean, propertyName)).satisfies(property -> {
|
||||
|
||||
PersistentPropertyAccessor persistentPropertyAccessor = getPersistentPropertyAccessor(bean);
|
||||
var persistentPropertyAccessor = getPersistentPropertyAccessor(bean);
|
||||
|
||||
persistentPropertyAccessor.setProperty(property, value);
|
||||
assertThat(persistentPropertyAccessor.getProperty(property)).isEqualTo(value);
|
||||
@@ -123,7 +121,7 @@ public class ClassGeneratingPropertyAccessorFactoryDatatypeTests {
|
||||
void shouldUseClassPropertyAccessorFactory(Object bean, String propertyName, Object value, String displayName)
|
||||
throws Exception {
|
||||
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> persistentEntity = mappingContext
|
||||
var persistentEntity = mappingContext
|
||||
.getRequiredPersistentEntity(bean.getClass());
|
||||
|
||||
assertThat(ReflectionTestUtils.getField(persistentEntity, "propertyAccessorFactory"))
|
||||
@@ -139,7 +137,7 @@ public class ClassGeneratingPropertyAccessorFactoryDatatypeTests {
|
||||
|
||||
private PersistentProperty<?> getProperty(Object bean, String name) {
|
||||
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> persistentEntity = mappingContext
|
||||
var persistentEntity = mappingContext
|
||||
.getRequiredPersistentEntity(bean.getClass());
|
||||
return persistentEntity.getPersistentProperty(name);
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@ import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mapping.PersistentEntity;
|
||||
import org.springframework.data.mapping.PersistentPropertyAccessor;
|
||||
import org.springframework.data.mapping.context.SampleMappingContext;
|
||||
import org.springframework.data.mapping.context.SamplePersistentProperty;
|
||||
import org.springframework.data.repository.core.EntityInformation;
|
||||
@@ -51,7 +51,7 @@ public class ClassGeneratingPropertyAccessorFactoryEntityTypeTests {
|
||||
@Test // DATACMNS-853
|
||||
void getIdentifierOfClassBasedEntity() {
|
||||
|
||||
Person jonDoe = new Person("JonDoe");
|
||||
var jonDoe = new Person("JonDoe");
|
||||
|
||||
assertThat(getEntityInformation(Person.class).getId(jonDoe)).isEqualTo(jonDoe.name);
|
||||
}
|
||||
@@ -59,8 +59,8 @@ public class ClassGeneratingPropertyAccessorFactoryEntityTypeTests {
|
||||
@Test // #2324
|
||||
void shouldGeneratePropertyAccessorForKotlinClassWithMultipleCopyMethods() {
|
||||
|
||||
ClassGeneratingPropertyAccessorFactory factory = new ClassGeneratingPropertyAccessorFactory();
|
||||
PersistentPropertyAccessor<WithCustomCopyMethod> propertyAccessor = factory.getPropertyAccessor(
|
||||
var factory = new ClassGeneratingPropertyAccessorFactory();
|
||||
var propertyAccessor = factory.getPropertyAccessor(
|
||||
mappingContext.getRequiredPersistentEntity(WithCustomCopyMethod.class),
|
||||
new WithCustomCopyMethod("", "", "", 1, LocalDateTime.MAX, LocalDateTime.MAX, ""));
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.springframework.data.mapping.model;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.assertj.core.api.Assumptions.*;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -32,7 +31,6 @@ import org.springframework.data.annotation.AccessType.Type;
|
||||
import org.springframework.data.mapping.PersistentProperty;
|
||||
import org.springframework.data.mapping.PersistentPropertyAccessor;
|
||||
import org.springframework.data.mapping.context.SampleMappingContext;
|
||||
import org.springframework.data.mapping.context.SamplePersistentProperty;
|
||||
import org.springframework.data.mapping.model.subpackage.TypeInOtherPackage;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
@@ -51,7 +49,7 @@ public class ClassGeneratingPropertyAccessorFactoryTests {
|
||||
public static List<Object[]> parameters() throws ReflectiveOperationException {
|
||||
|
||||
List<Object[]> parameters = new ArrayList<>();
|
||||
List<String> propertyNames = Arrays.asList("privateField", "packageDefaultField", "protectedField", "publicField",
|
||||
var propertyNames = Arrays.asList("privateField", "packageDefaultField", "protectedField", "publicField",
|
||||
"privateProperty", "packageDefaultProperty", "protectedProperty", "publicProperty", "syntheticProperty",
|
||||
"immutable", "wither");
|
||||
|
||||
@@ -79,7 +77,7 @@ public class ClassGeneratingPropertyAccessorFactoryTests {
|
||||
|
||||
List<Object[]> parameters = new ArrayList<>();
|
||||
|
||||
for (String propertyName : propertyNames) {
|
||||
for (var propertyName : propertyNames) {
|
||||
parameters.add(new Object[] { bean, propertyName, expectedConstructorType,
|
||||
bean.getClass().getSimpleName() + "/" + propertyName });
|
||||
}
|
||||
@@ -103,7 +101,7 @@ public class ClassGeneratingPropertyAccessorFactoryTests {
|
||||
|
||||
assertThat(getProperty(bean, propertyName)).satisfies(property -> {
|
||||
|
||||
PersistentPropertyAccessor persistentPropertyAccessor = getPersistentPropertyAccessor(bean);
|
||||
var persistentPropertyAccessor = getPersistentPropertyAccessor(bean);
|
||||
if (property.isImmutable() && property.getWither() == null) {
|
||||
|
||||
assertThatThrownBy(() -> persistentPropertyAccessor.setProperty(property, "value"))
|
||||
@@ -122,9 +120,9 @@ public class ClassGeneratingPropertyAccessorFactoryTests {
|
||||
void accessorShouldDeclareConstructor(Object bean, String propertyName, Class<?> expectedConstructorType,
|
||||
String displayName) throws Exception {
|
||||
|
||||
PersistentPropertyAccessor persistentPropertyAccessor = getPersistentPropertyAccessor(bean);
|
||||
var persistentPropertyAccessor = getPersistentPropertyAccessor(bean);
|
||||
|
||||
Constructor<?>[] declaredConstructors = persistentPropertyAccessor.getClass().getDeclaredConstructors();
|
||||
var declaredConstructors = persistentPropertyAccessor.getClass().getDeclaredConstructors();
|
||||
assertThat(declaredConstructors.length).isEqualTo(1);
|
||||
assertThat(declaredConstructors[0].getParameterCount()).isEqualTo(1);
|
||||
assertThat(declaredConstructors[0].getParameterTypes()[0]).isEqualTo(expectedConstructorType);
|
||||
@@ -162,7 +160,7 @@ public class ClassGeneratingPropertyAccessorFactoryTests {
|
||||
void shouldUseClassPropertyAccessorFactory(Object bean, String propertyName, Class<?> expectedConstructorType,
|
||||
String displayName) throws Exception {
|
||||
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> persistentEntity = mappingContext
|
||||
var persistentEntity = mappingContext
|
||||
.getRequiredPersistentEntity(bean.getClass());
|
||||
|
||||
assertThat(ReflectionTestUtils.getField(persistentEntity, "propertyAccessorFactory"))
|
||||
@@ -178,7 +176,7 @@ public class ClassGeneratingPropertyAccessorFactoryTests {
|
||||
|
||||
private PersistentProperty<?> getProperty(Object bean, String name) {
|
||||
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> persistentEntity = mappingContext
|
||||
var persistentEntity = mappingContext
|
||||
.getRequiredPersistentEntity(bean.getClass());
|
||||
return persistentEntity.getPersistentProperty(name);
|
||||
}
|
||||
|
||||
@@ -23,10 +23,10 @@ import lombok.Data;
|
||||
import lombok.Value;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.support.DefaultConversionService;
|
||||
import org.springframework.data.mapping.PersistentPropertyAccessor;
|
||||
import org.springframework.data.mapping.PersistentPropertyPath;
|
||||
import org.springframework.data.mapping.context.SampleMappingContext;
|
||||
import org.springframework.data.mapping.context.SamplePersistentProperty;
|
||||
import org.springframework.format.support.DefaultFormattingConversionService;
|
||||
@@ -62,7 +62,7 @@ public class ConvertingPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-596
|
||||
public void convertsPropertyValueToExpectedType() {
|
||||
|
||||
Entity entity = new Entity();
|
||||
var entity = new Entity();
|
||||
entity.id = 1L;
|
||||
|
||||
assertThat(getIdProperty()).satisfies(
|
||||
@@ -72,7 +72,7 @@ public class ConvertingPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-596
|
||||
public void doesNotInvokeConversionForNullValues() {
|
||||
|
||||
ConversionService conversionService = mock(ConversionService.class);
|
||||
var conversionService = mock(ConversionService.class);
|
||||
|
||||
assertThat(getIdProperty()).satisfies(it -> {
|
||||
assertThat(getAccessor(new Entity(), conversionService).getProperty(it, Number.class)).isNull();
|
||||
@@ -83,10 +83,10 @@ public class ConvertingPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-596
|
||||
public void doesNotInvokeConversionIfTypeAlreadyMatches() {
|
||||
|
||||
Entity entity = new Entity();
|
||||
var entity = new Entity();
|
||||
entity.id = 1L;
|
||||
|
||||
ConversionService conversionService = mock(ConversionService.class);
|
||||
var conversionService = mock(ConversionService.class);
|
||||
|
||||
assertThat(getIdProperty()).satisfies(it -> {
|
||||
assertThat(getAccessor(entity, conversionService).getProperty(it, Number.class)).isEqualTo(1L);
|
||||
@@ -97,7 +97,7 @@ public class ConvertingPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-596
|
||||
public void convertsValueOnSetIfTypesDontMatch() {
|
||||
|
||||
Entity entity = new Entity();
|
||||
var entity = new Entity();
|
||||
|
||||
assertThat(getIdProperty()).satisfies(property -> {
|
||||
getAccessor(entity, CONVERSION_SERVICE).setProperty(property, "1");
|
||||
@@ -117,15 +117,15 @@ public class ConvertingPropertyAccessorUnitTests {
|
||||
@Test // DATACMNS-1377
|
||||
public void shouldConvertToPropertyPathLeafType() {
|
||||
|
||||
Order order = new Order(new Customer("1"));
|
||||
var order = new Order(new Customer("1"));
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
|
||||
PersistentPropertyAccessor<Order> accessor = context.getPersistentEntity(Order.class).getPropertyAccessor(order);
|
||||
ConvertingPropertyAccessor<Order> convertingAccessor = new ConvertingPropertyAccessor<>(accessor,
|
||||
var accessor = context.getPersistentEntity(Order.class).getPropertyAccessor(order);
|
||||
var convertingAccessor = new ConvertingPropertyAccessor<Order>(accessor,
|
||||
new DefaultConversionService());
|
||||
|
||||
PersistentPropertyPath<SamplePersistentProperty> path = context.getPersistentPropertyPath("customer.firstname",
|
||||
var path = context.getPersistentPropertyPath("customer.firstname",
|
||||
Order.class);
|
||||
|
||||
convertingAccessor.setProperty(path, 2);
|
||||
@@ -141,8 +141,8 @@ public class ConvertingPropertyAccessorUnitTests {
|
||||
|
||||
private static SamplePersistentProperty getIdProperty() {
|
||||
|
||||
SampleMappingContext mappingContext = new SampleMappingContext();
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> entity = mappingContext
|
||||
var mappingContext = new SampleMappingContext();
|
||||
var entity = mappingContext
|
||||
.getRequiredPersistentEntity(Entity.class);
|
||||
return entity.getPersistentProperty("id");
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ class EntityInstantiatorsUnitTests {
|
||||
@Test
|
||||
void usesReflectionEntityInstantiatorAsDefaultFallback() {
|
||||
|
||||
EntityInstantiators instantiators = new EntityInstantiators();
|
||||
var instantiators = new EntityInstantiators();
|
||||
assertThat(instantiators.getInstantiatorFor(entity)).isInstanceOf(ClassGeneratingEntityInstantiator.class);
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ class EntityInstantiatorsUnitTests {
|
||||
|
||||
Map<Class<?>, EntityInstantiator> customInstantiators = Collections.singletonMap(String.class, customInstantiator);
|
||||
|
||||
EntityInstantiators instantiators = new EntityInstantiators(customInstantiators);
|
||||
var instantiators = new EntityInstantiators(customInstantiators);
|
||||
assertThat(instantiators.getInstantiatorFor(entity)).isEqualTo(customInstantiator);
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ class EntityInstantiatorsUnitTests {
|
||||
Map<Class<?>, EntityInstantiator> customInstantiators = Collections.singletonMap(String.class,
|
||||
ReflectionEntityInstantiator.INSTANCE);
|
||||
|
||||
EntityInstantiators instantiators = new EntityInstantiators(customInstantiator, customInstantiators);
|
||||
var instantiators = new EntityInstantiators(customInstantiator, customInstantiators);
|
||||
instantiators.getInstantiatorFor(entity);
|
||||
|
||||
assertThat(instantiators.getInstantiatorFor(entity)).isEqualTo(customInstantiator);
|
||||
|
||||
@@ -45,7 +45,7 @@ class IdPropertyIdentifierAccessorUnitTests {
|
||||
@Test // DATACMNS-599
|
||||
void returnsIdentifierValue() {
|
||||
|
||||
SampleWithId sample = new SampleWithId();
|
||||
var sample = new SampleWithId();
|
||||
sample.id = 1L;
|
||||
|
||||
IdentifierAccessor accessor = new IdPropertyIdentifierAccessor(
|
||||
|
||||
@@ -17,8 +17,6 @@ package org.springframework.data.mapping.model;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.data.mapping.context.SampleMappingContext;
|
||||
@@ -35,7 +33,7 @@ class KotlinCopyMethodUnitTests {
|
||||
@Test // #2324
|
||||
void shouldLookupPrimaryConstructor() {
|
||||
|
||||
Optional<KotlinCopyMethod> optional = KotlinCopyMethod.findCopyMethod(DataClassKt.class);
|
||||
var optional = KotlinCopyMethod.findCopyMethod(DataClassKt.class);
|
||||
|
||||
assertThat(optional).hasValueSatisfying(actual -> {
|
||||
// $this, 1 component, 1 defaulting mask, 1 Object marker
|
||||
@@ -49,7 +47,7 @@ class KotlinCopyMethodUnitTests {
|
||||
@Test // #2324
|
||||
void shouldLookupPrimaryConstructorWhenTwoCopyMethodsArePresent() {
|
||||
|
||||
Optional<KotlinCopyMethod> optional = KotlinCopyMethod.findCopyMethod(WithCustomCopyMethod.class);
|
||||
var optional = KotlinCopyMethod.findCopyMethod(WithCustomCopyMethod.class);
|
||||
|
||||
assertThat(optional).hasValueSatisfying(actual -> {
|
||||
// $this, 7 components, 1 defaulting mask, 1 Object marker
|
||||
@@ -67,7 +65,7 @@ class KotlinCopyMethodUnitTests {
|
||||
@Test // #2324
|
||||
void shouldUsePublicKotlinMethodForSinglePropertyEntities() {
|
||||
|
||||
KotlinCopyMethod copyMethod = KotlinCopyMethod.findCopyMethod(DataClassKt.class).get();
|
||||
var copyMethod = KotlinCopyMethod.findCopyMethod(DataClassKt.class).get();
|
||||
|
||||
assertThat(copyMethod.shouldUsePublicCopyMethod(mappingContext.getRequiredPersistentEntity(DataClassKt.class)))
|
||||
.isTrue();
|
||||
|
||||
@@ -62,10 +62,10 @@ public class ParameterizedKotlinInstantiatorUnitTests {
|
||||
@Parameters(name = "{5}")
|
||||
public static List<Object[]> parameters() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
|
||||
KotlinClassGeneratingEntityInstantiator generatingInstantiator = new KotlinClassGeneratingEntityInstantiator();
|
||||
ReflectionEntityInstantiator reflectionInstantiator = ReflectionEntityInstantiator.INSTANCE;
|
||||
var generatingInstantiator = new KotlinClassGeneratingEntityInstantiator();
|
||||
var reflectionInstantiator = ReflectionEntityInstantiator.INSTANCE;
|
||||
|
||||
List<Object[]> fixtures = new ArrayList<>();
|
||||
fixtures.addAll(createFixture(context, With32Args.class, 32, generatingInstantiator));
|
||||
@@ -79,7 +79,7 @@ public class ParameterizedKotlinInstantiatorUnitTests {
|
||||
private static List<Object[]> createFixture(SampleMappingContext context, Class<?> entityType, int propertyCount,
|
||||
EntityInstantiator entityInstantiator) {
|
||||
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> persistentEntity = context.getPersistentEntity(entityType);
|
||||
var persistentEntity = context.getPersistentEntity(entityType);
|
||||
|
||||
return IntStream.range(0, propertyCount).mapToObj(i -> {
|
||||
|
||||
@@ -92,11 +92,11 @@ public class ParameterizedKotlinInstantiatorUnitTests {
|
||||
@Test // DATACMNS-1402
|
||||
public void shouldCreateInstanceWithSinglePropertySet() {
|
||||
|
||||
Object instance = entityInstantiator.createInstance(entity, new SingleParameterValueProvider());
|
||||
var instance = entityInstantiator.createInstance(entity, new SingleParameterValueProvider());
|
||||
|
||||
for (int i = 0; i < propertyCount; i++) {
|
||||
for (var i = 0; i < propertyCount; i++) {
|
||||
|
||||
Object value = ReflectionTestUtils.getField(instance, Integer.toString(i));
|
||||
var value = ReflectionTestUtils.getField(instance, Integer.toString(i));
|
||||
|
||||
if (propertyUnderTestIndex == i) {
|
||||
assertThat(value).describedAs("Property " + i + " of " + entity).isEqualTo(valueToSet);
|
||||
@@ -109,11 +109,11 @@ public class ParameterizedKotlinInstantiatorUnitTests {
|
||||
@Test // DATACMNS-1402
|
||||
public void shouldCreateInstanceWithAllExceptSinglePropertySet() {
|
||||
|
||||
Object instance = entityInstantiator.createInstance(entity, new AllButParameterValueProvider());
|
||||
var instance = entityInstantiator.createInstance(entity, new AllButParameterValueProvider());
|
||||
|
||||
for (int i = 0; i < propertyCount; i++) {
|
||||
for (var i = 0; i < propertyCount; i++) {
|
||||
|
||||
Object value = ReflectionTestUtils.getField(instance, Integer.toString(i));
|
||||
var value = ReflectionTestUtils.getField(instance, Integer.toString(i));
|
||||
|
||||
if (propertyUnderTestIndex == i) {
|
||||
assertThat(value).describedAs("Property " + i + " of " + entity).isEqualTo("");
|
||||
|
||||
@@ -42,7 +42,7 @@ class PersistentEntityIsNewStrategyUnitTests {
|
||||
|
||||
PersistentEntity<?, ?> entity = context.getRequiredPersistentEntity(PrimitiveIdEntity.class);
|
||||
|
||||
PrimitiveIdEntity bean = new PrimitiveIdEntity();
|
||||
var bean = new PrimitiveIdEntity();
|
||||
assertThat(entity.isNew(bean)).isTrue();
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ class PersistentEntityIsNewStrategyUnitTests {
|
||||
|
||||
PersistentEntity<?, ?> entity = context.getRequiredPersistentEntity(PrimitiveIdEntity.class);
|
||||
|
||||
PrimitiveIdEntity bean = new PrimitiveIdEntity();
|
||||
var bean = new PrimitiveIdEntity();
|
||||
|
||||
bean.id = 1L;
|
||||
assertThat(entity.isNew(bean)).isFalse();
|
||||
@@ -62,7 +62,7 @@ class PersistentEntityIsNewStrategyUnitTests {
|
||||
|
||||
PersistentEntity<?, ?> entity = context.getRequiredPersistentEntity(PrimitiveWrapperIdEntity.class);
|
||||
|
||||
PrimitiveWrapperIdEntity bean = new PrimitiveWrapperIdEntity();
|
||||
var bean = new PrimitiveWrapperIdEntity();
|
||||
assertThat(entity.isNew(bean)).isTrue();
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ class PersistentEntityIsNewStrategyUnitTests {
|
||||
|
||||
PersistentEntity<?, ?> entity = context.getRequiredPersistentEntity(PrimitiveWrapperIdEntity.class);
|
||||
|
||||
PrimitiveWrapperIdEntity bean = new PrimitiveWrapperIdEntity();
|
||||
var bean = new PrimitiveWrapperIdEntity();
|
||||
|
||||
bean.id = 0L;
|
||||
assertThat(entity.isNew(bean)).isFalse();
|
||||
@@ -108,7 +108,7 @@ class PersistentEntityIsNewStrategyUnitTests {
|
||||
|
||||
PersistentEntity<?, ?> entity = context.getRequiredPersistentEntity(VersionedEntity.class);
|
||||
|
||||
VersionedEntity bean = new VersionedEntity();
|
||||
var bean = new VersionedEntity();
|
||||
|
||||
bean.id = 1L;
|
||||
assertThat(entity.isNew(bean)).isTrue();
|
||||
|
||||
@@ -17,7 +17,6 @@ package org.springframework.data.mapping.model;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -28,7 +27,6 @@ import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.data.mapping.MappingException;
|
||||
import org.springframework.data.mapping.PersistentEntity;
|
||||
import org.springframework.data.mapping.PersistentProperty;
|
||||
import org.springframework.data.mapping.PreferredConstructor.Parameter;
|
||||
import org.springframework.data.mapping.model.PersistentEntityParameterValueProviderUnitTests.Outer.Inner;
|
||||
import org.springframework.data.util.ClassTypeInformation;
|
||||
|
||||
@@ -59,7 +57,7 @@ class PersistentEntityParameterValueProviderUnitTests<P extends PersistentProper
|
||||
|
||||
assertThat(entity.getPersistenceConstructor()).satisfies(constructor -> {
|
||||
|
||||
Iterator<Parameter<Object, P>> iterator = constructor.getParameters().iterator();
|
||||
var iterator = constructor.getParameters().iterator();
|
||||
ParameterValueProvider<P> provider = new PersistentEntityParameterValueProvider<>(entity, propertyValueProvider,
|
||||
outer);
|
||||
|
||||
|
||||
@@ -51,10 +51,10 @@ public class PersistentPropertyAccessorTests {
|
||||
|
||||
List<Object[]> parameters = new ArrayList<>();
|
||||
|
||||
ClassGeneratingPropertyAccessorFactory factory = new ClassGeneratingPropertyAccessorFactory();
|
||||
var factory = new ClassGeneratingPropertyAccessorFactory();
|
||||
|
||||
Function<Object, PersistentPropertyAccessor<?>> beanWrapper = BeanWrapper::new;
|
||||
Function<Object, PersistentPropertyAccessor<?>> classGenerating = it -> factory
|
||||
var beanWrapper = (Function<Object, PersistentPropertyAccessor<?>>) BeanWrapper::new;
|
||||
var classGenerating = (Function<Object, PersistentPropertyAccessor<?>>) it -> factory
|
||||
.getPropertyAccessor(MAPPING_CONTEXT.getRequiredPersistentEntity(it.getClass()), it);
|
||||
|
||||
parameters.add(new Object[] { beanWrapper, "BeanWrapper" });
|
||||
@@ -67,9 +67,9 @@ public class PersistentPropertyAccessorTests {
|
||||
@MethodSource("parameters")
|
||||
void shouldSetProperty(Function<Object, PersistentPropertyAccessor<?>> propertyAccessorFunction) {
|
||||
|
||||
DataClass bean = new DataClass();
|
||||
var bean = new DataClass();
|
||||
PersistentPropertyAccessor accessor = propertyAccessorFunction.apply(bean);
|
||||
SamplePersistentProperty property = getProperty(bean, "id");
|
||||
var property = getProperty(bean, "id");
|
||||
|
||||
accessor.setProperty(property, "value");
|
||||
|
||||
@@ -82,9 +82,9 @@ public class PersistentPropertyAccessorTests {
|
||||
@MethodSource("parameters")
|
||||
void shouldSetKotlinDataClassProperty(Function<Object, PersistentPropertyAccessor<?>> propertyAccessorFunction) {
|
||||
|
||||
DataClassKt bean = new DataClassKt("foo");
|
||||
var bean = new DataClassKt("foo");
|
||||
PersistentPropertyAccessor accessor = propertyAccessorFunction.apply(bean);
|
||||
SamplePersistentProperty property = getProperty(bean, "id");
|
||||
var property = getProperty(bean, "id");
|
||||
|
||||
accessor.setProperty(property, "value");
|
||||
|
||||
@@ -98,9 +98,9 @@ public class PersistentPropertyAccessorTests {
|
||||
void shouldSetExtendedKotlinDataClassProperty(
|
||||
Function<Object, PersistentPropertyAccessor<?>> propertyAccessorFunction) {
|
||||
|
||||
ExtendedDataClassKt bean = new ExtendedDataClassKt(0, "bar");
|
||||
var bean = new ExtendedDataClassKt(0, "bar");
|
||||
PersistentPropertyAccessor accessor = propertyAccessorFunction.apply(bean);
|
||||
SamplePersistentProperty property = getProperty(bean, "id");
|
||||
var property = getProperty(bean, "id");
|
||||
|
||||
accessor.setProperty(property, 1L);
|
||||
|
||||
@@ -113,9 +113,9 @@ public class PersistentPropertyAccessorTests {
|
||||
@MethodSource("parameters")
|
||||
void shouldUseKotlinGeneratedCopyMethod(Function<Object, PersistentPropertyAccessor<?>> propertyAccessorFunction) {
|
||||
|
||||
UnusedCustomCopy bean = new UnusedCustomCopy(new Timestamp(100));
|
||||
var bean = new UnusedCustomCopy(new Timestamp(100));
|
||||
PersistentPropertyAccessor accessor = propertyAccessorFunction.apply(bean);
|
||||
SamplePersistentProperty property = getProperty(bean, "date");
|
||||
var property = getProperty(bean, "date");
|
||||
|
||||
accessor.setProperty(property, new Timestamp(200));
|
||||
|
||||
@@ -129,9 +129,9 @@ public class PersistentPropertyAccessorTests {
|
||||
void kotlinCopyMethodShouldNotSetUnsettableProperty(
|
||||
Function<Object, PersistentPropertyAccessor<?>> propertyAccessorFunction) {
|
||||
|
||||
SingleSettableProperty bean = new SingleSettableProperty(1.1);
|
||||
var bean = new SingleSettableProperty(1.1);
|
||||
PersistentPropertyAccessor accessor = propertyAccessorFunction.apply(bean);
|
||||
SamplePersistentProperty property = getProperty(bean, "version");
|
||||
var property = getProperty(bean, "version");
|
||||
|
||||
assertThatThrownBy(() -> accessor.setProperty(property, 1)).isInstanceOf(UnsupportedOperationException.class);
|
||||
}
|
||||
@@ -141,13 +141,13 @@ public class PersistentPropertyAccessorTests {
|
||||
void shouldSet17thImmutableNullableKotlinProperty(
|
||||
Function<Object, PersistentPropertyAccessor<?>> propertyAccessorFunction) {
|
||||
|
||||
With33Args bean = new With33Args();
|
||||
var bean = new With33Args();
|
||||
PersistentPropertyAccessor accessor = propertyAccessorFunction.apply(bean);
|
||||
SamplePersistentProperty property = getProperty(bean, "17");
|
||||
var property = getProperty(bean, "17");
|
||||
|
||||
accessor.setProperty(property, "foo");
|
||||
|
||||
With33Args updated = (With33Args) accessor.getBean();
|
||||
var updated = (With33Args) accessor.getBean();
|
||||
assertThat(updated.get17()).isEqualTo("foo");
|
||||
}
|
||||
|
||||
@@ -155,9 +155,9 @@ public class PersistentPropertyAccessorTests {
|
||||
@MethodSource("parameters")
|
||||
void shouldWitherProperty(Function<Object, PersistentPropertyAccessor<?>> propertyAccessorFunction) {
|
||||
|
||||
ValueClass bean = new ValueClass("foo", "bar");
|
||||
var bean = new ValueClass("foo", "bar");
|
||||
PersistentPropertyAccessor accessor = propertyAccessorFunction.apply(bean);
|
||||
SamplePersistentProperty property = getProperty(bean, "id");
|
||||
var property = getProperty(bean, "id");
|
||||
|
||||
accessor.setProperty(property, "value");
|
||||
|
||||
@@ -170,9 +170,9 @@ public class PersistentPropertyAccessorTests {
|
||||
@MethodSource("parameters")
|
||||
void shouldRejectImmutablePropertyUpdate(Function<Object, PersistentPropertyAccessor<?>> propertyAccessorFunction) {
|
||||
|
||||
ValueClass bean = new ValueClass("foo", "bar");
|
||||
var bean = new ValueClass("foo", "bar");
|
||||
PersistentPropertyAccessor accessor = propertyAccessorFunction.apply(bean);
|
||||
SamplePersistentProperty property = getProperty(bean, "immutable");
|
||||
var property = getProperty(bean, "immutable");
|
||||
|
||||
assertThatThrownBy(() -> accessor.setProperty(property, "value")).isInstanceOf(UnsupportedOperationException.class);
|
||||
}
|
||||
@@ -182,9 +182,9 @@ public class PersistentPropertyAccessorTests {
|
||||
void shouldRejectImmutableKotlinClassPropertyUpdate(
|
||||
Function<Object, PersistentPropertyAccessor<?>> propertyAccessorFunction) {
|
||||
|
||||
ValueClassKt bean = new ValueClassKt("foo");
|
||||
var bean = new ValueClassKt("foo");
|
||||
PersistentPropertyAccessor accessor = propertyAccessorFunction.apply(bean);
|
||||
SamplePersistentProperty property = getProperty(bean, "immutable");
|
||||
var property = getProperty(bean, "immutable");
|
||||
|
||||
assertThatThrownBy(() -> accessor.setProperty(property, "value")).isInstanceOf(UnsupportedOperationException.class);
|
||||
}
|
||||
@@ -192,14 +192,14 @@ public class PersistentPropertyAccessorTests {
|
||||
@Test // DATACMNS-1422
|
||||
void shouldUseReflectionIfFrameworkTypesNotVisible() throws Exception {
|
||||
|
||||
HidingClassLoader classLoader = HidingClassLoader.hide(Assert.class);
|
||||
var classLoader = HidingClassLoader.hide(Assert.class);
|
||||
classLoader.excludePackage("org.springframework.data.mapping.model");
|
||||
|
||||
Class<?> entityType = classLoader
|
||||
var entityType = classLoader
|
||||
.loadClass("org.springframework.data.mapping.model.PersistentPropertyAccessorTests$ClassLoaderTest");
|
||||
|
||||
ClassGeneratingPropertyAccessorFactory factory = new ClassGeneratingPropertyAccessorFactory();
|
||||
BasicPersistentEntity<Object, SamplePersistentProperty> entity = MAPPING_CONTEXT
|
||||
var factory = new ClassGeneratingPropertyAccessorFactory();
|
||||
var entity = MAPPING_CONTEXT
|
||||
.getRequiredPersistentEntity(entityType);
|
||||
|
||||
assertThat(factory.isSupported(entity)).isFalse();
|
||||
|
||||
@@ -33,7 +33,7 @@ class PropertyAccessorClassGeneratorUnitTests {
|
||||
@Test // DATACMNS-1602
|
||||
void reusesAlreadyDeclaredClass() {
|
||||
|
||||
SampleMappingContext context = new SampleMappingContext();
|
||||
var context = new SampleMappingContext();
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(Sample.class);
|
||||
|
||||
PropertyAccessorClassGenerator.generateCustomAccessorClass(entity);
|
||||
|
||||
@@ -45,7 +45,7 @@ class PropertyUnitTests {
|
||||
@Test // DATACMNS-1322
|
||||
void shouldDiscoverWitherMethod() {
|
||||
|
||||
Property property = Property.of(ClassTypeInformation.from(WitherType.class),
|
||||
var property = Property.of(ClassTypeInformation.from(WitherType.class),
|
||||
ReflectionUtils.findField(WitherType.class, "id"));
|
||||
|
||||
assertThat(property.getWither()).isPresent().hasValueSatisfying(actual -> {
|
||||
@@ -57,7 +57,7 @@ class PropertyUnitTests {
|
||||
@Test // DATACMNS-1421
|
||||
void shouldDiscoverDerivedWitherMethod() {
|
||||
|
||||
Property property = Property.of(ClassTypeInformation.from(DerivedWitherClass.class),
|
||||
var property = Property.of(ClassTypeInformation.from(DerivedWitherClass.class),
|
||||
ReflectionUtils.findField(DerivedWitherClass.class, "id"));
|
||||
|
||||
assertThat(property.getWither()).isPresent().hasValueSatisfying(actual -> {
|
||||
@@ -70,7 +70,7 @@ class PropertyUnitTests {
|
||||
@Test // DATACMNS-1421
|
||||
void shouldNotDiscoverWitherMethodWithIncompatibleReturnType() {
|
||||
|
||||
Property property = Property.of(ClassTypeInformation.from(AnotherLevel.class),
|
||||
var property = Property.of(ClassTypeInformation.from(AnotherLevel.class),
|
||||
ReflectionUtils.findField(AnotherLevel.class, "id"));
|
||||
|
||||
assertThat(property.getWither()).isEmpty();
|
||||
|
||||
@@ -71,7 +71,7 @@ class ReflectionEntityInstantiatorUnitTests<P extends PersistentProperty<P>> {
|
||||
|
||||
doReturn(constructor).when(entity).getPersistenceConstructor();
|
||||
|
||||
Object instance = INSTANCE.createInstance(entity, provider);
|
||||
var instance = INSTANCE.createInstance(entity, provider);
|
||||
|
||||
assertThat(instance).isInstanceOf(Foo.class);
|
||||
assertThat(constructor)
|
||||
@@ -91,15 +91,15 @@ class ReflectionEntityInstantiatorUnitTests<P extends PersistentProperty<P>> {
|
||||
@Test // DATACMNS-134
|
||||
void createsInnerClassInstanceCorrectly() {
|
||||
|
||||
BasicPersistentEntity<Inner, P> entity = new BasicPersistentEntity<>(from(Inner.class));
|
||||
var entity = new BasicPersistentEntity<Inner, P>(from(Inner.class));
|
||||
assertThat(entity.getPersistenceConstructor()).satisfies(it -> {
|
||||
|
||||
Parameter<Object, P> parameter = it.getParameters().iterator().next();
|
||||
var parameter = it.getParameters().iterator().next();
|
||||
|
||||
Object outer = new Outer();
|
||||
|
||||
when(provider.getParameterValue(parameter)).thenReturn(outer);
|
||||
Inner instance = INSTANCE.createInstance(entity, provider);
|
||||
var instance = INSTANCE.createInstance(entity, provider);
|
||||
|
||||
assertThat(instance).isNotNull();
|
||||
|
||||
|
||||
@@ -30,10 +30,10 @@ import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.data.mapping.AccessOptions;
|
||||
import org.springframework.data.mapping.AccessOptions.SetOptions.SetNulls;
|
||||
import org.springframework.data.mapping.PersistentEntity;
|
||||
import org.springframework.data.mapping.PersistentPropertyPath;
|
||||
import org.springframework.data.mapping.PersistentPropertyPathAccessor;
|
||||
import org.springframework.data.mapping.context.SampleMappingContext;
|
||||
import org.springframework.data.mapping.context.SamplePersistentProperty;
|
||||
@@ -55,7 +55,7 @@ class SimplePersistentPropertyPathAccessorUnitTests {
|
||||
@Test // DATACMNS-1438
|
||||
void setsPropertyContainingCollectionPathForAllElements() {
|
||||
|
||||
Customers customers = new Customers(Arrays.asList(first, second), Collections.emptyMap());
|
||||
var customers = new Customers(Arrays.asList(first, second), Collections.emptyMap());
|
||||
|
||||
assertFirstnamesSetFor(customers, "customers.firstname");
|
||||
}
|
||||
@@ -67,7 +67,7 @@ class SimplePersistentPropertyPathAccessorUnitTests {
|
||||
map.put("1", first);
|
||||
map.put("2", second);
|
||||
|
||||
Customers customers = new Customers(Collections.emptyList(), map);
|
||||
var customers = new Customers(Collections.emptyList(), map);
|
||||
|
||||
assertFirstnamesSetFor(customers, "customerMap.firstname");
|
||||
}
|
||||
@@ -75,10 +75,10 @@ class SimplePersistentPropertyPathAccessorUnitTests {
|
||||
@Test // DATACMNS-1461
|
||||
void skipsNullValueIfConfigured() {
|
||||
|
||||
CustomerWrapper wrapper = new CustomerWrapper(null);
|
||||
var wrapper = new CustomerWrapper(null);
|
||||
|
||||
PersistentPropertyPathAccessor<CustomerWrapper> accessor = getAccessor(wrapper);
|
||||
PersistentPropertyPath<SamplePersistentProperty> path = context.getPersistentPropertyPath("customer.firstname",
|
||||
var accessor = getAccessor(wrapper);
|
||||
var path = context.getPersistentPropertyPath("customer.firstname",
|
||||
CustomerWrapper.class);
|
||||
|
||||
assertThatCode(() -> {
|
||||
@@ -89,10 +89,10 @@ class SimplePersistentPropertyPathAccessorUnitTests {
|
||||
@Test // DATACMNS-1296
|
||||
void skipsIntermediateNullsWhenSettingNestedValues() {
|
||||
|
||||
CustomerWrapperWrapper wrapper = new CustomerWrapperWrapper(null);
|
||||
var wrapper = new CustomerWrapperWrapper(null);
|
||||
|
||||
PersistentPropertyPathAccessor<CustomerWrapperWrapper> accessor = getAccessor(wrapper);
|
||||
PersistentPropertyPath<SamplePersistentProperty> path = context
|
||||
var accessor = getAccessor(wrapper);
|
||||
var path = context
|
||||
.getPersistentPropertyPath("wrapper.customer.firstname", CustomerWrapperWrapper.class);
|
||||
|
||||
assertThatCode(() -> {
|
||||
@@ -102,7 +102,7 @@ class SimplePersistentPropertyPathAccessorUnitTests {
|
||||
|
||||
private void assertFirstnamesSetFor(Customers customers, String path) {
|
||||
|
||||
PersistentPropertyPath<SamplePersistentProperty> propertyPath = context.getPersistentPropertyPath(path,
|
||||
var propertyPath = context.getPersistentPropertyPath(path,
|
||||
Customers.class);
|
||||
|
||||
getAccessor(customers).setProperty(propertyPath, "firstname");
|
||||
@@ -114,10 +114,10 @@ class SimplePersistentPropertyPathAccessorUnitTests {
|
||||
|
||||
private <T> PersistentPropertyPathAccessor<T> getAccessor(T source) {
|
||||
|
||||
Class<? extends Object> type = source.getClass();
|
||||
var type = source.getClass();
|
||||
|
||||
PersistentEntity<Object, SamplePersistentProperty> entity = context.getRequiredPersistentEntity(type);
|
||||
PersistentPropertyPathAccessor<T> accessor = entity.getPropertyPathAccessor(source);
|
||||
var accessor = entity.getPropertyPathAccessor(source);
|
||||
|
||||
return accessor;
|
||||
}
|
||||
|
||||
@@ -51,8 +51,8 @@ class MapAccessingMethodInterceptorUnitTests {
|
||||
when(invocation.proceed()).thenReturn(map.toString());
|
||||
when(invocation.getMethod()).thenReturn(Object.class.getMethod("toString"));
|
||||
|
||||
MapAccessingMethodInterceptor interceptor = new MapAccessingMethodInterceptor(map);
|
||||
Object result = interceptor.invoke(invocation);
|
||||
var interceptor = new MapAccessingMethodInterceptor(map);
|
||||
var result = interceptor.invoke(invocation);
|
||||
|
||||
assertThat(result).isEqualTo(map.toString());
|
||||
}
|
||||
@@ -65,7 +65,7 @@ class MapAccessingMethodInterceptorUnitTests {
|
||||
when(invocation.getMethod()).thenReturn(Sample.class.getMethod("setName", String.class));
|
||||
when(invocation.getArguments()).thenReturn(new Object[] { "Foo" });
|
||||
|
||||
Object result = new MapAccessingMethodInterceptor(map).invoke(invocation);
|
||||
var result = new MapAccessingMethodInterceptor(map).invoke(invocation);
|
||||
|
||||
assertThat(result).isNull();
|
||||
assertThat(map.get("name")).isEqualTo("Foo");
|
||||
@@ -79,7 +79,7 @@ class MapAccessingMethodInterceptorUnitTests {
|
||||
|
||||
when(invocation.getMethod()).thenReturn(Sample.class.getMethod("getName"));
|
||||
|
||||
Object result = new MapAccessingMethodInterceptor(map).invoke(invocation);
|
||||
var result = new MapAccessingMethodInterceptor(map).invoke(invocation);
|
||||
|
||||
assertThat(result).isEqualTo("Foo");
|
||||
}
|
||||
|
||||
@@ -117,12 +117,12 @@ class ProjectingMethodInterceptorUnitTests {
|
||||
|
||||
MethodInterceptor methodInterceptor = new ProjectingMethodInterceptor(new ProxyProjectionFactory(), interceptor,
|
||||
conversionService);
|
||||
Object result = methodInterceptor
|
||||
var result = methodInterceptor
|
||||
.invoke(mockInvocationOf("getHelperCollection", Collections.singleton(mock(Helper.class))));
|
||||
|
||||
assertThat(result).isInstanceOf(Set.class);
|
||||
|
||||
Set<Object> projections = (Set<Object>) result;
|
||||
var projections = (Set<Object>) result;
|
||||
assertThat(projections).hasSize(1).hasOnlyElementsOfType(HelperProjection.class);
|
||||
}
|
||||
|
||||
@@ -132,12 +132,12 @@ class ProjectingMethodInterceptorUnitTests {
|
||||
|
||||
MethodInterceptor methodInterceptor = new ProjectingMethodInterceptor(new ProxyProjectionFactory(), interceptor,
|
||||
conversionService);
|
||||
Object result = methodInterceptor
|
||||
var result = methodInterceptor
|
||||
.invoke(mockInvocationOf("getHelperList", Collections.singletonList(mock(Helper.class))));
|
||||
|
||||
assertThat(result).isInstanceOf(List.class);
|
||||
|
||||
List<Object> projections = (List<Object>) result;
|
||||
var projections = (List<Object>) result;
|
||||
|
||||
assertThat(projections).hasSize(1).hasOnlyElementsOfType(HelperProjection.class);
|
||||
}
|
||||
@@ -148,11 +148,11 @@ class ProjectingMethodInterceptorUnitTests {
|
||||
|
||||
MethodInterceptor methodInterceptor = new ProjectingMethodInterceptor(new ProxyProjectionFactory(), interceptor,
|
||||
conversionService);
|
||||
Object result = methodInterceptor.invoke(mockInvocationOf("getHelperArray", new Helper[] { mock(Helper.class) }));
|
||||
var result = methodInterceptor.invoke(mockInvocationOf("getHelperArray", new Helper[] { mock(Helper.class) }));
|
||||
|
||||
assertThat(result).isInstanceOf(Collection.class);
|
||||
|
||||
Collection<Object> projections = (Collection<Object>) result;
|
||||
var projections = (Collection<Object>) result;
|
||||
|
||||
assertThat(projections).hasSize(1).hasOnlyElementsOfType(HelperProjection.class);
|
||||
}
|
||||
@@ -164,12 +164,12 @@ class ProjectingMethodInterceptorUnitTests {
|
||||
MethodInterceptor methodInterceptor = new ProjectingMethodInterceptor(new ProxyProjectionFactory(), interceptor,
|
||||
conversionService);
|
||||
|
||||
Object result = methodInterceptor
|
||||
var result = methodInterceptor
|
||||
.invoke(mockInvocationOf("getHelperMap", Collections.singletonMap("foo", mock(Helper.class))));
|
||||
|
||||
assertThat(result).isInstanceOf(Map.class);
|
||||
|
||||
Map<String, Object> projections = (Map<String, Object>) result;
|
||||
var projections = (Map<String, Object>) result;
|
||||
|
||||
assertThat(projections).hasSize(1).matches(map -> map.get("foo") instanceof HelperProjection);
|
||||
}
|
||||
@@ -180,12 +180,12 @@ class ProjectingMethodInterceptorUnitTests {
|
||||
MethodInterceptor methodInterceptor = new ProjectingMethodInterceptor(new ProxyProjectionFactory(), interceptor,
|
||||
conversionService);
|
||||
|
||||
Helper reference = mock(Helper.class);
|
||||
Object result = methodInterceptor.invoke(mockInvocationOf("getHelperCollection", reference));
|
||||
var reference = mock(Helper.class);
|
||||
var result = methodInterceptor.invoke(mockInvocationOf("getHelperCollection", reference));
|
||||
|
||||
assertThat(result).isInstanceOf(Collection.class);
|
||||
|
||||
Collection<?> collection = (Collection<?>) result;
|
||||
var collection = (Collection<?>) result;
|
||||
|
||||
assertThat(collection).hasSize(1).hasOnlyElementsOfType(HelperProjection.class);
|
||||
}
|
||||
@@ -196,12 +196,12 @@ class ProjectingMethodInterceptorUnitTests {
|
||||
MethodInterceptor methodInterceptor = new ProjectingMethodInterceptor(new ProxyProjectionFactory(), interceptor,
|
||||
conversionService);
|
||||
|
||||
Object result = methodInterceptor
|
||||
var result = methodInterceptor
|
||||
.invoke(mockInvocationOf("getHelperEnumSet", Collections.singletonList(HelperEnum.Helpful)));
|
||||
|
||||
assertThat(result).isInstanceOf(EnumSet.class);
|
||||
|
||||
Collection<HelperEnum> collection = (Collection<HelperEnum>) result;
|
||||
var collection = (Collection<HelperEnum>) result;
|
||||
assertThat(collection).containsOnly(HelperEnum.Helpful);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,10 +21,8 @@ import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.jayway.jsonpath.Configuration.ConfigurationBuilder;
|
||||
import com.jayway.jsonpath.DocumentContext;
|
||||
import com.jayway.jsonpath.JsonPath;
|
||||
import com.jayway.jsonpath.Option;
|
||||
import com.jayway.jsonpath.ParseContext;
|
||||
|
||||
/**
|
||||
* Integration tests for projections.
|
||||
@@ -36,11 +34,11 @@ class ProjectionIntegrationTests {
|
||||
@Test // DATACMNS-909
|
||||
void jacksonSerializationDoesNotExposeDecoratedClass() throws Exception {
|
||||
|
||||
ProxyProjectionFactory factory = new ProxyProjectionFactory();
|
||||
SampleProjection projection = factory.createProjection(SampleProjection.class);
|
||||
var factory = new ProxyProjectionFactory();
|
||||
var projection = factory.createProjection(SampleProjection.class);
|
||||
|
||||
ParseContext context = JsonPath.using(new ConfigurationBuilder().options(Option.SUPPRESS_EXCEPTIONS).build());
|
||||
DocumentContext json = context.parse(new ObjectMapper().writeValueAsString(projection));
|
||||
var context = JsonPath.using(new ConfigurationBuilder().options(Option.SUPPRESS_EXCEPTIONS).build());
|
||||
var json = context.parse(new ObjectMapper().writeValueAsString(projection));
|
||||
|
||||
assertThat(json.read("$.decoratedClass", String.class)).isNull();
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ class PropertyAccessingMethodInterceptorUnitTests {
|
||||
@Test // DATAREST-221
|
||||
void triggersPropertyAccessOnTarget() throws Throwable {
|
||||
|
||||
Source source = new Source();
|
||||
var source = new Source();
|
||||
source.firstname = "Dave";
|
||||
|
||||
when(invocation.getMethod()).thenReturn(Projection.class.getMethod("getFirstname"));
|
||||
@@ -79,7 +79,7 @@ class PropertyAccessingMethodInterceptorUnitTests {
|
||||
@Test // DATACMNS-820
|
||||
void triggersWritePropertyAccessOnTarget() throws Throwable {
|
||||
|
||||
Source source = new Source();
|
||||
var source = new Source();
|
||||
source.firstname = "Dave";
|
||||
|
||||
when(invocation.getMethod()).thenReturn(Projection.class.getMethod("setFirstname", String.class));
|
||||
@@ -93,7 +93,7 @@ class PropertyAccessingMethodInterceptorUnitTests {
|
||||
@Test // DATACMNS-820
|
||||
void throwsAppropriateExceptionIfTheInvocationHasNoArguments() throws Throwable {
|
||||
|
||||
Source source = new Source();
|
||||
var source = new Source();
|
||||
|
||||
when(invocation.getMethod()).thenReturn(Projection.class.getMethod("setFirstname", String.class));
|
||||
when(invocation.getArguments()).thenReturn(new Object[0]);
|
||||
|
||||
@@ -17,7 +17,6 @@ package org.springframework.data.projection;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.beans.PropertyDescriptor;
|
||||
import java.lang.reflect.Proxy;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Calendar;
|
||||
@@ -25,12 +24,11 @@ import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.aop.Advisor;
|
||||
|
||||
import org.springframework.aop.TargetClassAware;
|
||||
import org.springframework.aop.framework.Advised;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
@@ -70,7 +68,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATAREST-221, DATACMNS-630
|
||||
void createsProjectingProxy() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.firstname = "Dave";
|
||||
customer.lastname = "Matthews";
|
||||
|
||||
@@ -78,7 +76,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
customer.address.city = "New York";
|
||||
customer.address.zipCode = "ZIP";
|
||||
|
||||
CustomerExcerpt excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
|
||||
assertThat(excerpt.getFirstname()).isEqualTo("Dave");
|
||||
assertThat(excerpt.getAddress().getZipCode()).isEqualTo("ZIP");
|
||||
@@ -87,7 +85,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATAREST-221, DATACMNS-630
|
||||
void proxyExposesTargetClassAware() {
|
||||
|
||||
CustomerExcerpt proxy = factory.createProjection(CustomerExcerpt.class);
|
||||
var proxy = factory.createProjection(CustomerExcerpt.class);
|
||||
|
||||
assertThat(proxy).isInstanceOf(TargetClassAware.class);
|
||||
assertThat(((TargetClassAware) proxy).getTargetClass()).isEqualTo(HashMap.class);
|
||||
@@ -101,7 +99,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-630
|
||||
void createsMapBasedProxyFromSource() {
|
||||
|
||||
HashMap<String, Object> addressSource = new HashMap<>();
|
||||
var addressSource = new HashMap<String, Object>();
|
||||
addressSource.put("zipCode", "ZIP");
|
||||
addressSource.put("city", "NewYork");
|
||||
|
||||
@@ -110,11 +108,11 @@ class ProxyProjectionFactoryUnitTests {
|
||||
source.put("lastname", "Matthews");
|
||||
source.put("address", addressSource);
|
||||
|
||||
CustomerExcerpt projection = factory.createProjection(CustomerExcerpt.class, source);
|
||||
var projection = factory.createProjection(CustomerExcerpt.class, source);
|
||||
|
||||
assertThat(projection.getFirstname()).isEqualTo("Dave");
|
||||
|
||||
AddressExcerpt address = projection.getAddress();
|
||||
var address = projection.getAddress();
|
||||
assertThat(address).isNotNull();
|
||||
assertThat(address.getZipCode()).isEqualTo("ZIP");
|
||||
}
|
||||
@@ -122,7 +120,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-630
|
||||
void createsEmptyMapBasedProxy() {
|
||||
|
||||
CustomerProxy proxy = factory.createProjection(CustomerProxy.class);
|
||||
var proxy = factory.createProjection(CustomerProxy.class);
|
||||
|
||||
assertThat(proxy).isNotNull();
|
||||
|
||||
@@ -133,8 +131,8 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-630
|
||||
void returnsAllPropertiesAsInputProperties() {
|
||||
|
||||
ProjectionInformation projectionInformation = factory.getProjectionInformation(CustomerExcerpt.class);
|
||||
List<PropertyDescriptor> result = projectionInformation.getInputProperties();
|
||||
var projectionInformation = factory.getProjectionInformation(CustomerExcerpt.class);
|
||||
var result = projectionInformation.getInputProperties();
|
||||
|
||||
assertThat(result).hasSize(6);
|
||||
}
|
||||
@@ -142,10 +140,10 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-655
|
||||
void invokesDefaultMethodOnProxy() {
|
||||
|
||||
CustomerExcerpt excerpt = factory.createProjection(CustomerExcerpt.class);
|
||||
var excerpt = factory.createProjection(CustomerExcerpt.class);
|
||||
|
||||
Advised advised = (Advised) ReflectionTestUtils.getField(Proxy.getInvocationHandler(excerpt), "advised");
|
||||
Advisor[] advisors = advised.getAdvisors();
|
||||
var advised = (Advised) ReflectionTestUtils.getField(Proxy.getInvocationHandler(excerpt), "advised");
|
||||
var advisors = advised.getAdvisors();
|
||||
|
||||
assertThat(advisors.length).isGreaterThan(0);
|
||||
assertThat(advisors[0].getAdvice()).isInstanceOf(DefaultMethodInvokingMethodInterceptor.class);
|
||||
@@ -154,7 +152,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-648
|
||||
void exposesProxyTarget() {
|
||||
|
||||
CustomerExcerpt excerpt = factory.createProjection(CustomerExcerpt.class);
|
||||
var excerpt = factory.createProjection(CustomerExcerpt.class);
|
||||
|
||||
assertThat(excerpt).isInstanceOf(TargetAware.class);
|
||||
assertThat(((TargetAware) excerpt).getTarget()).isInstanceOf(Map.class);
|
||||
@@ -163,10 +161,10 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-722
|
||||
void doesNotProjectPrimitiveArray() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.picture = "binarydata".getBytes();
|
||||
|
||||
CustomerExcerpt excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
|
||||
assertThat(excerpt.getPicture()).isEqualTo(customer.picture);
|
||||
}
|
||||
@@ -174,14 +172,14 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-722
|
||||
void projectsNonPrimitiveArray() {
|
||||
|
||||
Address address = new Address();
|
||||
var address = new Address();
|
||||
address.city = "New York";
|
||||
address.zipCode = "ZIP";
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.shippingAddresses = new Address[] { address };
|
||||
|
||||
CustomerExcerpt excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
|
||||
assertThat(excerpt.getShippingAddresses()).hasSize(1);
|
||||
}
|
||||
@@ -189,10 +187,10 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-782
|
||||
void convertsPrimitiveValues() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.id = 1L;
|
||||
|
||||
CustomerExcerpt excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
|
||||
assertThat(excerpt.getId()).isEqualTo(customer.id.toString());
|
||||
}
|
||||
@@ -200,7 +198,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-89
|
||||
void exposesProjectionInformationCorrectly() {
|
||||
|
||||
ProjectionInformation information = factory.getProjectionInformation(CustomerExcerpt.class);
|
||||
var information = factory.getProjectionInformation(CustomerExcerpt.class);
|
||||
|
||||
assertThat(information.getType()).isEqualTo(CustomerExcerpt.class);
|
||||
assertThat(information.isClosed()).isTrue();
|
||||
@@ -209,10 +207,10 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-829
|
||||
void projectsMapOfStringToObjectCorrectly() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.data = Collections.singletonMap("key", null);
|
||||
|
||||
Map<String, Object> data = factory.createProjection(CustomerExcerpt.class, customer).getData();
|
||||
var data = factory.createProjection(CustomerExcerpt.class, customer).getData();
|
||||
|
||||
assertThat(data).isNotNull();
|
||||
assertThat(data.containsKey("key")).isTrue();
|
||||
@@ -222,7 +220,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-1121
|
||||
void doesNotCreateWrappingProxyIfTargetImplementsProjectionInterface() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
|
||||
assertThat(factory.createProjection(Contact.class, customer)).isSameAs(customer);
|
||||
}
|
||||
@@ -230,10 +228,10 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-1762
|
||||
void supportsOptionalAsReturnTypeIfEmpty() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.picture = null;
|
||||
|
||||
CustomerWithOptional excerpt = factory.createProjection(CustomerWithOptional.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerWithOptional.class, customer);
|
||||
|
||||
assertThat(excerpt.getPicture()).isEmpty();
|
||||
}
|
||||
@@ -241,10 +239,10 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-1762
|
||||
void supportsOptionalAsReturnTypeIfPresent() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.picture = new byte[] { 1, 2, 3 };
|
||||
|
||||
CustomerWithOptional excerpt = factory.createProjection(CustomerWithOptional.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerWithOptional.class, customer);
|
||||
|
||||
assertThat(excerpt.getPicture()).hasValueSatisfying(bytes -> {
|
||||
assertThat(bytes).isEqualTo(new byte[] { 1, 2, 3 });
|
||||
@@ -254,10 +252,10 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-1762
|
||||
void supportsOptionalBackedByOptional() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.optional = Optional.of("foo");
|
||||
|
||||
CustomerWithOptional excerpt = factory.createProjection(CustomerWithOptional.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerWithOptional.class, customer);
|
||||
|
||||
assertThat(excerpt.getOptional()).hasValue("foo");
|
||||
}
|
||||
@@ -265,7 +263,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-1762
|
||||
void supportsOptionalWithProjectionAsReturnTypeIfPresent() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.firstname = "Dave";
|
||||
customer.lastname = "Matthews";
|
||||
|
||||
@@ -273,7 +271,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
customer.address.city = "New York";
|
||||
customer.address.zipCode = "ZIP";
|
||||
|
||||
CustomerWithOptionalHavingProjection excerpt = factory.createProjection(CustomerWithOptionalHavingProjection.class,
|
||||
var excerpt = factory.createProjection(CustomerWithOptionalHavingProjection.class,
|
||||
customer);
|
||||
|
||||
assertThat(excerpt.getFirstname()).isEqualTo("Dave");
|
||||
@@ -285,7 +283,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-1836
|
||||
void supportsDateToLocalDateTimeConversion() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.firstname = "Dave";
|
||||
customer.birthdate = new GregorianCalendar(1967, Calendar.JANUARY, 9).getTime();
|
||||
|
||||
@@ -293,7 +291,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
customer.address.city = "New York";
|
||||
customer.address.zipCode = "ZIP";
|
||||
|
||||
CustomerWithLocalDateTime excerpt = factory.createProjection(CustomerWithLocalDateTime.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerWithLocalDateTime.class, customer);
|
||||
|
||||
assertThat(excerpt.getFirstname()).isEqualTo("Dave");
|
||||
assertThat(excerpt.getBirthdate()).isEqualTo(LocalDateTime.of(1967, 1, 9, 0, 0));
|
||||
@@ -302,7 +300,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-1836
|
||||
void supportsNullableWrapperDateToLocalDateTimeConversion() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.firstname = "Dave";
|
||||
customer.birthdate = new GregorianCalendar(1967, Calendar.JANUARY, 9).getTime();
|
||||
|
||||
@@ -310,7 +308,7 @@ class ProxyProjectionFactoryUnitTests {
|
||||
customer.address.city = "New York";
|
||||
customer.address.zipCode = "ZIP";
|
||||
|
||||
CustomerWithOptional excerpt = factory.createProjection(CustomerWithOptional.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerWithOptional.class, customer);
|
||||
|
||||
assertThat(excerpt.getFirstname()).isEqualTo("Dave");
|
||||
assertThat(excerpt.getBirthdate()).contains(LocalDateTime.of(1967, 1, 9, 0, 0));
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.springframework.data.projection;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.beans.PropertyDescriptor;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -45,18 +44,18 @@ class SpelAwareProxyProjectionFactoryUnitTests {
|
||||
@Test // DATAREST-221, DATACMNS-630
|
||||
void exposesSpelInvokingMethod() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.firstname = "Dave";
|
||||
customer.lastname = "Matthews";
|
||||
|
||||
CustomerExcerpt excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
assertThat(excerpt.getFullName()).isEqualTo("Dave Matthews");
|
||||
}
|
||||
|
||||
@Test // DATACMNS-630
|
||||
void excludesAtValueAnnotatedMethodsForInputProperties() {
|
||||
|
||||
List<PropertyDescriptor> properties = factory //
|
||||
var properties = factory //
|
||||
.getProjectionInformation(CustomerExcerpt.class) //
|
||||
.getInputProperties();
|
||||
|
||||
@@ -68,7 +67,7 @@ class SpelAwareProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-89
|
||||
void considersProjectionUsingAtValueNotClosed() {
|
||||
|
||||
ProjectionInformation information = factory.getProjectionInformation(CustomerExcerpt.class);
|
||||
var information = factory.getProjectionInformation(CustomerExcerpt.class);
|
||||
|
||||
assertThat(information.isClosed()).isFalse();
|
||||
}
|
||||
@@ -76,10 +75,10 @@ class SpelAwareProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-820
|
||||
void setsValueUsingProjection() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.firstname = "Dave";
|
||||
|
||||
CustomerExcerpt excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
var excerpt = factory.createProjection(CustomerExcerpt.class, customer);
|
||||
excerpt.setFirstname("Carl");
|
||||
|
||||
assertThat(customer.firstname).isEqualTo("Carl");
|
||||
@@ -88,10 +87,10 @@ class SpelAwareProxyProjectionFactoryUnitTests {
|
||||
@Test // DATACMNS-820
|
||||
void settingNotWriteablePropertyFails() {
|
||||
|
||||
Customer customer = new Customer();
|
||||
var customer = new Customer();
|
||||
customer.firstname = "Dave";
|
||||
|
||||
ProjectionWithNotWriteableProperty projection = factory.createProjection(ProjectionWithNotWriteableProperty.class,
|
||||
var projection = factory.createProjection(ProjectionWithNotWriteableProperty.class,
|
||||
customer);
|
||||
|
||||
assertThatExceptionOfType(NotWritablePropertyException.class).isThrownBy(() -> projection.setFirstName("Carl"));
|
||||
|
||||
@@ -62,10 +62,10 @@ class SpelEvaluatingMethodInterceptorUnitTests {
|
||||
|
||||
when(invocation.getMethod()).thenReturn(Projection.class.getMethod("invokeBean"));
|
||||
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
var factory = new DefaultListableBeanFactory();
|
||||
factory.registerSingleton("someBean", new SomeBean());
|
||||
|
||||
SpelEvaluatingMethodInterceptor interceptor = new SpelEvaluatingMethodInterceptor(delegate, new Target(), factory,
|
||||
var interceptor = new SpelEvaluatingMethodInterceptor(delegate, new Target(), factory,
|
||||
parser, Projection.class);
|
||||
|
||||
assertThat(interceptor.invoke(invocation)).isEqualTo("value");
|
||||
@@ -76,7 +76,7 @@ class SpelEvaluatingMethodInterceptorUnitTests {
|
||||
|
||||
when(invocation.getMethod()).thenReturn(Projection.class.getMethod("getName"));
|
||||
|
||||
SpelEvaluatingMethodInterceptor interceptor = new SpelEvaluatingMethodInterceptor(delegate, new Target(),
|
||||
var interceptor = new SpelEvaluatingMethodInterceptor(delegate, new Target(),
|
||||
new DefaultListableBeanFactory(), parser, Projection.class);
|
||||
|
||||
interceptor.invoke(invocation);
|
||||
@@ -98,7 +98,7 @@ class SpelEvaluatingMethodInterceptorUnitTests {
|
||||
|
||||
when(invocation.getMethod()).thenReturn(Projection.class.getMethod("propertyFromTarget"));
|
||||
|
||||
SpelEvaluatingMethodInterceptor interceptor = new SpelEvaluatingMethodInterceptor(delegate, map,
|
||||
var interceptor = new SpelEvaluatingMethodInterceptor(delegate, map,
|
||||
new DefaultListableBeanFactory(), parser, Projection.class);
|
||||
|
||||
assertThat(interceptor.invoke(invocation)).isEqualTo("Dave");
|
||||
@@ -107,7 +107,7 @@ class SpelEvaluatingMethodInterceptorUnitTests {
|
||||
@Test // DATACMNS-1150
|
||||
void forwardsParameterIntoSpElExpressionEvaluation() throws Throwable {
|
||||
|
||||
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
|
||||
var factory = new DefaultListableBeanFactory();
|
||||
factory.registerSingleton("someBean", new SomeBean());
|
||||
|
||||
when(invocation.getMethod()).thenReturn(Projection.class.getMethod("invokeBeanWithParameter", Integer.class));
|
||||
|
||||
@@ -42,8 +42,8 @@ public class QPageRequestUnitTests extends AbstractPageRequestUnitTests {
|
||||
@Test
|
||||
void constructsQPageRequestWithOrderSpecifiers() {
|
||||
|
||||
QUser user = QUser.user;
|
||||
QPageRequest pageRequest = QPageRequest.of(0, 10, user.firstname.asc());
|
||||
var user = QUser.user;
|
||||
var pageRequest = QPageRequest.of(0, 10, user.firstname.asc());
|
||||
|
||||
assertThat(pageRequest.getSort()).isEqualTo(QSort.by(user.firstname.asc()));
|
||||
}
|
||||
@@ -51,8 +51,8 @@ public class QPageRequestUnitTests extends AbstractPageRequestUnitTests {
|
||||
@Test
|
||||
void constructsQPageRequestWithQSort() {
|
||||
|
||||
QUser user = QUser.user;
|
||||
QPageRequest pageRequest = QPageRequest.ofSize(10).withSort(QSort.by(user.firstname.asc()));
|
||||
var user = QUser.user;
|
||||
var pageRequest = QPageRequest.ofSize(10).withSort(QSort.by(user.firstname.asc()));
|
||||
|
||||
assertThat(pageRequest.getSort()).isEqualTo(QSort.by(user.firstname.asc()));
|
||||
}
|
||||
|
||||
@@ -31,7 +31,6 @@ import org.springframework.data.domain.Sort.Order;
|
||||
import com.querydsl.core.annotations.QueryInit;
|
||||
import com.querydsl.core.types.OrderSpecifier;
|
||||
import com.querydsl.core.types.dsl.PathBuilderFactory;
|
||||
import com.querydsl.core.types.dsl.StringPath;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link QSort}.
|
||||
@@ -50,8 +49,8 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-402
|
||||
void sortBySingleProperty() {
|
||||
|
||||
QUser user = QUser.user;
|
||||
QSort qsort = new QSort(user.firstname.asc());
|
||||
var user = QUser.user;
|
||||
var qsort = new QSort(user.firstname.asc());
|
||||
|
||||
assertThat(qsort.getOrderSpecifiers()).hasSize(1);
|
||||
assertThat(qsort.getOrderSpecifiers().get(0)).isEqualTo(user.firstname.asc());
|
||||
@@ -61,8 +60,8 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-402
|
||||
void sortByMultiplyProperties() {
|
||||
|
||||
QUser user = QUser.user;
|
||||
QSort qsort = new QSort(user.firstname.asc(), user.lastname.desc());
|
||||
var user = QUser.user;
|
||||
var qsort = new QSort(user.firstname.asc(), user.lastname.desc());
|
||||
|
||||
assertThat(qsort.getOrderSpecifiers()).hasSize(2);
|
||||
assertThat(qsort.getOrderSpecifiers().get(0)).isEqualTo(user.firstname.asc());
|
||||
@@ -74,8 +73,8 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-402
|
||||
void sortByMultiplyPropertiesWithAnd() {
|
||||
|
||||
QUser user = QUser.user;
|
||||
QSort qsort = new QSort(user.firstname.asc()).and(new QSort(user.lastname.desc()));
|
||||
var user = QUser.user;
|
||||
var qsort = new QSort(user.firstname.asc()).and(new QSort(user.lastname.desc()));
|
||||
|
||||
assertThat(qsort.getOrderSpecifiers()).hasSize(2);
|
||||
assertThat(qsort.getOrderSpecifiers().get(0)).isEqualTo(user.firstname.asc());
|
||||
@@ -87,8 +86,8 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-402
|
||||
void sortByMultiplyPropertiesWithAndAndVarArgs() {
|
||||
|
||||
QUser user = QUser.user;
|
||||
QSort qsort = new QSort(user.firstname.asc()).and(user.lastname.desc());
|
||||
var user = QUser.user;
|
||||
var qsort = new QSort(user.firstname.asc()).and(user.lastname.desc());
|
||||
|
||||
assertThat(qsort.getOrderSpecifiers()).hasSize(2);
|
||||
assertThat(qsort.getOrderSpecifiers().get(0)).isEqualTo(user.firstname.asc());
|
||||
@@ -100,8 +99,8 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-402
|
||||
void ensureInteroperabilityWithSort() {
|
||||
|
||||
QUser user = QUser.user;
|
||||
QSort qsort = new QSort(user.firstname.asc(), user.lastname.desc());
|
||||
var user = QUser.user;
|
||||
var qsort = new QSort(user.firstname.asc(), user.lastname.desc());
|
||||
|
||||
Sort sort = qsort;
|
||||
|
||||
@@ -112,10 +111,10 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-402
|
||||
void concatenatesPlainSortCorrectly() {
|
||||
|
||||
QUser user = QUser.user;
|
||||
QSort sort = new QSort(user.firstname.asc());
|
||||
var user = QUser.user;
|
||||
var sort = new QSort(user.firstname.asc());
|
||||
|
||||
Sort result = sort.and(Sort.by(Direction.ASC, "lastname"));
|
||||
var result = sort.and(Sort.by(Direction.ASC, "lastname"));
|
||||
assertThat(result).hasSize(2);
|
||||
assertThat(result).contains(new Order(Direction.ASC, "lastname"), new Order(Direction.ASC, "firstname"));
|
||||
}
|
||||
@@ -123,10 +122,10 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-566
|
||||
void shouldSupportSortByOperatorExpressions() {
|
||||
|
||||
QUser user = QUser.user;
|
||||
QSort sort = new QSort(user.dateOfBirth.yearMonth().asc());
|
||||
var user = QUser.user;
|
||||
var sort = new QSort(user.dateOfBirth.yearMonth().asc());
|
||||
|
||||
Sort result = sort.and(Sort.by(Direction.ASC, "lastname"));
|
||||
var result = sort.and(Sort.by(Direction.ASC, "lastname"));
|
||||
assertThat(result).hasSize(2);
|
||||
assertThat(result).contains(new Order(Direction.ASC, "lastname"),
|
||||
new Order(Direction.ASC, user.dateOfBirth.yearMonth().toString()));
|
||||
@@ -135,7 +134,7 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-621
|
||||
void shouldCreateSortForNestedPathCorrectly() {
|
||||
|
||||
QSort sort = new QSort(userWrapper.user.firstname.asc());
|
||||
var sort = new QSort(userWrapper.user.firstname.asc());
|
||||
|
||||
assertThat(sort).contains(new Order(Direction.ASC, "user.firstname"));
|
||||
}
|
||||
@@ -143,7 +142,7 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-621
|
||||
void shouldCreateSortForDeepNestedPathCorrectly() {
|
||||
|
||||
QSort sort = new QSort(wrapperForUserWrapper.wrapper.user.firstname.asc());
|
||||
var sort = new QSort(wrapperForUserWrapper.wrapper.user.firstname.asc());
|
||||
|
||||
assertThat(sort).contains(new Order(Direction.ASC, "wrapper.user.firstname"));
|
||||
}
|
||||
@@ -151,7 +150,7 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-621
|
||||
void shouldCreateSortForReallyDeepNestedPathCorrectly() {
|
||||
|
||||
QSort sort = new QSort(wrapperToWrapWrapperForUserWrapper.wrapperForUserWrapper.wrapper.user.firstname.asc());
|
||||
var sort = new QSort(wrapperToWrapWrapperForUserWrapper.wrapperForUserWrapper.wrapper.user.firstname.asc());
|
||||
|
||||
assertThat(sort).contains(new Order(Direction.ASC, "wrapperForUserWrapper.wrapper.user.firstname"));
|
||||
}
|
||||
@@ -159,9 +158,9 @@ class QSortUnitTests {
|
||||
@Test // DATACMNS-755
|
||||
void handlesPlainStringPathsCorrectly() {
|
||||
|
||||
StringPath path = new PathBuilderFactory().create(User.class).getString("firstname");
|
||||
var path = new PathBuilderFactory().create(User.class).getString("firstname");
|
||||
|
||||
QSort sort = new QSort(new OrderSpecifier<>(com.querydsl.core.types.Order.ASC, path));
|
||||
var sort = new QSort(new OrderSpecifier<>(com.querydsl.core.types.Order.ASC, path));
|
||||
|
||||
assertThat(sort).contains(new Order(Direction.ASC, "firstname"));
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ class QuerydslRepositoryInvokerAdapterUnitTests {
|
||||
@Test // DATACMNS-669
|
||||
void forwardsFindAllToExecutorWithPredicate() {
|
||||
|
||||
Sort sort = Sort.by("firstname");
|
||||
var sort = Sort.by("firstname");
|
||||
adapter.invokeFindAll(sort);
|
||||
|
||||
verify(executor, times(1)).findAll(predicate, sort);
|
||||
@@ -64,7 +64,7 @@ class QuerydslRepositoryInvokerAdapterUnitTests {
|
||||
@Test // DATACMNS-669
|
||||
void forwardsFindAllWithPageableToExecutorWithPredicate() {
|
||||
|
||||
PageRequest pageable = PageRequest.of(0, 10);
|
||||
var pageable = PageRequest.of(0, 10);
|
||||
adapter.invokeFindAll(pageable);
|
||||
|
||||
verify(executor, times(1)).findAll(predicate, pageable);
|
||||
|
||||
@@ -32,9 +32,9 @@ class PropertyPathInformationUnitTests {
|
||||
@Test // GH-2418
|
||||
void shouldEqualsCorrectly() {
|
||||
|
||||
PropertyPathInformation information = PropertyPathInformation.of("address.description", User.class);
|
||||
var information = PropertyPathInformation.of("address.description", User.class);
|
||||
|
||||
QuerydslPathInformation querydslPathInformation = QuerydslPathInformation.of(QUser.user.address.description);
|
||||
var querydslPathInformation = QuerydslPathInformation.of(QUser.user.address.description);
|
||||
|
||||
assertThat(information).isEqualTo(querydslPathInformation);
|
||||
assertThat(querydslPathInformation).isEqualTo(information);
|
||||
@@ -43,9 +43,9 @@ class PropertyPathInformationUnitTests {
|
||||
@Test // GH-2418
|
||||
void shouldHashCodeCorrectly() {
|
||||
|
||||
PropertyPathInformation information = PropertyPathInformation.of("address.description", User.class);
|
||||
var information = PropertyPathInformation.of("address.description", User.class);
|
||||
|
||||
QuerydslPathInformation querydslPathInformation = QuerydslPathInformation.of(QUser.user.address.description);
|
||||
var querydslPathInformation = QuerydslPathInformation.of(QUser.user.address.description);
|
||||
|
||||
assertThat(information).hasSameHashCodeAs(querydslPathInformation);
|
||||
assertThat(querydslPathInformation).hasSameHashCodeAs(information);
|
||||
|
||||
@@ -60,15 +60,15 @@ class QuerydslBindingsFactoryUnitTests {
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
void createBindingsShouldHonorQuerydslBinderCustomizerHookWhenPresent() {
|
||||
|
||||
Repositories repositories = mock(Repositories.class);
|
||||
var repositories = mock(Repositories.class);
|
||||
|
||||
when(repositories.hasRepositoryFor(User.class)).thenReturn(true);
|
||||
when(repositories.getRepositoryFor(User.class)).thenReturn(Optional.of(new SampleRepo()));
|
||||
|
||||
QuerydslBindingsFactory factory = new QuerydslBindingsFactory(SimpleEntityPathResolver.INSTANCE);
|
||||
var factory = new QuerydslBindingsFactory(SimpleEntityPathResolver.INSTANCE);
|
||||
ReflectionTestUtils.setField(factory, "repositories", Optional.of(repositories));
|
||||
|
||||
QuerydslBindings bindings = factory.createBindingsFor(USER_TYPE);
|
||||
var bindings = factory.createBindingsFor(USER_TYPE);
|
||||
Optional<MultiValueBinding<Path<Object>, Object>> binding = bindings
|
||||
.getBindingForPath(PropertyPathInformation.of("firstname", User.class));
|
||||
|
||||
@@ -82,13 +82,13 @@ class QuerydslBindingsFactoryUnitTests {
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
void shouldReuseExistingQuerydslBinderCustomizer() {
|
||||
|
||||
AutowireCapableBeanFactory beanFactory = mock(AutowireCapableBeanFactory.class);
|
||||
var beanFactory = mock(AutowireCapableBeanFactory.class);
|
||||
when(beanFactory.getBean(SpecificBinding.class)).thenReturn(new SpecificBinding());
|
||||
|
||||
QuerydslBindingsFactory factory = new QuerydslBindingsFactory(SimpleEntityPathResolver.INSTANCE);
|
||||
var factory = new QuerydslBindingsFactory(SimpleEntityPathResolver.INSTANCE);
|
||||
ReflectionTestUtils.setField(factory, "beanFactory", Optional.of(beanFactory));
|
||||
|
||||
QuerydslBindings bindings = factory.createBindingsFor(USER_TYPE, SpecificBinding.class);
|
||||
var bindings = factory.createBindingsFor(USER_TYPE, SpecificBinding.class);
|
||||
Optional<MultiValueBinding<Path<Object>, Object>> binding = bindings
|
||||
.getBindingForPath(PropertyPathInformation.of("firstname", User.class));
|
||||
|
||||
@@ -102,14 +102,14 @@ class QuerydslBindingsFactoryUnitTests {
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
void shouldApplyDefaultCustomizers() {
|
||||
|
||||
GenericApplicationContext context = new GenericApplicationContext();
|
||||
var context = new GenericApplicationContext();
|
||||
context.registerBean(DefaultCustomizer.class);
|
||||
context.refresh();
|
||||
|
||||
QuerydslBindingsFactory factory = new QuerydslBindingsFactory(SimpleEntityPathResolver.INSTANCE);
|
||||
var factory = new QuerydslBindingsFactory(SimpleEntityPathResolver.INSTANCE);
|
||||
factory.setApplicationContext(context);
|
||||
|
||||
QuerydslBindings bindings = factory.createBindingsFor(USER_TYPE, SpecificBinding.class);
|
||||
var bindings = factory.createBindingsFor(USER_TYPE, SpecificBinding.class);
|
||||
Optional<MultiValueBinding<Path<Object>, Object>> binding = bindings
|
||||
.getBindingForPath(PropertyPathInformation.of("inceptionYear", User.class));
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@ class QuerydslBindingsUnitTests {
|
||||
|
||||
bindings.bind(QUser.user.address.city).as("city").first(CONTAINS_BINDING);
|
||||
|
||||
PathInformation path = bindings.getPropertyPath("city", ClassTypeInformation.from(User.class));
|
||||
var path = bindings.getPropertyPath("city", ClassTypeInformation.from(User.class));
|
||||
|
||||
assertThat(path).isNotNull();
|
||||
assertThat(bindings.isPathAvailable("city", User.class)).isTrue();
|
||||
@@ -245,14 +245,14 @@ class QuerydslBindingsUnitTests {
|
||||
bindings.including(QUser.user.address.city);
|
||||
bindings.bind(QUser.user.address.city).as("city").first(CONTAINS_BINDING);
|
||||
|
||||
PathInformation path = bindings.getPropertyPath("city", ClassTypeInformation.from(User.class));
|
||||
var path = bindings.getPropertyPath("city", ClassTypeInformation.from(User.class));
|
||||
|
||||
assertThat(path).isNotNull();
|
||||
assertThat(bindings.isPathAvailable("city", User.class)).isTrue();
|
||||
|
||||
assertThat(bindings.isPathAvailable("address.city", User.class)).isTrue();
|
||||
|
||||
PathInformation propertyPath = bindings.getPropertyPath("address.city", ClassTypeInformation.from(User.class));
|
||||
var propertyPath = bindings.getPropertyPath("address.city", ClassTypeInformation.from(User.class));
|
||||
assertThat(propertyPath).isNotNull();
|
||||
|
||||
assertAdapterWithTargetBinding(bindings.getBindingForPath(propertyPath), CONTAINS_BINDING);
|
||||
@@ -263,7 +263,7 @@ class QuerydslBindingsUnitTests {
|
||||
|
||||
bindings.bind(QUser.user.address.city).as("city").withDefaultBinding();
|
||||
|
||||
PathInformation path = bindings.getPropertyPath("city", ClassTypeInformation.from(User.class));
|
||||
var path = bindings.getPropertyPath("city", ClassTypeInformation.from(User.class));
|
||||
assertThat(path).isNotNull();
|
||||
|
||||
assertThat(bindings.getBindingForPath(path)).isNotPresent();
|
||||
|
||||
@@ -19,13 +19,11 @@ import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.data.querydsl.QUser;
|
||||
|
||||
import com.querydsl.core.types.Predicate;
|
||||
import org.springframework.data.querydsl.QUser;
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
@@ -44,7 +42,7 @@ class QuerydslDefaultBindingUnitTests {
|
||||
@Test // DATACMNS-669
|
||||
void shouldCreatePredicateCorrectlyWhenPropertyIsInRoot() {
|
||||
|
||||
Optional<Predicate> predicate = binding.bind(QUser.user.firstname, Collections.singleton("tam"));
|
||||
var predicate = binding.bind(QUser.user.firstname, Collections.singleton("tam"));
|
||||
|
||||
assertThat(predicate).hasValue(QUser.user.firstname.eq("tam"));
|
||||
}
|
||||
@@ -52,7 +50,7 @@ class QuerydslDefaultBindingUnitTests {
|
||||
@Test // DATACMNS-669
|
||||
void shouldCreatePredicateCorrectlyWhenPropertyIsInNestedElement() {
|
||||
|
||||
Optional<Predicate> predicate = binding.bind(QUser.user.address.city, Collections.singleton("two rivers"));
|
||||
var predicate = binding.bind(QUser.user.address.city, Collections.singleton("two rivers"));
|
||||
|
||||
assertThat(predicate).hasValueSatisfying(
|
||||
it -> assertThat(it.toString()).isEqualTo(QUser.user.address.city.eq("two rivers").toString()));
|
||||
@@ -61,7 +59,7 @@ class QuerydslDefaultBindingUnitTests {
|
||||
@Test // DATACMNS-669
|
||||
void shouldCreatePredicateWithContainingWhenPropertyIsCollectionLikeAndValueIsObject() {
|
||||
|
||||
Optional<Predicate> predicate = binding.bind(QUser.user.nickNames, Collections.singleton("dragon reborn"));
|
||||
var predicate = binding.bind(QUser.user.nickNames, Collections.singleton("dragon reborn"));
|
||||
|
||||
assertThat(predicate).hasValue(QUser.user.nickNames.contains("dragon reborn"));
|
||||
}
|
||||
@@ -69,7 +67,7 @@ class QuerydslDefaultBindingUnitTests {
|
||||
@Test // DATACMNS-669
|
||||
void shouldCreatePredicateWithInWhenPropertyIsAnObjectAndValueIsACollection() {
|
||||
|
||||
Optional<Predicate> predicate = binding.bind(QUser.user.firstname, Arrays.asList("dragon reborn", "shadowkiller"));
|
||||
var predicate = binding.bind(QUser.user.firstname, Arrays.asList("dragon reborn", "shadowkiller"));
|
||||
|
||||
assertThat(predicate).hasValue(QUser.user.firstname.in(Arrays.asList("dragon reborn", "shadowkiller")));
|
||||
}
|
||||
@@ -82,7 +80,7 @@ class QuerydslDefaultBindingUnitTests {
|
||||
@Test // DATACMNS-1578
|
||||
void shouldCreatePredicateWithIsNullWhenPropertyIsANestedObjectAndValueIsNull() {
|
||||
|
||||
Optional<Predicate> predicate = binding.bind(QUser.user.address.city, Collections.singleton(null));
|
||||
var predicate = binding.bind(QUser.user.address.city, Collections.singleton(null));
|
||||
|
||||
assertThat(predicate).hasValueSatisfying(it -> {
|
||||
assertThat(it.toString()).isEqualTo(QUser.user.address.city.isNull().toString());
|
||||
|
||||
@@ -40,7 +40,6 @@ import org.springframework.util.MultiValueMap;
|
||||
|
||||
import com.querydsl.collections.CollQueryFactory;
|
||||
import com.querydsl.core.types.Constant;
|
||||
import com.querydsl.core.types.Predicate;
|
||||
import com.querydsl.core.types.dsl.StringPath;
|
||||
|
||||
/**
|
||||
@@ -90,7 +89,7 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
DEFAULT_BINDINGS.bind(QUser.user.description).first(CONTAINS_BINDING);
|
||||
|
||||
values.add("description", "Linz");
|
||||
Predicate predicate = this.builder.getPredicate(ClassTypeInformation.from(User.class), values, DEFAULT_BINDINGS);
|
||||
var predicate = this.builder.getPredicate(ClassTypeInformation.from(User.class), values, DEFAULT_BINDINGS);
|
||||
|
||||
assertThat(predicate).hasToString("contains(user.description,Linz)");
|
||||
|
||||
@@ -107,11 +106,11 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
|
||||
values.add("firstname", "Oliver");
|
||||
|
||||
Predicate predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
var predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
|
||||
assertThat(predicate).isEqualTo(QUser.user.firstname.eq("Oliver"));
|
||||
|
||||
List<User> result = CollQueryFactory.from(QUser.user, Users.USERS).where(predicate).fetchResults().getResults();
|
||||
var result = CollQueryFactory.from(QUser.user, Users.USERS).where(predicate).fetchResults().getResults();
|
||||
|
||||
assertThat(result).containsExactly(Users.OLIVER);
|
||||
}
|
||||
@@ -124,11 +123,11 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
|
||||
values.add("address.city", "Linz");
|
||||
|
||||
Predicate predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
var predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
|
||||
assertThat(predicate).isEqualTo(QUser.user.address.city.eq("Linz"));
|
||||
|
||||
List<User> result = CollQueryFactory.from(QUser.user, Users.USERS).where(predicate).fetchResults().getResults();
|
||||
var result = CollQueryFactory.from(QUser.user, Users.USERS).where(predicate).fetchResults().getResults();
|
||||
|
||||
assertThat(result).containsExactly(Users.CHRISTOPH);
|
||||
}
|
||||
@@ -139,7 +138,7 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
values.add("firstname", "rand");
|
||||
values.add("lastname".toUpperCase(), "al'thor");
|
||||
|
||||
Predicate predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
var predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
|
||||
assertThat(predicate).isEqualTo(QUser.user.firstname.eq("rand"));
|
||||
}
|
||||
@@ -149,7 +148,7 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
|
||||
values.add("lastname", null);
|
||||
|
||||
QuerydslBindings bindings = new QuerydslBindings();
|
||||
var bindings = new QuerydslBindings();
|
||||
bindings.bind(QUser.user.lastname).firstOptional((path, value) -> value.map(path::contains));
|
||||
|
||||
builder.getPredicate(USER_TYPE, values, bindings);
|
||||
@@ -161,9 +160,9 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
|
||||
values.add("address.lonLat", "40.740337,-73.995146");
|
||||
|
||||
Predicate predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
var predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
|
||||
Constant<Object> constant = (Constant<Object>) ((List<?>) getField(getField(predicate, "mixin"), "args")).get(1);
|
||||
var constant = (Constant<Object>) ((List<?>) getField(getField(predicate, "mixin"), "args")).get(1);
|
||||
|
||||
assertThat(constant.getConstant()).isEqualTo(new Double[] { 40.740337D, -73.995146D });
|
||||
}
|
||||
@@ -174,9 +173,9 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
|
||||
values.add("address.city", "rivers,two");
|
||||
|
||||
Predicate predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
var predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
|
||||
Constant<Object> constant = (Constant<Object>) ((List<?>) getField(getField(predicate, "mixin"), "args")).get(1);
|
||||
var constant = (Constant<Object>) ((List<?>) getField(getField(predicate, "mixin"), "args")).get(1);
|
||||
|
||||
assertThat(constant.getConstant()).isEqualTo("rivers,two");
|
||||
}
|
||||
@@ -186,7 +185,7 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
|
||||
values.add("addresses.street", "VALUE");
|
||||
|
||||
Predicate predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
var predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
|
||||
assertThat(predicate).isEqualTo(QUser.user.addresses.any().street.eq("VALUE"));
|
||||
}
|
||||
@@ -196,7 +195,7 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
|
||||
values.add("specialProperty", "VALUE");
|
||||
|
||||
QuerydslBindings bindings = new QuerydslBindings();
|
||||
var bindings = new QuerydslBindings();
|
||||
bindings.bind(QUser.user.as(QSpecialUser.class).specialProperty)//
|
||||
.first(QuerydslBindingsUnitTests.ContainsBinding.INSTANCE);
|
||||
|
||||
@@ -209,9 +208,9 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
|
||||
values.add("user.specialProperty", "VALUE");
|
||||
|
||||
QUserWrapper wrapper = QUserWrapper.userWrapper;
|
||||
var wrapper = QUserWrapper.userWrapper;
|
||||
|
||||
QuerydslBindings bindings = new QuerydslBindings();
|
||||
var bindings = new QuerydslBindings();
|
||||
bindings.bind(wrapper.user.as(QSpecialUser.class).specialProperty)//
|
||||
.first(QuerydslBindingsUnitTests.ContainsBinding.INSTANCE);
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ class CdiConfigurationIntegrationTests {
|
||||
@Test // DATACMNS-1233
|
||||
void shouldApplyImplementationPostfix() {
|
||||
|
||||
IsolatedComposedRepository repository = container.select(IsolatedComposedRepository.class).get();
|
||||
var repository = container.select(IsolatedComposedRepository.class).get();
|
||||
|
||||
assertThat(repository.getPriority()).isEqualTo(42);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ import jakarta.inject.Named;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
@@ -97,7 +96,7 @@ class CdiRepositoryBeanUnitTests {
|
||||
@Test
|
||||
void returnsBasicMetadata() {
|
||||
|
||||
DummyCdiRepositoryBean<SampleRepository> bean = new DummyCdiRepositoryBean<>(NO_ANNOTATIONS, SampleRepository.class,
|
||||
var bean = new DummyCdiRepositoryBean<SampleRepository>(NO_ANNOTATIONS, SampleRepository.class,
|
||||
beanManager);
|
||||
|
||||
assertThat(bean.getBeanClass()).isEqualTo(SampleRepository.class);
|
||||
@@ -108,10 +107,10 @@ class CdiRepositoryBeanUnitTests {
|
||||
@Test
|
||||
void returnsAllImplementedTypes() {
|
||||
|
||||
DummyCdiRepositoryBean<SampleRepository> bean = new DummyCdiRepositoryBean<>(NO_ANNOTATIONS, SampleRepository.class,
|
||||
var bean = new DummyCdiRepositoryBean<SampleRepository>(NO_ANNOTATIONS, SampleRepository.class,
|
||||
beanManager);
|
||||
|
||||
Set<Type> types = bean.getTypes();
|
||||
var types = bean.getTypes();
|
||||
assertThat(types).containsExactlyInAnyOrder(SampleRepository.class, Repository.class);
|
||||
}
|
||||
|
||||
@@ -119,7 +118,7 @@ class CdiRepositoryBeanUnitTests {
|
||||
@SuppressWarnings("unchecked")
|
||||
void detectsStereotypes() {
|
||||
|
||||
DummyCdiRepositoryBean<StereotypedSampleRepository> bean = new DummyCdiRepositoryBean<>(NO_ANNOTATIONS,
|
||||
var bean = new DummyCdiRepositoryBean<StereotypedSampleRepository>(NO_ANNOTATIONS,
|
||||
StereotypedSampleRepository.class, beanManager);
|
||||
|
||||
assertThat(bean.getStereotypes()).containsExactly(StereotypeAnnotation.class);
|
||||
@@ -146,9 +145,9 @@ class CdiRepositoryBeanUnitTests {
|
||||
@Test // DATACMNS-764, DATACMNS-1754
|
||||
void passesCorrectBeanNameToTheImplementationDetector() {
|
||||
|
||||
CustomRepositoryImplementationDetector detector = mock(CustomRepositoryImplementationDetector.class);
|
||||
var detector = mock(CustomRepositoryImplementationDetector.class);
|
||||
|
||||
CdiRepositoryBean<SampleRepository> bean = new CdiRepositoryBean<SampleRepository>(SINGLE_ANNOTATION,
|
||||
var bean = new CdiRepositoryBean<SampleRepository>(SINGLE_ANNOTATION,
|
||||
SampleRepository.class, beanManager, Optional.of(detector)) {
|
||||
|
||||
@Override
|
||||
@@ -160,12 +159,12 @@ class CdiRepositoryBeanUnitTests {
|
||||
|
||||
bean.create(mock(CreationalContext.class), SampleRepository.class);
|
||||
|
||||
ArgumentCaptor<ImplementationLookupConfiguration> captor = ArgumentCaptor
|
||||
var captor = ArgumentCaptor
|
||||
.forClass(ImplementationLookupConfiguration.class);
|
||||
|
||||
verify(detector, times(2)).detectCustomImplementation(captor.capture());
|
||||
|
||||
ImplementationLookupConfiguration configuration = captor.getAllValues().get(0);
|
||||
var configuration = captor.getAllValues().get(0);
|
||||
|
||||
assertThat(configuration.getImplementationBeanName()).isEqualTo("cdiRepositoryBeanUnitTests.SampleRepositoryImpl");
|
||||
assertThat(configuration.getImplementationClassName()).isEqualTo("SampleRepositoryImpl");
|
||||
@@ -174,7 +173,7 @@ class CdiRepositoryBeanUnitTests {
|
||||
@Test // DATACMNS-1233
|
||||
void appliesRepositoryConfiguration() {
|
||||
|
||||
DummyCdiRepositoryBean<SampleRepository> bean = new DummyCdiRepositoryBean<SampleRepository>(NO_ANNOTATIONS,
|
||||
var bean = new DummyCdiRepositoryBean<SampleRepository>(NO_ANNOTATIONS,
|
||||
SampleRepository.class, beanManager) {
|
||||
@Override
|
||||
protected CdiRepositoryConfiguration lookupConfiguration(BeanManager beanManager, Set qualifiers) {
|
||||
|
||||
@@ -31,7 +31,7 @@ abstract class CdiRepositoryExtensionSupportIntegrationTests {
|
||||
|
||||
assertThat(getBean(SampleRepository.class)).isNotNull();
|
||||
|
||||
RepositoryClient client = getBean(RepositoryClient.class);
|
||||
var client = getBean(RepositoryClient.class);
|
||||
assertThat(client.repository).isNotNull();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ abstract class CdiRepositoryExtensionSupportIntegrationTests {
|
||||
|
||||
assertThat(getBean(AnotherRepository.class)).isNotNull();
|
||||
|
||||
RepositoryClient client = getBean(RepositoryClient.class);
|
||||
var client = getBean(RepositoryClient.class);
|
||||
assertThat(client.anotherRepository).isNotNull();
|
||||
|
||||
// this will always return 0 since it's a mock
|
||||
|
||||
@@ -25,7 +25,6 @@ import java.lang.annotation.Annotation;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -49,9 +48,9 @@ public class DummyCdiExtension extends CdiRepositoryExtensionSupport {
|
||||
|
||||
afterBeanDiscovery.addContext(new MyCustomScope());
|
||||
|
||||
for (Entry<Class<?>, Set<Annotation>> type : getRepositoryTypes()) {
|
||||
for (var type : getRepositoryTypes()) {
|
||||
|
||||
DummyCdiRepositoryBean bean = new DummyCdiRepositoryBean(type.getValue(), type.getKey(), beanManager,
|
||||
var bean = new DummyCdiRepositoryBean(type.getValue(), type.getKey(), beanManager,
|
||||
Optional.of(getCustomImplementationDetector()));
|
||||
registerBean(bean);
|
||||
afterBeanDiscovery.addBean(bean);
|
||||
@@ -76,7 +75,7 @@ public class DummyCdiExtension extends CdiRepositoryExtensionSupport {
|
||||
@Override
|
||||
protected T create(CreationalContext<T> creationalContext, Class<T> repositoryType) {
|
||||
|
||||
T mock = Mockito.mock(repositoryType);
|
||||
var mock = Mockito.mock(repositoryType);
|
||||
|
||||
return create(() -> new DummyRepositoryFactory(mock), repositoryType);
|
||||
}
|
||||
|
||||
@@ -50,9 +50,9 @@ class RepositoryFragmentsIntegrationTests {
|
||||
@Test // DATACMNS-1233
|
||||
void shouldInvokeCustomImplementationLast() {
|
||||
|
||||
ComposedRepository repository = getBean(ComposedRepository.class);
|
||||
ComposedRepositoryImpl customImplementation = getBean(ComposedRepositoryImpl.class);
|
||||
AnotherFragmentInterfaceImpl shadowed = getBean(AnotherFragmentInterfaceImpl.class);
|
||||
var repository = getBean(ComposedRepository.class);
|
||||
var customImplementation = getBean(ComposedRepositoryImpl.class);
|
||||
var shadowed = getBean(AnotherFragmentInterfaceImpl.class);
|
||||
|
||||
assertThat(repository.getShadowed()).isEqualTo(2);
|
||||
assertThat(customImplementation.getShadowed()).isEqualTo(1);
|
||||
@@ -62,9 +62,9 @@ class RepositoryFragmentsIntegrationTests {
|
||||
@Test // DATACMNS-1233
|
||||
void shouldRespectInterfaceOrder() {
|
||||
|
||||
ComposedRepository repository = getBean(ComposedRepository.class);
|
||||
FragmentInterfaceImpl fragment = getBean(FragmentInterfaceImpl.class);
|
||||
AnotherFragmentInterfaceImpl shadowed = getBean(AnotherFragmentInterfaceImpl.class);
|
||||
var repository = getBean(ComposedRepository.class);
|
||||
var fragment = getBean(FragmentInterfaceImpl.class);
|
||||
var shadowed = getBean(AnotherFragmentInterfaceImpl.class);
|
||||
|
||||
assertThat(repository.getPriority()).isEqualTo(1);
|
||||
assertThat(fragment.getPriority()).isEqualTo(1);
|
||||
@@ -74,7 +74,7 @@ class RepositoryFragmentsIntegrationTests {
|
||||
@Test // DATACMNS-1754
|
||||
void shouldFindCustomImplementationForNestedRepository() {
|
||||
|
||||
NestedRepository repository = getBean(NestedRepository.class);
|
||||
var repository = getBean(NestedRepository.class);
|
||||
|
||||
assertThat(repository.getCustom()).isEqualTo("CustomImpl");
|
||||
}
|
||||
@@ -82,8 +82,8 @@ class RepositoryFragmentsIntegrationTests {
|
||||
@Test // DATACMNS-1754
|
||||
void shouldFindImplementationForNestedRepositoryFragment() {
|
||||
|
||||
ComposedRepository repository = getBean(ComposedRepository.class);
|
||||
RepositoryFragments.NestedFragmentInterfaceImpl fragment = getBean(
|
||||
var repository = getBean(ComposedRepository.class);
|
||||
var fragment = getBean(
|
||||
RepositoryFragments.NestedFragmentInterfaceImpl.class);
|
||||
|
||||
assertThat(repository.getKey()).isEqualTo("NestedFragmentImpl");
|
||||
|
||||
@@ -23,7 +23,7 @@ import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.context.annotation.ComponentScan.Filter;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
@@ -34,7 +34,6 @@ import org.springframework.core.io.ResourceLoader;
|
||||
import org.springframework.core.type.AnnotationMetadata;
|
||||
import org.springframework.core.type.StandardAnnotationMetadata;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.util.Streamable;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link AnnotationRepositoryConfigurationSource}.
|
||||
@@ -72,7 +71,7 @@ class AnnotationRepositoryConfigurationSourceUnitTests {
|
||||
@Test // DATACMNS-47, DATACMNS-102
|
||||
void evaluatesExcludeFiltersCorrectly() {
|
||||
|
||||
Streamable<BeanDefinition> candidates = source.getCandidates(new DefaultResourceLoader());
|
||||
var candidates = source.getCandidates(new DefaultResourceLoader());
|
||||
|
||||
assertThat(candidates).extracting("beanClassName")
|
||||
.contains(MyRepository.class.getName(), ComposedRepository.class.getName())
|
||||
@@ -82,7 +81,7 @@ class AnnotationRepositoryConfigurationSourceUnitTests {
|
||||
@Test // DATACMNS-47
|
||||
void defaultsToPackageOfAnnotatedClass() {
|
||||
|
||||
AnnotationRepositoryConfigurationSource source = getConfigSource(DefaultConfiguration.class);
|
||||
var source = getConfigSource(DefaultConfiguration.class);
|
||||
Iterable<String> packages = source.getBasePackages();
|
||||
|
||||
assertThat(packages).contains(DefaultConfiguration.class.getPackage().getName());
|
||||
@@ -92,7 +91,7 @@ class AnnotationRepositoryConfigurationSourceUnitTests {
|
||||
@Test // DATACMNS-47
|
||||
void returnsConfiguredBasePackage() {
|
||||
|
||||
AnnotationRepositoryConfigurationSource source = getConfigSource(DefaultConfigurationWithBasePackage.class);
|
||||
var source = getConfigSource(DefaultConfigurationWithBasePackage.class);
|
||||
|
||||
assertThat(source.getBasePackages()).contains("foo");
|
||||
}
|
||||
@@ -100,7 +99,7 @@ class AnnotationRepositoryConfigurationSourceUnitTests {
|
||||
@Test // DATACMNS-90
|
||||
void returnsConsiderNestedRepositories() {
|
||||
|
||||
AnnotationRepositoryConfigurationSource source = getConfigSource(DefaultConfigurationWithNestedRepositories.class);
|
||||
var source = getConfigSource(DefaultConfigurationWithNestedRepositories.class);
|
||||
assertThat(source.shouldConsiderNestedRepositories()).isTrue();
|
||||
}
|
||||
|
||||
@@ -114,7 +113,7 @@ class AnnotationRepositoryConfigurationSourceUnitTests {
|
||||
@Test // DATACMNS-502
|
||||
void returnsEmptyStringForBasePackage() throws Exception {
|
||||
|
||||
StandardAnnotationMetadata metadata = new StandardAnnotationMetadata(
|
||||
var metadata = new StandardAnnotationMetadata(
|
||||
getClass().getClassLoader().loadClass("TypeInDefaultPackage"), true);
|
||||
RepositoryConfigurationSource configurationSource = new AnnotationRepositoryConfigurationSource(metadata,
|
||||
EnableRepositories.class, resourceLoader, environment, registry);
|
||||
|
||||
@@ -19,12 +19,10 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Answers;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.support.AbstractBeanDefinition;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.core.io.DefaultResourceLoader;
|
||||
import org.springframework.core.io.ResourceLoader;
|
||||
@@ -60,12 +58,12 @@ class CustomRepositoryImplementationDetectorUnitTests {
|
||||
@Test // DATACMNS-764, DATACMNS-1371
|
||||
void returnsNullWhenNoImplementationFound() {
|
||||
|
||||
RepositoryConfiguration mock = mock(RepositoryConfiguration.class);
|
||||
var mock = mock(RepositoryConfiguration.class);
|
||||
|
||||
ImplementationLookupConfiguration lookup = configuration
|
||||
var lookup = configuration
|
||||
.forRepositoryConfiguration(configFor(NoImplementationRepository.class));
|
||||
|
||||
Optional<AbstractBeanDefinition> beanDefinition = detector.detectCustomImplementation(lookup);
|
||||
var beanDefinition = detector.detectCustomImplementation(lookup);
|
||||
|
||||
assertThat(beanDefinition).isEmpty();
|
||||
}
|
||||
@@ -73,10 +71,10 @@ class CustomRepositoryImplementationDetectorUnitTests {
|
||||
@Test // DATACMNS-764, DATACMNS-1371
|
||||
void returnsBeanDefinitionWhenOneImplementationIsFound() {
|
||||
|
||||
ImplementationLookupConfiguration lookup = configuration
|
||||
var lookup = configuration
|
||||
.forRepositoryConfiguration(configFor(SingleSampleRepository.class));
|
||||
|
||||
Optional<AbstractBeanDefinition> beanDefinition = detector.detectCustomImplementation(lookup);
|
||||
var beanDefinition = detector.detectCustomImplementation(lookup);
|
||||
|
||||
assertThat(beanDefinition).hasValueSatisfying(
|
||||
it -> assertThat(it.getBeanClassName()).isEqualTo(SingleSampleRepositoryTestImpl.class.getName()));
|
||||
@@ -88,12 +86,12 @@ class CustomRepositoryImplementationDetectorUnitTests {
|
||||
when(configuration.generateBeanName(any())).then(it -> {
|
||||
|
||||
BeanDefinition definition = it.getArgument(0);
|
||||
String className = definition.getBeanClassName();
|
||||
var className = definition.getBeanClassName();
|
||||
|
||||
return className.contains("$First$") ? "canonicalSampleRepositoryTestImpl" : "otherBeanName";
|
||||
});
|
||||
|
||||
ImplementationLookupConfiguration lookup = configuration
|
||||
var lookup = configuration
|
||||
.forRepositoryConfiguration(configFor(CanonicalSampleRepository.class));
|
||||
|
||||
assertThat(detector.detectCustomImplementation(lookup)) //
|
||||
@@ -106,7 +104,7 @@ class CustomRepositoryImplementationDetectorUnitTests {
|
||||
|
||||
assertThatIllegalStateException().isThrownBy(() -> {
|
||||
|
||||
ImplementationLookupConfiguration lookup = mock(ImplementationLookupConfiguration.class);
|
||||
var lookup = mock(ImplementationLookupConfiguration.class);
|
||||
|
||||
when(lookup.hasMatchingBeanName(any())).thenReturn(true);
|
||||
when(lookup.matches(any())).thenReturn(true);
|
||||
|
||||
@@ -31,7 +31,7 @@ class DefaultImplementationLookupConfigurationUnitTests {
|
||||
@Test // DATACMNS-1439
|
||||
void shouldConsiderBeanNameDecapitalization() {
|
||||
|
||||
ImplementationDetectionConfiguration idcMock = mock(ImplementationDetectionConfiguration.class);
|
||||
var idcMock = mock(ImplementationDetectionConfiguration.class);
|
||||
when(idcMock.getImplementationPostfix()).thenReturn("Impl");
|
||||
|
||||
assertThat(getImplementationBeanName(idcMock, "com.acme.UDPRepository")).isEqualTo("UDPRepositoryImpl");
|
||||
@@ -41,10 +41,10 @@ class DefaultImplementationLookupConfigurationUnitTests {
|
||||
@Test // DATACMNS-1754
|
||||
void shouldUseSimpleClassNameWhenDefiningImplementationNames() {
|
||||
|
||||
ImplementationDetectionConfiguration idcMock = mock(ImplementationDetectionConfiguration.class);
|
||||
var idcMock = mock(ImplementationDetectionConfiguration.class);
|
||||
when(idcMock.getImplementationPostfix()).thenReturn("Impl");
|
||||
|
||||
DefaultImplementationLookupConfiguration lookupConfiguration = new DefaultImplementationLookupConfiguration(idcMock,
|
||||
var lookupConfiguration = new DefaultImplementationLookupConfiguration(idcMock,
|
||||
"com.acme.Repositories$NestedRepository");
|
||||
assertThat(lookupConfiguration.getImplementationBeanName()).isEqualTo("repositories.NestedRepositoryImpl");
|
||||
assertThat(lookupConfiguration.getImplementationClassName()).isEqualTo("NestedRepositoryImpl");
|
||||
@@ -52,7 +52,7 @@ class DefaultImplementationLookupConfigurationUnitTests {
|
||||
|
||||
private static String getImplementationBeanName(ImplementationDetectionConfiguration idcMock, String interfaceName) {
|
||||
|
||||
DefaultImplementationLookupConfiguration configuration = new DefaultImplementationLookupConfiguration(idcMock,
|
||||
var configuration = new DefaultImplementationLookupConfiguration(idcMock,
|
||||
interfaceName);
|
||||
return configuration.getImplementationBeanName();
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ class DefaultRepositoryConfigurationUnitTests {
|
||||
|
||||
private DefaultRepositoryConfiguration<RepositoryConfigurationSource> getConfiguration(
|
||||
RepositoryConfigurationSource source, String repositoryInterfaceName) {
|
||||
RootBeanDefinition beanDefinition = createBeanDefinition(repositoryInterfaceName);
|
||||
var beanDefinition = createBeanDefinition(repositoryInterfaceName);
|
||||
return new DefaultRepositoryConfiguration<>(source, beanDefinition, extension);
|
||||
}
|
||||
|
||||
@@ -98,9 +98,9 @@ class DefaultRepositoryConfigurationUnitTests {
|
||||
|
||||
private static RootBeanDefinition createBeanDefinition(String repositoryInterfaceName) {
|
||||
|
||||
RootBeanDefinition beanDefinition = new RootBeanDefinition(repositoryInterfaceName);
|
||||
var beanDefinition = new RootBeanDefinition(repositoryInterfaceName);
|
||||
|
||||
ConstructorArgumentValues constructorArgumentValues = new ConstructorArgumentValues();
|
||||
var constructorArgumentValues = new ConstructorArgumentValues();
|
||||
constructorArgumentValues.addGenericArgumentValue(MyRepository.class);
|
||||
beanDefinition.setConstructorArgumentValues(constructorArgumentValues);
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ class ImplementationDetectionConfigurationUnitTests {
|
||||
|
||||
private static String getBeanName(String className) {
|
||||
|
||||
MockImplementationDetectionConfiguration configuration = new MockImplementationDetectionConfiguration();
|
||||
var configuration = new MockImplementationDetectionConfiguration();
|
||||
|
||||
return configuration.generateBeanName(BeanDefinitionBuilder.rootBeanDefinition(className).getBeanDefinition());
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ class PrimaryRepositoryIntegrationTests {
|
||||
@Test // DATACMNS-1591
|
||||
void returnsPrimaryInstance() {
|
||||
|
||||
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
|
||||
var context = new AnnotationConfigApplicationContext(Config.class);
|
||||
|
||||
// Two beans available but FirstRepository is the primary one
|
||||
assertThatCode(() -> context.getBean(FirstRepository.class)).doesNotThrowAnyException();
|
||||
|
||||
@@ -21,7 +21,6 @@ import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -80,7 +79,7 @@ class RepositoryBeanDefinitionRegistrarSupportIntegrationTests {
|
||||
@Test // DATACMNS-47
|
||||
void beanDefinitionSourceIsSetForJavaConfigScannedBeans() {
|
||||
|
||||
BeanDefinition definition = context.getBeanDefinition("myRepository");
|
||||
var definition = context.getBeanDefinition("myRepository");
|
||||
assertThat(definition.getSource()).isNotNull();
|
||||
}
|
||||
|
||||
@@ -97,7 +96,7 @@ class RepositoryBeanDefinitionRegistrarSupportIntegrationTests {
|
||||
@Test // DATACMNS-1620
|
||||
void registeredBeanDefinitionsContainHumanReadableResourceDescription() {
|
||||
|
||||
BeanDefinition definition = context.getBeanDefinition("myRepository");
|
||||
var definition = context.getBeanDefinition("myRepository");
|
||||
|
||||
assertThat(definition.getResourceDescription()) //
|
||||
.contains(MyRepository.class.getName()) //
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user