@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2017 the original author or authors .
* Copyright 2002 - 2018 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -27,6 +27,7 @@ import org.junit.Test;
@@ -27,6 +27,7 @@ import org.junit.Test;
import org.springframework.aop.framework.ProxyFactory ;
import org.springframework.beans.MutablePropertyValues ;
import org.springframework.beans.factory.FactoryBean ;
import org.springframework.context.annotation.AnnotationConfigApplicationContext ;
import org.springframework.context.annotation.Bean ;
import org.springframework.context.annotation.Configuration ;
@ -122,8 +123,8 @@ public class MethodValidationTests {
@@ -122,8 +123,8 @@ public class MethodValidationTests {
@Test
public void testLazyValidatorForMethodValidation ( ) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (
LazyMethodValidationConfig . class , CustomValidatorBean . class , MyValidBean . class ) ;
ctx . getBean ( MyValidInterface . class ) . myValidMethod ( "value" , 5 ) ;
LazyMethodValidationConfig . class , CustomValidatorBean . class , MyValidBean . class , MyValidFactoryBean . class ) ;
ctx . getBeansOfType ( MyValidInterface . class ) . values ( ) . forEach ( bean - > bean . myValidMethod ( "value" , 5 ) ) ;
}
@ -146,6 +147,35 @@ public class MethodValidationTests {
@@ -146,6 +147,35 @@ public class MethodValidationTests {
}
@MyStereotype
public static class MyValidFactoryBean implements FactoryBean < String > , MyValidInterface < String > {
@Override
public String getObject ( ) {
return null ;
}
@Override
public Class < ? > getObjectType ( ) {
return String . class ;
}
@Override
public Object myValidMethod ( String arg1 , int arg2 ) {
return ( arg2 = = 0 ? null : "value" ) ;
}
@Override
public void myValidAsyncMethod ( String arg1 , int arg2 ) {
}
@Override
public String myGenericMethod ( String value ) {
return value ;
}
}
public interface MyValidInterface < T > {
@NotNull Object myValidMethod ( @NotNull ( groups = MyGroup . class ) String arg1 , @Max ( 10 ) int arg2 ) ;