You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bval.apache.org by mb...@apache.org on 2011/02/21 19:14:45 UTC
svn commit: r1073103 - in
/incubator/bval/sandbox/lang3-work/bval-jsr303d/src:
main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java
test/java/org/apache/bval/jsr303/dynamic/DynamicBeanDescriptorTest.java
Author: mbenson
Date: Mon Feb 21 18:14:45 2011
New Revision: 1073103
URL: http://svn.apache.org/viewvc?rev=1073103&view=rev
Log:
add dynamic descriptor testing/bugfix
Modified:
incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java
incubator/bval/sandbox/lang3-work/bval-jsr303d/src/test/java/org/apache/bval/jsr303/dynamic/DynamicBeanDescriptorTest.java
Modified: incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java?rev=1073103&r1=1073102&r2=1073103&view=diff
==============================================================================
--- incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java (original)
+++ incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java Mon Feb 21 18:14:45 2011
@@ -338,6 +338,8 @@ final class DynamicMetaGraphManagerImpl
setName(metaBean.getName());
setBeanClass(metaBean.getBeanClass());
getFeatures().putAll(metaBean.getFeatures());
+ //don't inherit a cached descriptor from the static MetaBean:
+ getFeatures().remove(Jsr303Features.Bean.BEAN_DESCRIPTOR);
setValidations(metaBean.getValidations().clone());
MetaProperty[] properties = ObjectUtils.clone(metaBean.getProperties());
Modified: incubator/bval/sandbox/lang3-work/bval-jsr303d/src/test/java/org/apache/bval/jsr303/dynamic/DynamicBeanDescriptorTest.java
URL: http://svn.apache.org/viewvc/incubator/bval/sandbox/lang3-work/bval-jsr303d/src/test/java/org/apache/bval/jsr303/dynamic/DynamicBeanDescriptorTest.java?rev=1073103&r1=1073102&r2=1073103&view=diff
==============================================================================
--- incubator/bval/sandbox/lang3-work/bval-jsr303d/src/test/java/org/apache/bval/jsr303/dynamic/DynamicBeanDescriptorTest.java (original)
+++ incubator/bval/sandbox/lang3-work/bval-jsr303d/src/test/java/org/apache/bval/jsr303/dynamic/DynamicBeanDescriptorTest.java Mon Feb 21 18:14:45 2011
@@ -20,17 +20,22 @@ import java.util.Locale;
import javax.validation.Validation;
import javax.validation.Validator;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
import org.apache.bval.jsr303.ApacheValidationProvider;
import org.apache.bval.jsr303.ApacheValidatorConfiguration;
import org.apache.bval.jsr303.BeanDescriptorTest;
import org.apache.bval.jsr303.DefaultMessageInterpolator;
-import org.apache.bval.jsr303.dynamic.DynamicValidatorContext;
-import org.apache.bval.jsr303.dynamic.DynamicValidatorFactory;
+import org.apache.bval.jsr303.example.First;
+import org.apache.bval.jsr303.util.TestUtils;
+import org.apache.commons.proxy2.stub.AnnotationFactory;
+import org.apache.commons.proxy2.stub.StubConfigurer;
/**
- *
- *
+ *
+ *
* @version $Rev$ $Date$
*/
public class DynamicBeanDescriptorTest extends BeanDescriptorTest {
@@ -43,9 +48,12 @@ public class DynamicBeanDescriptorTest e
@Override
public void setUp() throws Exception {
DynamicValidatorFactory factory =
- Validation.byProvider(ApacheValidationProvider.class).configure().addProperty(
- ApacheValidatorConfiguration.Properties.VALIDATOR_FACTORY_CLASSNAME,
- DynamicValidatorFactory.class.getName()).buildValidatorFactory().unwrap(DynamicValidatorFactory.class);
+ Validation
+ .byProvider(ApacheValidationProvider.class)
+ .configure()
+ .addProperty(ApacheValidatorConfiguration.Properties.VALIDATOR_FACTORY_CLASSNAME,
+ DynamicValidatorFactory.class.getName()).buildValidatorFactory()
+ .unwrap(DynamicValidatorFactory.class);
((DefaultMessageInterpolator) factory.getMessageInterpolator()).setLocale(Locale.ENGLISH);
validatorContext = factory.usingContext();
super.setUp();
@@ -59,4 +67,39 @@ public class DynamicBeanDescriptorTest e
return validatorContext.getValidator();
}
+ @SuppressWarnings("unchecked")
+ public void testDynamicDescriptor() {
+ TestUtils.assertConstraintTypesFound(
+ validator.getConstraintsForClass(Woman.class).getConstraintsForProperty("name").findConstraints(),
+ NotNull.class);
+
+ validatorContext.constrain(Person.class, "name",
+ AnnotationFactory.INSTANCE.create(new StubConfigurer<Pattern>() {
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void configure(Pattern stub) {
+ when(stub.regexp()).thenReturn("[A-Za-z].*").when(stub.groups()).thenReturn(First.class);
+ }
+ }));
+
+ TestUtils.assertConstraintTypesFound(
+ validator.getConstraintsForClass(Woman.class).getConstraintsForProperty("name").findConstraints(),
+ NotNull.class, Pattern.class);
+
+ validatorContext.constrain(Person.class, "name", AnnotationFactory.INSTANCE.create(new StubConfigurer<Size>() {
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void configure(Size stub) {
+ when(stub.min()).thenReturn(1);
+ }
+ }));
+
+ TestUtils.assertConstraintTypesFound(
+ validator.getConstraintsForClass(Woman.class).getConstraintsForProperty("name").findConstraints(),
+ NotNull.class, Pattern.class, Size.class);
+ }
}