Browse Source

Tests for @Lazy Validator setup

Issue: SPR-15807
pull/1524/head
Juergen Hoeller 8 years ago
parent
commit
30d67f7c42
  1. 28
      spring-context-support/src/test/java/org/springframework/validation/beanvalidation2/MethodValidationTests.java
  2. 27
      spring-context/src/test/java/org/springframework/validation/beanvalidation/MethodValidationTests.java

28
spring-context-support/src/test/java/org/springframework/validation/beanvalidation2/MethodValidationTests.java

@ -18,6 +18,7 @@ package org.springframework.validation.beanvalidation2; @@ -18,6 +18,7 @@ package org.springframework.validation.beanvalidation2;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import javax.validation.Validator;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;
@ -26,11 +27,16 @@ import org.junit.Test; @@ -26,11 +27,16 @@ import org.junit.Test;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.support.StaticApplicationContext;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncAnnotationAdvisor;
import org.springframework.scheduling.annotation.AsyncAnnotationBeanPostProcessor;
import org.springframework.validation.annotation.Validated;
import org.springframework.validation.beanvalidation.CustomValidatorBean;
import org.springframework.validation.beanvalidation.MethodValidationInterceptor;
import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;
@ -39,7 +45,6 @@ import static org.junit.Assert.*; @@ -39,7 +45,6 @@ import static org.junit.Assert.*;
/**
* @author Juergen Hoeller
*/
@SuppressWarnings("rawtypes")
public class MethodValidationTests {
@Test
@ -64,8 +69,6 @@ public class MethodValidationTests { @@ -64,8 +69,6 @@ public class MethodValidationTests {
ac.close();
}
@SuppressWarnings("unchecked")
private void doTestProxyValidation(MyValidInterface proxy) {
assertNotNull(proxy.myValidMethod("value", 5));
try {
@ -116,6 +119,13 @@ public class MethodValidationTests { @@ -116,6 +119,13 @@ public class MethodValidationTests {
}
}
@Test
public void testLazyValidatorForMethodValidation() {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
LazyMethodValidationConfig.class, CustomValidatorBean.class, MyValidBean.class);
ctx.getBean(MyValidInterface.class).myValidMethod("value", 5);
}
@MyStereotype
public static class MyValidBean implements MyValidInterface<String> {
@ -166,4 +176,16 @@ public class MethodValidationTests { @@ -166,4 +176,16 @@ public class MethodValidationTests {
public @interface MyValid {
}
@Configuration
public static class LazyMethodValidationConfig {
@Bean
public static MethodValidationPostProcessor methodValidationPostProcessor(@Lazy Validator validator) {
MethodValidationPostProcessor postProcessor = new MethodValidationPostProcessor();
postProcessor.setValidator(validator);
return postProcessor;
}
}
}

27
spring-context/src/test/java/org/springframework/validation/beanvalidation/MethodValidationTests.java

@ -18,6 +18,7 @@ package org.springframework.validation.beanvalidation; @@ -18,6 +18,7 @@ package org.springframework.validation.beanvalidation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import javax.validation.Validator;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;
@ -26,6 +27,10 @@ import org.junit.Test; @@ -26,6 +27,10 @@ import org.junit.Test;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.support.StaticApplicationContext;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncAnnotationAdvisor;
@ -37,7 +42,6 @@ import static org.junit.Assert.*; @@ -37,7 +42,6 @@ import static org.junit.Assert.*;
/**
* @author Juergen Hoeller
*/
@SuppressWarnings("rawtypes")
public class MethodValidationTests {
@Test
@ -62,8 +66,6 @@ public class MethodValidationTests { @@ -62,8 +66,6 @@ public class MethodValidationTests {
ac.close();
}
@SuppressWarnings("unchecked")
private void doTestProxyValidation(MyValidInterface proxy) {
assertNotNull(proxy.myValidMethod("value", 5));
try {
@ -114,6 +116,13 @@ public class MethodValidationTests { @@ -114,6 +116,13 @@ public class MethodValidationTests {
}
}
@Test
public void testLazyValidatorForMethodValidation() {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
LazyMethodValidationConfig.class, CustomValidatorBean.class, MyValidBean.class);
ctx.getBean(MyValidInterface.class).myValidMethod("value", 5);
}
@MyStereotype
public static class MyValidBean implements MyValidInterface<String> {
@ -164,4 +173,16 @@ public class MethodValidationTests { @@ -164,4 +173,16 @@ public class MethodValidationTests {
public @interface MyValid {
}
@Configuration
public static class LazyMethodValidationConfig {
@Bean
public static MethodValidationPostProcessor methodValidationPostProcessor(@Lazy Validator validator) {
MethodValidationPostProcessor postProcessor = new MethodValidationPostProcessor();
postProcessor.setValidator(validator);
return postProcessor;
}
}
}

Loading…
Cancel
Save