Skip to content

Commit ccd56ef

Browse files
p.anisimovgregturn
p.anisimov
authored andcommitted
Simplify PreferredConstructorDiscovererUnitTests.
Leverage things like Java var keyword to simplify test cases. Resolves #2695. Related: #2694. Original pull request: #2724.
1 parent c71f2fb commit ccd56ef

File tree

1 file changed

+65
-62
lines changed

1 file changed

+65
-62
lines changed

src/test/java/org/springframework/data/mapping/PreferredConstructorDiscovererUnitTests.java

+65-62
Original file line numberDiff line numberDiff line change
@@ -39,68 +39,68 @@
3939
* @author Roman Rodov
4040
* @author Mark Paluch
4141
* @author Christoph Strobl
42+
* @author Pavel Anisimov
4243
*/
4344
class PreferredConstructorDiscovererUnitTests<P extends PersistentProperty<P>> {
4445

4546
@Test // DATACMNS-1126
4647
void findsNoArgConstructorForClassWithoutExplicitConstructor() {
4748

48-
assertThat(PreferredConstructorDiscoverer.discover(EntityWithoutConstructor.class)).satisfies(constructor -> {
49+
var constructor = PreferredConstructorDiscoverer.discover(EntityWithoutConstructor.class);
4950

50-
assertThat(constructor).isNotNull();
51-
assertThat(constructor.isNoArgConstructor()).isTrue();
52-
assertThat(constructor.isExplicitlyAnnotated()).isFalse();
53-
});
51+
assertThat(constructor).isNotNull();
52+
assertThat(constructor.isNoArgConstructor()).isTrue();
53+
assertThat(constructor.isExplicitlyAnnotated()).isFalse();
5454
}
5555

5656
@Test // DATACMNS-1126
5757
void findsNoArgConstructorForClassWithMultipleConstructorsAndNoArgOne() {
5858

59-
assertThat(PreferredConstructorDiscoverer.discover(ClassWithEmptyConstructor.class)).satisfies(constructor -> {
59+
var constructor = PreferredConstructorDiscoverer.discover(ClassWithEmptyConstructor.class);
6060

61-
assertThat(constructor).isNotNull();
62-
assertThat(constructor.isNoArgConstructor()).isTrue();
63-
assertThat(constructor.isExplicitlyAnnotated()).isFalse();
64-
});
61+
assertThat(constructor).isNotNull();
62+
assertThat(constructor.isNoArgConstructor()).isTrue();
63+
assertThat(constructor.isExplicitlyAnnotated()).isFalse();
6564
}
6665

6766
@Test // DATACMNS-1126
6867
void doesNotThrowExceptionForMultipleConstructorsAndNoNoArgConstructorWithoutAnnotation() {
6968

70-
assertThat(PreferredConstructorDiscoverer.discover(ClassWithMultipleConstructorsWithoutEmptyOne.class)).isNull();
69+
var constructor = PreferredConstructorDiscoverer.discover(ClassWithMultipleConstructorsWithoutEmptyOne.class);
70+
71+
assertThat(constructor).isNull();
7172
}
7273

7374
@Test // DATACMNS-1126
74-
@SuppressWarnings({ "unchecked", "rawtypes" })
7575
void usesConstructorWithAnnotationOverEveryOther() {
7676

77-
assertThat(PreferredConstructorDiscoverer.discover(ClassWithMultipleConstructorsAndAnnotation.class))
78-
.satisfies(constructor -> {
77+
PreferredConstructor<ClassWithMultipleConstructorsAndAnnotation, P> constructor = PreferredConstructorDiscoverer
78+
.discover(ClassWithMultipleConstructorsAndAnnotation.class);
7979

80-
assertThat(constructor).isNotNull();
81-
assertThat(constructor.isNoArgConstructor()).isFalse();
82-
assertThat(constructor.isExplicitlyAnnotated()).isTrue();
80+
assertThat(constructor).isNotNull();
81+
assertThat(constructor.isNoArgConstructor()).isFalse();
82+
assertThat(constructor.isExplicitlyAnnotated()).isTrue();
8383

84-
assertThat(constructor.hasParameters()).isTrue();
84+
assertThat(constructor.hasParameters()).isTrue();
8585

86-
Iterator<Parameter<Object, P>> parameters = (Iterator) constructor.getParameters().iterator();
86+
Iterator<Parameter<Object, P>> parameters = constructor.getParameters().iterator();
8787

88-
Parameter<?, P> parameter = parameters.next();
89-
assertThat(parameter.getType().getType()).isEqualTo(Long.class);
90-
assertThat(parameters.hasNext()).isFalse();
91-
});
88+
Parameter<?, P> parameter = parameters.next();
89+
assertThat(parameter.getType().getType()).isEqualTo(Long.class);
90+
assertThat(parameters.hasNext()).isFalse();
9291
}
9392

9493
@Test // DATACMNS-134, DATACMNS-1126
9594
void discoversInnerClassConstructorCorrectly() {
9695

9796
PersistentEntity<Inner, P> entity = new BasicPersistentEntity<>(TypeInformation.of(Inner.class));
9897

99-
assertThat(PreferredConstructorDiscoverer.discover(entity)).satisfies(constructor -> {
98+
var constructor = PreferredConstructorDiscoverer.discover(entity);
99+
100+
assertThat(constructor).isNotNull();
100101

101-
Parameter<?, P> parameter = constructor.getParameters().iterator().next();
102-
assertThat(constructor.isParentParameter(parameter)).isTrue();
103-
});
102+
Parameter<?, P> parameter = constructor.getParameters().iterator().next();
103+
assertThat(constructor.isParentParameter(parameter)).isTrue();
104104
}
105105

106106
@Test // DATACMNS-1082, DATACMNS-1126
@@ -109,73 +109,76 @@ void skipsSyntheticConstructor() {
109109
PersistentEntity<SyntheticConstructor, P> entity = new BasicPersistentEntity<>(
110110
TypeInformation.of(SyntheticConstructor.class));
111111

112-
assertThat(PreferredConstructorDiscoverer.discover(entity)).satisfies(constructor -> {
112+
var constructor = PreferredConstructorDiscoverer.discover(entity);
113+
assertThat(constructor).isNotNull();
113114

114-
var annotation = constructor.getConstructor().getAnnotation(PersistenceConstructor.class);
115-
assertThat(annotation).isNotNull();
116-
assertThat(constructor.getConstructor().isSynthetic()).isFalse();
117-
});
115+
var annotation = constructor.getConstructor().getAnnotation(PersistenceConstructor.class);
116+
assertThat(annotation).isNotNull();
117+
assertThat(constructor.getConstructor().isSynthetic()).isFalse();
118118
}
119119

120120
@Test // GH-2313
121121
void capturesEnclosingTypeParameterOfNonStaticInnerClass() {
122122

123-
assertThat(PreferredConstructorDiscoverer.discover(NonStaticWithGenericTypeArgUsedInCtor.class)).satisfies(ctor -> {
123+
var constructor = PreferredConstructorDiscoverer.discover(NonStaticWithGenericTypeArgUsedInCtor.class);
124124

125-
assertThat(ctor.getParameters()).hasSize(2);
126-
assertThat(ctor.getParameters().get(0).getName()).isEqualTo("this$0");
127-
assertThat(ctor.getParameters().get(1).getName()).isEqualTo("value");
128-
});
125+
assertThat(constructor).isNotNull();
126+
assertThat(constructor.getParameters()).hasSize(2);
127+
assertThat(constructor.getParameters().get(0).getName()).isEqualTo("this$0");
128+
assertThat(constructor.getParameters().get(1).getName()).isEqualTo("value");
129129
}
130130

131131
@Test // GH-2313
132132
void capturesSuperClassEnclosingTypeParameterOfNonStaticInnerClass() {
133133

134-
assertThat(PreferredConstructorDiscoverer.discover(NonStaticInnerWithGenericArgUsedInCtor.class))
135-
.satisfies(ctor -> {
134+
var constructor = PreferredConstructorDiscoverer.discover(NonStaticInnerWithGenericArgUsedInCtor.class);
136135

137-
assertThat(ctor.getParameters()).hasSize(2);
138-
assertThat(ctor.getParameters().get(0).getName()).isEqualTo("this$0");
139-
assertThat(ctor.getParameters().get(1).getName()).isEqualTo("value");
140-
});
136+
assertThat(constructor).isNotNull();
137+
assertThat(constructor.getParameters()).hasSize(2);
138+
assertThat(constructor.getParameters().get(0).getName()).isEqualTo("this$0");
139+
assertThat(constructor.getParameters().get(1).getName()).isEqualTo("value");
141140
}
142141

143142
@Test // GH-2332
144143
void detectsMetaAnnotatedValueAnnotation() {
145144

146-
assertThat(PreferredConstructorDiscoverer.discover(ClassWithMetaAnnotatedParameter.class)).satisfies(ctor -> {
145+
var constructor = PreferredConstructorDiscoverer.discover(ClassWithMetaAnnotatedParameter.class);
147146

148-
assertThat(ctor.getParameters().get(0).getSpelExpression()).isEqualTo("${hello-world}");
149-
assertThat(ctor.getParameters().get(0).getAnnotations()).isNotNull();
150-
});
147+
assertThat(constructor).isNotNull();
148+
assertThat(constructor.getParameters().get(0).getSpelExpression()).isEqualTo("${hello-world}");
149+
assertThat(constructor.getParameters().get(0).getAnnotations()).isNotNull();
151150
}
152151

153152
@Test // GH-2332
154-
void detectsCanonicalRecordConstructor() {
153+
void detectsCanonicalRecordConstructorWhenRecordHasSingleArgConstructor() {
155154

156-
assertThat(PreferredConstructorDiscoverer.discover(RecordWithSingleArgConstructor.class)).satisfies(ctor -> {
155+
var constructor = PreferredConstructorDiscoverer.discover(RecordWithSingleArgConstructor.class);
157156

158-
assertThat(ctor.getParameters()).hasSize(2);
159-
assertThat(ctor.getParameters().get(0).getRawType()).isEqualTo(Long.class);
160-
assertThat(ctor.getParameters().get(1).getRawType()).isEqualTo(String.class);
161-
});
157+
assertThat(constructor).isNotNull();
158+
assertThat(constructor.getParameters()).hasSize(2);
159+
assertThat(constructor.getParameters().get(0).getRawType()).isEqualTo(Long.class);
160+
assertThat(constructor.getParameters().get(1).getRawType()).isEqualTo(String.class);
161+
}
162+
163+
@Test // GH-2332
164+
void detectsCanonicalRecordConstructorWhenRecordHasNoArgConstructor() {
162165

163-
assertThat(PreferredConstructorDiscoverer.discover(RecordWithNoArgConstructor.class)).satisfies(ctor -> {
166+
var constructor = PreferredConstructorDiscoverer.discover(RecordWithNoArgConstructor.class);
164167

165-
assertThat(ctor.getParameters()).hasSize(2);
166-
assertThat(ctor.getParameters().get(0).getRawType()).isEqualTo(Long.class);
167-
assertThat(ctor.getParameters().get(1).getRawType()).isEqualTo(String.class);
168-
});
168+
assertThat(constructor).isNotNull();
169+
assertThat(constructor.getParameters()).hasSize(2);
170+
assertThat(constructor.getParameters().get(0).getRawType()).isEqualTo(Long.class);
171+
assertThat(constructor.getParameters().get(1).getRawType()).isEqualTo(String.class);
169172
}
170173

171174
@Test // GH-2332
172175
void detectsAnnotatedRecordConstructor() {
173176

174-
assertThat(PreferredConstructorDiscoverer.discover(RecordWithPersistenceCreator.class)).satisfies(ctor -> {
177+
var constructor = PreferredConstructorDiscoverer.discover(RecordWithPersistenceCreator.class);
175178

176-
assertThat(ctor.getParameters()).hasSize(1);
177-
assertThat(ctor.getParameters().get(0).getRawType()).isEqualTo(String.class);
178-
});
179+
assertThat(constructor).isNotNull();
180+
assertThat(constructor.getParameters()).hasSize(1);
181+
assertThat(constructor.getParameters().get(0).getRawType()).isEqualTo(String.class);
179182
}
180183

181184
static class SyntheticConstructor {

0 commit comments

Comments
 (0)