[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