Skip to content

Commit 38abee0

Browse files
committed
Rename MethodValidationTests and polishing
See gh-29825
1 parent 082784e commit 38abee0

File tree

1 file changed

+36
-32
lines changed

1 file changed

+36
-32
lines changed

spring-context/src/test/java/org/springframework/validation/beanvalidation/MethodValidationTests.java renamed to spring-context/src/test/java/org/springframework/validation/beanvalidation/MethodValidationProxyTests.java

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.springframework.aop.framework.ProxyFactory;
3333
import org.springframework.beans.MutablePropertyValues;
3434
import org.springframework.beans.factory.FactoryBean;
35+
import org.springframework.context.ApplicationContext;
3536
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
3637
import org.springframework.context.annotation.Bean;
3738
import org.springframework.context.annotation.Configuration;
@@ -50,32 +51,36 @@
5051
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
5152

5253
/**
54+
* Tests for proxy-based method validation via {@link MethodValidationInterceptor}
55+
* and/or {@link MethodValidationPostProcessor}.
56+
*
5357
* @author Juergen Hoeller
58+
* @author Rossen Stoyanchevß
5459
*/
55-
public class MethodValidationTests {
60+
public class MethodValidationProxyTests {
5661

5762
@Test
5863
@SuppressWarnings("unchecked")
5964
public void testMethodValidationInterceptor() {
6065
MyValidBean bean = new MyValidBean();
61-
ProxyFactory proxyFactory = new ProxyFactory(bean);
62-
proxyFactory.addAdvice(new MethodValidationInterceptor());
63-
proxyFactory.addAdvisor(new AsyncAnnotationAdvisor());
64-
doTestProxyValidation((MyValidInterface<String>) proxyFactory.getProxy());
66+
ProxyFactory factory = new ProxyFactory(bean);
67+
factory.addAdvice(new MethodValidationInterceptor());
68+
factory.addAdvisor(new AsyncAnnotationAdvisor());
69+
doTestProxyValidation((MyValidInterface<String>) factory.getProxy());
6570
}
6671

6772
@Test
6873
@SuppressWarnings("unchecked")
6974
public void testMethodValidationPostProcessor() {
70-
StaticApplicationContext ac = new StaticApplicationContext();
71-
ac.registerSingleton("mvpp", MethodValidationPostProcessor.class);
75+
StaticApplicationContext context = new StaticApplicationContext();
76+
context.registerSingleton("mvpp", MethodValidationPostProcessor.class);
7277
MutablePropertyValues pvs = new MutablePropertyValues();
7378
pvs.add("beforeExistingAdvisors", false);
74-
ac.registerSingleton("aapp", AsyncAnnotationBeanPostProcessor.class, pvs);
75-
ac.registerSingleton("bean", MyValidBean.class);
76-
ac.refresh();
77-
doTestProxyValidation(ac.getBean("bean", MyValidInterface.class));
78-
ac.close();
79+
context.registerSingleton("aapp", AsyncAnnotationBeanPostProcessor.class, pvs);
80+
context.registerSingleton("bean", MyValidBean.class);
81+
context.refresh();
82+
doTestProxyValidation(context.getBean("bean", MyValidInterface.class));
83+
context.close();
7984
}
8085

8186
@Test // gh-29782
@@ -90,46 +95,41 @@ public void testMethodValidationPostProcessorForInterfaceOnlyProxy() {
9095
context.close();
9196
}
9297

98+
@SuppressWarnings("DataFlowIssue")
9399
private void doTestProxyValidation(MyValidInterface<String> proxy) {
94100
assertThat(proxy.myValidMethod("value", 5)).isNotNull();
95-
assertThatExceptionOfType(ValidationException.class).isThrownBy(() ->
96-
proxy.myValidMethod("value", 15));
97-
assertThatExceptionOfType(ValidationException.class).isThrownBy(() ->
98-
proxy.myValidMethod(null, 5));
99-
assertThatExceptionOfType(ValidationException.class).isThrownBy(() ->
100-
proxy.myValidMethod("value", 0));
101+
assertThatExceptionOfType(ValidationException.class).isThrownBy(() -> proxy.myValidMethod("value", 15));
102+
assertThatExceptionOfType(ValidationException.class).isThrownBy(() -> proxy.myValidMethod(null, 5));
103+
assertThatExceptionOfType(ValidationException.class).isThrownBy(() -> proxy.myValidMethod("value", 0));
101104
proxy.myValidAsyncMethod("value", 5);
102-
assertThatExceptionOfType(ValidationException.class).isThrownBy(() ->
103-
proxy.myValidAsyncMethod("value", 15));
104-
assertThatExceptionOfType(ValidationException.class).isThrownBy(() ->
105-
proxy.myValidAsyncMethod(null, 5));
105+
assertThatExceptionOfType(ValidationException.class).isThrownBy(() -> proxy.myValidAsyncMethod("value", 15));
106+
assertThatExceptionOfType(ValidationException.class).isThrownBy(() -> proxy.myValidAsyncMethod(null, 5));
106107
assertThat(proxy.myGenericMethod("myValue")).isEqualTo("myValue");
107-
assertThatExceptionOfType(ValidationException.class).isThrownBy(() ->
108-
proxy.myGenericMethod(null));
108+
assertThatExceptionOfType(ValidationException.class).isThrownBy(() -> proxy.myGenericMethod(null));
109109
}
110110

111111
@Test
112112
public void testLazyValidatorForMethodValidation() {
113-
@SuppressWarnings("resource")
114-
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
113+
ApplicationContext context = new AnnotationConfigApplicationContext(
115114
LazyMethodValidationConfig.class, CustomValidatorBean.class,
116115
MyValidBean.class, MyValidFactoryBean.class);
117-
ctx.getBeansOfType(MyValidInterface.class).values().forEach(bean -> bean.myValidMethod("value", 5));
116+
context.getBeansOfType(MyValidInterface.class).values().forEach(bean -> bean.myValidMethod("value", 5));
118117
}
119118

120119
@Test
121120
public void testLazyValidatorForMethodValidationWithProxyTargetClass() {
122-
@SuppressWarnings("resource")
123-
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
121+
ApplicationContext context = new AnnotationConfigApplicationContext(
124122
LazyMethodValidationConfigWithProxyTargetClass.class, CustomValidatorBean.class,
125123
MyValidBean.class, MyValidFactoryBean.class);
126-
ctx.getBeansOfType(MyValidInterface.class).values().forEach(bean -> bean.myValidMethod("value", 5));
124+
context.getBeansOfType(MyValidInterface.class).values().forEach(bean -> bean.myValidMethod("value", 5));
127125
}
128126

129127

130128
@MyStereotype
131129
public static class MyValidBean implements MyValidInterface<String> {
132130

131+
@SuppressWarnings("DataFlowIssue")
132+
@NotNull
133133
@Override
134134
public Object myValidMethod(String arg1, int arg2) {
135135
return (arg2 == 0 ? null : "value");
@@ -159,6 +159,8 @@ public Class<?> getObjectType() {
159159
return String.class;
160160
}
161161

162+
@SuppressWarnings("DataFlowIssue")
163+
@NotNull
162164
@Override
163165
public Object myValidMethod(String arg1, int arg2) {
164166
return (arg2 == 0 ? null : "value");
@@ -178,10 +180,12 @@ public String myGenericMethod(String value) {
178180
@MyStereotype
179181
public interface MyValidInterface<T> {
180182

181-
@NotNull Object myValidMethod(@NotNull(groups = MyGroup.class) String arg1, @Max(10) int arg2);
183+
@NotNull
184+
Object myValidMethod(@NotNull(groups = MyGroup.class) String arg1, @Max(10) int arg2);
182185

183186
@MyValid
184-
@Async void myValidAsyncMethod(@NotNull(groups = OtherGroup.class) String arg1, @Max(10) int arg2);
187+
@Async
188+
void myValidAsyncMethod(@NotNull(groups = OtherGroup.class) String arg1, @Max(10) int arg2);
185189

186190
T myGenericMethod(@NotNull T value);
187191
}

0 commit comments

Comments
 (0)