[hibernate-commits] Hibernate SVN: r16104 - validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine and 1 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Sat Mar 7 03:25:39 EST 2009
Author: hardy.ferentschik
Date: 2009-03-07 03:25:39 -0500 (Sat, 07 Mar 2009)
New Revision: 16104
Added:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/BeanDescriptorImplTest.java
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/BeanDescriptor.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanDescriptorImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ElementDescriptorImpl.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java
Log:
HV-95, HV-84 Added some test.
Modified: beanvalidation/trunk/validation-api/src/main/java/javax/validation/BeanDescriptor.java
===================================================================
--- beanvalidation/trunk/validation-api/src/main/java/javax/validation/BeanDescriptor.java 2009-03-06 22:29:35 UTC (rev 16103)
+++ beanvalidation/trunk/validation-api/src/main/java/javax/validation/BeanDescriptor.java 2009-03-07 08:25:39 UTC (rev 16104)
@@ -39,7 +39,7 @@
/**
* Return the property descriptor for a given property.
- * Return null if the property does not exist or has no
+ * Return <code>null</code> if the property does not exist or has no
* constraint nor is marked as cascaded (see {@link #getConstrainedProperties()} )
* <p/>
* The returned object (and associated objects including ConstraintDescriptors)
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanDescriptorImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanDescriptorImpl.java 2009-03-06 22:29:35 UTC (rev 16103)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanDescriptorImpl.java 2009-03-07 08:25:39 UTC (rev 16104)
@@ -11,8 +11,8 @@
public class BeanDescriptorImpl<T> extends ElementDescriptorImpl implements BeanDescriptor {
private final BeanMetaData<T> metadataBean;
- public BeanDescriptorImpl(Class<T> returnType, BeanMetaData<T> metadataBean) {
- super( returnType );
+ public BeanDescriptorImpl(BeanMetaData<T> metadataBean) {
+ super( metadataBean.getBeanClass() );
this.metadataBean = metadataBean;
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java 2009-03-06 22:29:35 UTC (rev 16103)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/BeanMetaDataImpl.java 2009-03-07 08:25:39 UTC (rev 16104)
@@ -104,7 +104,7 @@
* for this validator and create meta data.
*/
private void createMetaData() {
- beanDescriptor = new BeanDescriptorImpl<T>( beanClass, this );
+ beanDescriptor = new BeanDescriptorImpl<T>( this );
initDefaultGroupSequence( beanClass );
List<Class> classes = new ArrayList<Class>();
computeClassHierarchy( beanClass, classes );
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ElementDescriptorImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ElementDescriptorImpl.java 2009-03-06 22:29:35 UTC (rev 16103)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ElementDescriptorImpl.java 2009-03-07 08:25:39 UTC (rev 16104)
@@ -41,6 +41,9 @@
constraintDescriptors.add( constraintDescriptor );
}
+ /**
+ * {@inheritDoc}
+ */
public boolean hasConstraints() {
return constraintDescriptors.size() != 0;
}
Added: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/BeanDescriptorImplTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/BeanDescriptorImplTest.java (rev 0)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/BeanDescriptorImplTest.java 2009-03-07 08:25:39 UTC (rev 16104)
@@ -0,0 +1,144 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation.engine;
+
+import java.util.Set;
+import javax.validation.BeanDescriptor;
+import javax.validation.ConstraintDescriptor;
+import javax.validation.ElementDescriptor;
+import javax.validation.PropertyDescriptor;
+import javax.validation.Validator;
+
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.fail;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+import org.hibernate.validation.eg.Account;
+import org.hibernate.validation.eg.Customer;
+import org.hibernate.validation.eg.Order;
+import org.hibernate.validation.eg.UnconstraintEntity;
+import org.hibernate.validation.util.TestUtil;
+
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class BeanDescriptorImplTest {
+
+ @Test
+ public void testHasConstraintsAndIsBeanConstrained() {
+ Validator validator = TestUtil.getValidator();
+ BeanDescriptor beanDescriptor = validator.getConstraintsForClass( Customer.class );
+
+ assertFalse( "There should be no direct constraints on the specified bean.", beanDescriptor.hasConstraints() );
+ assertTrue( "Bean should be constrainted due to @valid ", beanDescriptor.isBeanConstrained() );
+
+ beanDescriptor = validator.getConstraintsForClass( Account.class );
+ assertTrue(
+ "Bean should be constrainted due to @valid", beanDescriptor.isBeanConstrained()
+ );
+ }
+
+ @Test
+ public void testUnconstraintClass() {
+ Validator validator = TestUtil.getValidator();
+ assertFalse(
+ "There should be no constraints",
+ validator.getConstraintsForClass( UnconstraintEntity.class ).hasConstraints()
+ );
+ }
+
+ @Test
+ public void testGetConstraintsForProperty() {
+ Validator validator = TestUtil.getValidator();
+ BeanDescriptor beanDescriptor = validator.getConstraintsForClass( Order.class );
+ PropertyDescriptor propertyDescriptor = beanDescriptor.getConstraintsForProperty( "orderNumber" );
+ assertEquals(
+ "There should be one constraint descriptor", 1, propertyDescriptor.getConstraintDescriptors().size()
+ );
+
+ assertNull( "There should be no descriptor", beanDescriptor.getConstraintsForProperty( "foobar" ) );
+
+ beanDescriptor = validator.getConstraintsForClass( Customer.class );
+ propertyDescriptor = beanDescriptor.getConstraintsForProperty( "orderList" );
+ assertEquals(
+ "There should be no constraint descriptors", 0, propertyDescriptor.getConstraintDescriptors().size()
+ );
+ assertTrue( "The property should be cascaded", propertyDescriptor.isCascaded() );
+ }
+
+ /**
+ * HV-95
+ */
+ @Test
+ public void testGetConstrainedProperties() {
+ Validator validator = TestUtil.getValidator();
+ BeanDescriptor beanDescriptor = validator.getConstraintsForClass( Order.class );
+ Set<String> constraintProperties = beanDescriptor.getConstrainedProperties();
+ assertEquals( "There should be only one property", 1, constraintProperties.size() );
+ assertTrue( "Wrong property", constraintProperties.contains( "orderNumber" ) );
+
+ try {
+ constraintProperties.add( "foobar" );
+ fail( "Set should be immutable" );
+ }
+ catch ( UnsupportedOperationException e ) {
+
+ }
+
+ try {
+ constraintProperties.remove( "orderNumber" );
+ fail( "Set should be immutable" );
+ }
+ catch ( UnsupportedOperationException e ) {
+
+ }
+ }
+
+ /**
+ * HV-95
+ */
+ @Test
+ public void testElementDescriptorImmutable() {
+ Validator validator = TestUtil.getValidator();
+ ElementDescriptor elementDescriptor = validator.getConstraintsForClass( Order.class )
+ .getConstraintsForProperty( "orderNumber" );
+ Set<ConstraintDescriptor<?>> constraintDescriptors = elementDescriptor.getConstraintDescriptors();
+ assertTrue( "There should be a ConstraintDescriptor", constraintDescriptors.size() == 1 );
+ ConstraintDescriptor<?> descriptor = constraintDescriptors.iterator().next();
+
+ try {
+ constraintDescriptors.add( descriptor );
+ fail( "Set should be immutable" );
+ }
+ catch ( UnsupportedOperationException e ) {
+
+ }
+
+ try {
+ constraintDescriptors.remove( descriptor );
+ fail( "Set should be immutable" );
+ }
+ catch ( UnsupportedOperationException e ) {
+
+ }
+ }
+}
Property changes on: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/BeanDescriptorImplTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java 2009-03-06 22:29:35 UTC (rev 16103)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java 2009-03-07 08:25:39 UTC (rev 16104)
@@ -39,7 +39,6 @@
import org.hibernate.validation.eg.Engine;
import org.hibernate.validation.eg.Order;
import org.hibernate.validation.eg.Person;
-import org.hibernate.validation.eg.UnconstraintEntity;
import org.hibernate.validation.eg.groups.First;
import org.hibernate.validation.eg.groups.Last;
import org.hibernate.validation.eg.groups.Second;
@@ -59,7 +58,8 @@
@Test
public void testWrongMethodName() {
try {
- TestUtil.getValidator().getConstraintsForClass( Boy.class ).hasConstraints();
+ Boy boy = new Boy();
+ TestUtil.getValidator().validate( boy );
fail();
}
catch ( ValidationException e ) {
@@ -76,28 +76,6 @@
TestUtil.getValidator().getConstraintsForClass( null );
}
- @Test
- public void testUnconstraintClass() {
- Validator validator = TestUtil.getValidator();
- assertTrue(
- "There should be no constraints",
- !validator.getConstraintsForClass( UnconstraintEntity.class ).hasConstraints()
- );
- }
-
- @Test
- public void testHasConstraintsAndIsBeanConstrained() {
- Validator validator = TestUtil.getValidator();
- assertTrue(
- "There should not be constraints", !validator.getConstraintsForClass( Customer.class ).hasConstraints()
- );
- assertTrue(
- "It should be constrainted", validator.getConstraintsForClass( Customer.class ).isBeanConstrained()
- );
- // TODO fix test
-// assertTrue( "It should be constrainted even if it has no constraint annotations - not implemented yet", validator.getConstraintsForClass( Account.class ).isBeanConstrained() );
- }
-
@Test(expected = IllegalArgumentException.class)
public void testValidateWithNull() {
Validator validator = TestUtil.getValidator();
@@ -433,6 +411,25 @@
assertEquals( "Wrong number of constraints", 0, constraintViolations.size() );
}
+ @Test
+ public void testObjectTraversion() {
+ Validator validator = TestUtil.getValidator();
+
+ Customer customer = new Customer();
+ customer.setFirstName( "John" );
+ customer.setLastName( "Doe" );
+
+ for ( int i = 0; i < 100; i++ ) {
+ Order order = new Order();
+ customer.addOrder( order );
+ }
+
+ Set<ConstraintViolation<Customer>> constraintViolations = validator.validate(
+ customer, Default.class, First.class, Second.class, Last.class
+ );
+ assertEquals( "Wrong number of constraints", 100, constraintViolations.size() );
+ }
+
/**
* HV-120
*/
@@ -445,7 +442,7 @@
Set<ConstraintDescriptor<?>> descriptors = propertyDescriptor.getConstraintDescriptors();
assertEquals( "There should be only one constraint descriptor", 1, descriptors.size() );
- ConstraintDescriptor descriptor = descriptors.iterator().next();
+ ConstraintDescriptor<?> descriptor = descriptors.iterator().next();
Set<Class<?>> groups = descriptor.getGroups();
assertTrue( "There should be only one group", groups.size() == 1 );
assertEquals(
@@ -454,23 +451,4 @@
groups.iterator().next()
);
}
-
- @Test
- public void testObjectTraversion() {
- Validator validator = TestUtil.getValidator();
-
- Customer customer = new Customer();
- customer.setFirstName( "John" );
- customer.setLastName( "Doe" );
-
- for ( int i = 0; i < 100; i++ ) {
- Order order = new Order();
- customer.addOrder( order );
- }
-
- Set<ConstraintViolation<Customer>> constraintViolations = validator.validate(
- customer, Default.class, First.class, Second.class, Last.class
- );
- assertEquals( "Wrong number of constraints", 100, constraintViolations.size() );
- }
}
More information about the hibernate-commits
mailing list