[hibernate-commits] Hibernate SVN: r17188 - beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Jul 22 05:51:41 EDT 2009


Author: hardy.ferentschik
Date: 2009-07-22 05:51:41 -0400 (Wed, 22 Jul 2009)
New Revision: 17188

Modified:
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/CustomConstraint.java
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/ValidatorResolutionTest.java
Log:
validator resolution tests

Modified: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/CustomConstraint.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/CustomConstraint.java	2009-07-22 00:16:59 UTC (rev 17187)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/CustomConstraint.java	2009-07-22 09:51:41 UTC (rev 17188)
@@ -35,9 +35,11 @@
  * @author Hardy Ferentschik
  */
 @Constraint(validatedBy = {
-		CustomConstraint.AmbigiousValidatorBaseClass.class,
-		CustomConstraint.AmbigiousValidatorForSubClassA.class,
-		CustomConstraint.AmbigiousValidatorForSubClassB.class
+		CustomConstraint.ValidatorBaseClass.class,
+		CustomConstraint.ValidatorForSubClassA.class,
+		CustomConstraint.ValidatorForSubClassB.class,
+		CustomConstraint.ValidatorForCustomClass.class,
+		CustomConstraint.ValidatorForCustomInterface.class
 })
 @Documented
 @Target({ METHOD, FIELD, TYPE })
@@ -50,7 +52,7 @@
 	public abstract Class<? extends ConstraintPayload>[] payload() default { };
 
 
-	public class AmbigiousValidatorBaseClass implements ConstraintValidator<CustomConstraint, BaseClass> {
+	public class ValidatorBaseClass implements ConstraintValidator<CustomConstraint, BaseClass> {
 
 		public void initialize(CustomConstraint parameters) {
 		}
@@ -60,7 +62,7 @@
 		}
 	}
 
-	public class AmbigiousValidatorForSubClassA implements ConstraintValidator<CustomConstraint, SubClassA> {
+	public class ValidatorForSubClassA implements ConstraintValidator<CustomConstraint, SubClassA> {
 		static int callCounter = 0;
 
 		public void initialize(CustomConstraint parameters) {
@@ -75,7 +77,7 @@
 		}
 	}
 
-	public class AmbigiousValidatorForSubClassB implements ConstraintValidator<CustomConstraint, SubClassB> {
+	public class ValidatorForSubClassB implements ConstraintValidator<CustomConstraint, SubClassB> {
 		static int callCounter = 0;
 
 		public void initialize(CustomConstraint parameters) {
@@ -89,4 +91,36 @@
 			return true;
 		}
 	}
+
+	public class ValidatorForCustomClass
+			implements ConstraintValidator<CustomConstraint, ValidatorResolutionTest.CustomClass> {
+		static int callCounter = 0;
+
+		public void initialize(CustomConstraint parameters) {
+		}
+
+		public boolean isValid(ValidatorResolutionTest.CustomClass customClass, ConstraintValidatorContext constraintValidatorContext) {
+			callCounter++;
+			if ( callCounter > 1 ) {
+				throw new IllegalStateException( "This method should have been only called once during the tests." );
+			}
+			return true;
+		}
+	}
+
+	public class ValidatorForCustomInterface
+			implements ConstraintValidator<CustomConstraint, ValidatorResolutionTest.CustomInterface> {
+		static int callCounter = 0;
+
+		public void initialize(CustomConstraint parameters) {
+		}
+
+		public boolean isValid(ValidatorResolutionTest.CustomInterface customInterface, ConstraintValidatorContext constraintValidatorContext) {
+			callCounter++;
+			if ( callCounter > 1 ) {
+				throw new IllegalStateException( "This method should have been only called once during the tests." );
+			}
+			return true;
+		}
+	}
 }
\ No newline at end of file

Modified: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/ValidatorResolutionTest.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/ValidatorResolutionTest.java	2009-07-22 00:16:59 UTC (rev 17187)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/validatorresolution/ValidatorResolutionTest.java	2009-07-22 09:51:41 UTC (rev 17188)
@@ -48,28 +48,85 @@
 public class ValidatorResolutionTest {
 
 	@Test
+	@SpecAssertion(section = "3.5.3", id = "a")
+	public void testTargetTypeIsInterface() {
+		Validator validator = TestUtil.getDefaultValidator();
+
+
+		assertEquals(
+				CustomConstraint.ValidatorForCustomInterface.callCounter,
+				0,
+				"The validate method of ValidatorForCustomInterface should have been called yet."
+		);
+
+		validator.validate( new CustomInterfaceImpl() );
+
+		assertEquals(
+				CustomConstraint.ValidatorForCustomInterface.callCounter,
+				1,
+				"The validate method of ValidatorForCustomInterface should have been called."
+		);
+	}
+
+	@Test
+	@SpecAssertion(section = "3.5.3", id = "a")
+	public void testTargetTypeIsCLass() {
+		Validator validator = TestUtil.getDefaultValidator();
+
+
+		assertEquals(
+				CustomConstraint.ValidatorForCustomClass.callCounter,
+				0,
+				"The validate method of ValidatorForCustomClass should have been called yet."
+		);
+
+		validator.validate( new CustomClass() );
+
+		assertEquals(
+				CustomConstraint.ValidatorForCustomClass.callCounter,
+				1,
+				"The validate method of ValidatorForCustomClass should have been called."
+		);
+	}
+
+
+	@Test
 	@SpecAssertion(section = "3.5.3", id = "b")
-	public void testFieldTypeIsTargetedType() {
+	public void testTargetedTypeIsField() {
 		Validator validator = TestUtil.getDefaultValidator();
+
+		assertEquals(
+				CustomConstraint.ValidatorForSubClassA.callCounter,
+				0,
+				"The validate method of ValidatorForSubClassA should have been called yet."
+		);
+
 		validator.validate( new SubClassAHolder( new SubClassA() ) );
 
 		assertEquals(
-				CustomConstraint.AmbigiousValidatorForSubClassA.callCounter,
+				CustomConstraint.ValidatorForSubClassA.callCounter,
 				1,
-				"The validated method of AmbigiousValidatorForSubClassA should have benn called."
+				"The validate method of ValidatorForSubClassA should have been called."
 		);
 	}
 
 	@Test
 	@SpecAssertion(section = "3.5.3", id = "c")
-	public void testGetterTypeIsTargetedType() {
+	public void testTargetedTypeIsGetter() {
 		Validator validator = TestUtil.getDefaultValidator();
+
+		assertEquals(
+				CustomConstraint.ValidatorForSubClassB.callCounter,
+				0,
+				"The validate method of ValidatorForSubClassB should have been called yet."
+		);
+
 		validator.validate( new SubClassBHolder( new SubClassB() ) );
 
 		assertEquals(
-				CustomConstraint.AmbigiousValidatorForSubClassB.callCounter,
+				CustomConstraint.ValidatorForSubClassB.callCounter,
 				1,
-				"The validated method of AmbigiousValidatorForSubClassA should have benn called."
+				"The validate method of ValidatorForSubClassB should have been called."
 		);
 	}
 
@@ -228,4 +285,17 @@
 			return ( SubClassB ) baseClass;
 		}
 	}
+
+	@CustomConstraint
+	public class CustomClass {
+
+	}
+
+	@CustomConstraint
+	public interface CustomInterface {
+	}
+
+	public class CustomInterfaceImpl implements CustomInterface {
+
+	}
 }
\ No newline at end of file



More information about the hibernate-commits mailing list