[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