Date: Sat, 22 Oct 2022 22:15:40 +0300
Subject: [PATCH 2/3] i-2695: Simplify PreferredConstructorDiscovererUnitTests
---
...eferredConstructorDiscovererUnitTests.java | 141 ++++++++++--------
1 file changed, 76 insertions(+), 65 deletions(-)
diff --git a/src/test/java/org/springframework/data/mapping/PreferredConstructorDiscovererUnitTests.java b/src/test/java/org/springframework/data/mapping/PreferredConstructorDiscovererUnitTests.java
index d5f4b8bfa7..d9b79509f7 100755
--- a/src/test/java/org/springframework/data/mapping/PreferredConstructorDiscovererUnitTests.java
+++ b/src/test/java/org/springframework/data/mapping/PreferredConstructorDiscovererUnitTests.java
@@ -25,7 +25,6 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.annotation.PersistenceConstructor;
import org.springframework.data.annotation.PersistenceCreator;
import org.springframework.data.mapping.PreferredConstructorDiscovererUnitTests.Outer.Inner;
import org.springframework.data.mapping.model.BasicPersistentEntity;
@@ -39,56 +38,58 @@
* @author Roman Rodov
* @author Mark Paluch
* @author Christoph Strobl
+ * @author Pavel Anisimov
*/
class PreferredConstructorDiscovererUnitTests> {
@Test // DATACMNS-1126
void findsNoArgConstructorForClassWithoutExplicitConstructor() {
- assertThat(PreferredConstructorDiscoverer.discover(EntityWithoutConstructor.class)).satisfies(constructor -> {
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(EntityWithoutConstructor.class);
- assertThat(constructor).isNotNull();
- assertThat(constructor.isNoArgConstructor()).isTrue();
- assertThat(constructor.isExplicitlyAnnotated()).isFalse();
- });
+ assertThat(constructor).isNotNull();
+ assertThat(constructor.isNoArgConstructor()).isTrue();
+ assertThat(constructor.isExplicitlyAnnotated()).isFalse();
}
@Test // DATACMNS-1126
void findsNoArgConstructorForClassWithMultipleConstructorsAndNoArgOne() {
- assertThat(PreferredConstructorDiscoverer.discover(ClassWithEmptyConstructor.class)).satisfies(constructor -> {
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(ClassWithEmptyConstructor.class);
- assertThat(constructor).isNotNull();
- assertThat(constructor.isNoArgConstructor()).isTrue();
- assertThat(constructor.isExplicitlyAnnotated()).isFalse();
- });
+ assertThat(constructor).isNotNull();
+ assertThat(constructor.isNoArgConstructor()).isTrue();
+ assertThat(constructor.isExplicitlyAnnotated()).isFalse();
}
@Test // DATACMNS-1126
void doesNotThrowExceptionForMultipleConstructorsAndNoNoArgConstructorWithoutAnnotation() {
- assertThat(PreferredConstructorDiscoverer.discover(ClassWithMultipleConstructorsWithoutEmptyOne.class)).isNull();
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(ClassWithMultipleConstructorsWithoutEmptyOne.class);
+
+ assertThat(constructor).isNull();
}
@Test // DATACMNS-1126
- @SuppressWarnings({ "unchecked", "rawtypes" })
void usesConstructorWithAnnotationOverEveryOther() {
- assertThat(PreferredConstructorDiscoverer.discover(ClassWithMultipleConstructorsAndAnnotation.class))
- .satisfies(constructor -> {
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(ClassWithMultipleConstructorsAndAnnotation.class);
- assertThat(constructor).isNotNull();
- assertThat(constructor.isNoArgConstructor()).isFalse();
- assertThat(constructor.isExplicitlyAnnotated()).isTrue();
+ assertThat(constructor).isNotNull();
+ assertThat(constructor.isNoArgConstructor()).isFalse();
+ assertThat(constructor.isExplicitlyAnnotated()).isTrue();
- assertThat(constructor.hasParameters()).isTrue();
+ assertThat(constructor.hasParameters()).isTrue();
- Iterator> parameters = (Iterator) constructor.getParameters().iterator();
+ Iterator> parameters = constructor.getParameters().iterator();
- Parameter, P> parameter = parameters.next();
- assertThat(parameter.getType().getType()).isEqualTo(Long.class);
- assertThat(parameters.hasNext()).isFalse();
- });
+ Parameter, P> parameter = parameters.next();
+ assertThat(parameter.getType().getType()).isEqualTo(Long.class);
+ assertThat(parameters.hasNext()).isFalse();
}
@Test // DATACMNS-134, DATACMNS-1126
@@ -96,11 +97,12 @@ void discoversInnerClassConstructorCorrectly() {
PersistentEntity entity = new BasicPersistentEntity<>(TypeInformation.of(Inner.class));
- assertThat(PreferredConstructorDiscoverer.discover(entity)).satisfies(constructor -> {
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(entity);
+ assertThat(constructor).isNotNull();
- Parameter, P> parameter = constructor.getParameters().iterator().next();
- assertThat(constructor.isParentParameter(parameter)).isTrue();
- });
+ Parameter, P> parameter = constructor.getParameters().iterator().next();
+ assertThat(constructor.isParentParameter(parameter)).isTrue();
}
@Test // DATACMNS-1082, DATACMNS-1126
@@ -109,77 +111,86 @@ void skipsSyntheticConstructor() {
PersistentEntity entity = new BasicPersistentEntity<>(
TypeInformation.of(SyntheticConstructor.class));
- assertThat(PreferredConstructorDiscoverer.discover(entity)).satisfies(constructor -> {
+ PreferredConstructor constructor = PreferredConstructorDiscoverer.discover(entity);
+ assertThat(constructor).isNotNull();
- var annotation = constructor.getConstructor().getAnnotation(PersistenceConstructor.class);
- assertThat(annotation).isNotNull();
- assertThat(constructor.getConstructor().isSynthetic()).isFalse();
- });
+ var annotation = constructor.getConstructor().getAnnotation(PersistenceCreator.class);
+ assertThat(annotation).isNotNull();
+ assertThat(constructor.getConstructor().isSynthetic()).isFalse();
}
@Test // GH-2313
void capturesEnclosingTypeParameterOfNonStaticInnerClass() {
- assertThat(PreferredConstructorDiscoverer.discover(NonStaticWithGenericTypeArgUsedInCtor.class)).satisfies(ctor -> {
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(NonStaticWithGenericTypeArgUsedInCtor.class);
- assertThat(ctor.getParameters()).hasSize(2);
- assertThat(ctor.getParameters().get(0).getName()).isEqualTo("this$0");
- assertThat(ctor.getParameters().get(1).getName()).isEqualTo("value");
- });
+ assertThat(constructor).isNotNull();
+ assertThat(constructor.getParameters()).hasSize(2);
+ assertThat(constructor.getParameters().get(0).getName()).isEqualTo("this$0");
+ assertThat(constructor.getParameters().get(1).getName()).isEqualTo("value");
}
@Test // GH-2313
void capturesSuperClassEnclosingTypeParameterOfNonStaticInnerClass() {
- assertThat(PreferredConstructorDiscoverer.discover(NonStaticInnerWithGenericArgUsedInCtor.class))
- .satisfies(ctor -> {
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(NonStaticInnerWithGenericArgUsedInCtor.class);
- assertThat(ctor.getParameters()).hasSize(2);
- assertThat(ctor.getParameters().get(0).getName()).isEqualTo("this$0");
- assertThat(ctor.getParameters().get(1).getName()).isEqualTo("value");
- });
+ assertThat(constructor).isNotNull();
+ assertThat(constructor.getParameters()).hasSize(2);
+ assertThat(constructor.getParameters().get(0).getName()).isEqualTo("this$0");
+ assertThat(constructor.getParameters().get(1).getName()).isEqualTo("value");
}
@Test // GH-2332
void detectsMetaAnnotatedValueAnnotation() {
- assertThat(PreferredConstructorDiscoverer.discover(ClassWithMetaAnnotatedParameter.class)).satisfies(ctor -> {
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(ClassWithMetaAnnotatedParameter.class);
- assertThat(ctor.getParameters().get(0).getSpelExpression()).isEqualTo("${hello-world}");
- assertThat(ctor.getParameters().get(0).getAnnotations()).isNotNull();
- });
+ assertThat(constructor).isNotNull();
+ assertThat(constructor.getParameters().get(0).getSpelExpression()).isEqualTo("${hello-world}");
+ assertThat(constructor.getParameters().get(0).getAnnotations()).isNotNull();
}
@Test // GH-2332
- void detectsCanonicalRecordConstructor() {
+ void detectsCanonicalRecordConstructorWhenRecordHasSingleArgConstructor() {
+
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(RecordWithSingleArgConstructor.class);
- assertThat(PreferredConstructorDiscoverer.discover(RecordWithSingleArgConstructor.class)).satisfies(ctor -> {
+ assertThat(constructor).isNotNull();
+ assertThat(constructor.getParameters()).hasSize(2);
+ assertThat(constructor.getParameters().get(0).getRawType()).isEqualTo(Long.class);
+ assertThat(constructor.getParameters().get(1).getRawType()).isEqualTo(String.class);
+ }
- assertThat(ctor.getParameters()).hasSize(2);
- assertThat(ctor.getParameters().get(0).getRawType()).isEqualTo(Long.class);
- assertThat(ctor.getParameters().get(1).getRawType()).isEqualTo(String.class);
- });
+ @Test // GH-2332
+ void detectsCanonicalRecordConstructorWhenRecordHasNoArgConstructor() {
- assertThat(PreferredConstructorDiscoverer.discover(RecordWithNoArgConstructor.class)).satisfies(ctor -> {
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(RecordWithNoArgConstructor.class);
- assertThat(ctor.getParameters()).hasSize(2);
- assertThat(ctor.getParameters().get(0).getRawType()).isEqualTo(Long.class);
- assertThat(ctor.getParameters().get(1).getRawType()).isEqualTo(String.class);
- });
+ assertThat(constructor).isNotNull();
+ assertThat(constructor.getParameters()).hasSize(2);
+ assertThat(constructor.getParameters().get(0).getRawType()).isEqualTo(Long.class);
+ assertThat(constructor.getParameters().get(1).getRawType()).isEqualTo(String.class);
}
@Test // GH-2332
void detectsAnnotatedRecordConstructor() {
- assertThat(PreferredConstructorDiscoverer.discover(RecordWithPersistenceCreator.class)).satisfies(ctor -> {
+ PreferredConstructor constructor =
+ PreferredConstructorDiscoverer.discover(RecordWithPersistenceCreator.class);
- assertThat(ctor.getParameters()).hasSize(1);
- assertThat(ctor.getParameters().get(0).getRawType()).isEqualTo(String.class);
- });
+ assertThat(constructor).isNotNull();
+ assertThat(constructor.getParameters()).hasSize(1);
+ assertThat(constructor.getParameters().get(0).getRawType()).isEqualTo(String.class);
}
static class SyntheticConstructor {
- @PersistenceConstructor
+ @PersistenceCreator
private SyntheticConstructor(String x) {}
class InnerSynthetic {
@@ -220,7 +231,7 @@ public ClassWithMultipleConstructorsAndAnnotation() {}
public ClassWithMultipleConstructorsAndAnnotation(String value) {}
- @PersistenceConstructor
+ @PersistenceCreator
public ClassWithMultipleConstructorsAndAnnotation(Long value) {}
}
From 8dcf9558c1676b82de04500688f85914542d384f Mon Sep 17 00:00:00 2001
From: "p.anisimov"
Date: Sat, 22 Oct 2022 22:20:53 +0300
Subject: [PATCH 3/3] i-2695: Make use of var keyword in
PreferredConstructorDiscovererUnitTests
---
...eferredConstructorDiscovererUnitTests.java | 33 +++++++------------
1 file changed, 12 insertions(+), 21 deletions(-)
diff --git a/src/test/java/org/springframework/data/mapping/PreferredConstructorDiscovererUnitTests.java b/src/test/java/org/springframework/data/mapping/PreferredConstructorDiscovererUnitTests.java
index d9b79509f7..a8c09b819f 100755
--- a/src/test/java/org/springframework/data/mapping/PreferredConstructorDiscovererUnitTests.java
+++ b/src/test/java/org/springframework/data/mapping/PreferredConstructorDiscovererUnitTests.java
@@ -45,8 +45,7 @@ class PreferredConstructorDiscovererUnitTests> {
@Test // DATACMNS-1126
void findsNoArgConstructorForClassWithoutExplicitConstructor() {
- PreferredConstructor constructor =
- PreferredConstructorDiscoverer.discover(EntityWithoutConstructor.class);
+ var constructor = PreferredConstructorDiscoverer.discover(EntityWithoutConstructor.class);
assertThat(constructor).isNotNull();
assertThat(constructor.isNoArgConstructor()).isTrue();
@@ -56,8 +55,7 @@ void findsNoArgConstructorForClassWithoutExplicitConstructor() {
@Test // DATACMNS-1126
void findsNoArgConstructorForClassWithMultipleConstructorsAndNoArgOne() {
- PreferredConstructor constructor =
- PreferredConstructorDiscoverer.discover(ClassWithEmptyConstructor.class);
+ var constructor = PreferredConstructorDiscoverer.discover(ClassWithEmptyConstructor.class);
assertThat(constructor).isNotNull();
assertThat(constructor.isNoArgConstructor()).isTrue();
@@ -67,8 +65,7 @@ void findsNoArgConstructorForClassWithMultipleConstructorsAndNoArgOne() {
@Test // DATACMNS-1126
void doesNotThrowExceptionForMultipleConstructorsAndNoNoArgConstructorWithoutAnnotation() {
- PreferredConstructor constructor =
- PreferredConstructorDiscoverer.discover(ClassWithMultipleConstructorsWithoutEmptyOne.class);
+ var constructor = PreferredConstructorDiscoverer.discover(ClassWithMultipleConstructorsWithoutEmptyOne.class);
assertThat(constructor).isNull();
}
@@ -97,8 +94,8 @@ void discoversInnerClassConstructorCorrectly() {
PersistentEntity entity = new BasicPersistentEntity<>(TypeInformation.of(Inner.class));
- PreferredConstructor constructor =
- PreferredConstructorDiscoverer.discover(entity);
+ var constructor = PreferredConstructorDiscoverer.discover(entity);
+
assertThat(constructor).isNotNull();
Parameter, P> parameter = constructor.getParameters().iterator().next();
@@ -111,7 +108,7 @@ void skipsSyntheticConstructor() {
PersistentEntity entity = new BasicPersistentEntity<>(
TypeInformation.of(SyntheticConstructor.class));
- PreferredConstructor constructor = PreferredConstructorDiscoverer.discover(entity);
+ var constructor = PreferredConstructorDiscoverer.discover(entity);
assertThat(constructor).isNotNull();
var annotation = constructor.getConstructor().getAnnotation(PersistenceCreator.class);
@@ -122,8 +119,7 @@ void skipsSyntheticConstructor() {
@Test // GH-2313
void capturesEnclosingTypeParameterOfNonStaticInnerClass() {
- PreferredConstructor constructor =
- PreferredConstructorDiscoverer.discover(NonStaticWithGenericTypeArgUsedInCtor.class);
+ var constructor = PreferredConstructorDiscoverer.discover(NonStaticWithGenericTypeArgUsedInCtor.class);
assertThat(constructor).isNotNull();
assertThat(constructor.getParameters()).hasSize(2);
@@ -134,8 +130,7 @@ void capturesEnclosingTypeParameterOfNonStaticInnerClass() {
@Test // GH-2313
void capturesSuperClassEnclosingTypeParameterOfNonStaticInnerClass() {
- PreferredConstructor constructor =
- PreferredConstructorDiscoverer.discover(NonStaticInnerWithGenericArgUsedInCtor.class);
+ var constructor = PreferredConstructorDiscoverer.discover(NonStaticInnerWithGenericArgUsedInCtor.class);
assertThat(constructor).isNotNull();
assertThat(constructor.getParameters()).hasSize(2);
@@ -146,8 +141,7 @@ void capturesSuperClassEnclosingTypeParameterOfNonStaticInnerClass() {
@Test // GH-2332
void detectsMetaAnnotatedValueAnnotation() {
- PreferredConstructor constructor =
- PreferredConstructorDiscoverer.discover(ClassWithMetaAnnotatedParameter.class);
+ var constructor = PreferredConstructorDiscoverer.discover(ClassWithMetaAnnotatedParameter.class);
assertThat(constructor).isNotNull();
assertThat(constructor.getParameters().get(0).getSpelExpression()).isEqualTo("${hello-world}");
@@ -157,8 +151,7 @@ void detectsMetaAnnotatedValueAnnotation() {
@Test // GH-2332
void detectsCanonicalRecordConstructorWhenRecordHasSingleArgConstructor() {
- PreferredConstructor constructor =
- PreferredConstructorDiscoverer.discover(RecordWithSingleArgConstructor.class);
+ var constructor = PreferredConstructorDiscoverer.discover(RecordWithSingleArgConstructor.class);
assertThat(constructor).isNotNull();
assertThat(constructor.getParameters()).hasSize(2);
@@ -169,8 +162,7 @@ void detectsCanonicalRecordConstructorWhenRecordHasSingleArgConstructor() {
@Test // GH-2332
void detectsCanonicalRecordConstructorWhenRecordHasNoArgConstructor() {
- PreferredConstructor constructor =
- PreferredConstructorDiscoverer.discover(RecordWithNoArgConstructor.class);
+ var constructor = PreferredConstructorDiscoverer.discover(RecordWithNoArgConstructor.class);
assertThat(constructor).isNotNull();
assertThat(constructor.getParameters()).hasSize(2);
@@ -181,8 +173,7 @@ void detectsCanonicalRecordConstructorWhenRecordHasNoArgConstructor() {
@Test // GH-2332
void detectsAnnotatedRecordConstructor() {
- PreferredConstructor constructor =
- PreferredConstructorDiscoverer.discover(RecordWithPersistenceCreator.class);
+ var constructor = PreferredConstructorDiscoverer.discover(RecordWithPersistenceCreator.class);
assertThat(constructor).isNotNull();
assertThat(constructor.getParameters()).hasSize(1);