Author: hardy.ferentschik
Date: 2009-03-06 15:34:24 -0500 (Fri, 06 Mar 2009)
New Revision: 16101
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/DigitsValidatorForNumber.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/DigitsValidatorForString.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthValidator.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternValidator.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForArray.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForCollection.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForMap.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForString.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/DigitsValidatorForNumberTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/DigitsValidatorForStringTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/LengthValidatorTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/MaxValidatorForStringTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/MinValidatorForStringTest.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/PatternValidatorTest.java
Log:
HV-119 Added exception cases and tests
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/DigitsValidatorForNumber.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/DigitsValidatorForNumber.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/DigitsValidatorForNumber.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -1,4 +1,4 @@
-// $Id:$
+// $Id$
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
@@ -20,6 +20,7 @@
import java.math.BigDecimal;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ValidationException;
import javax.validation.constraints.Digits;
/**
@@ -28,7 +29,6 @@
*
* @author Alaa Nassef
* @author Hardy Ferentschik
- * @todo Implement exception handling in initalize once exception behaviour is specified
BVAL-117
*/
public class DigitsValidatorForNumber implements ConstraintValidator<Digits,
Number> {
@@ -38,6 +38,7 @@
public void initialize(Digits constraintAnnotation) {
this.maxIntegerLength = constraintAnnotation.integer();
this.maxFractionLength = constraintAnnotation.fraction();
+ validateParameters();
}
public boolean isValid(Number num, ConstraintValidatorContext
constraintValidatorContext) {
@@ -50,13 +51,22 @@
if ( num instanceof BigDecimal ) {
bigNum = ( BigDecimal ) num;
}
- else {
+ else {
bigNum = new BigDecimal( num.toString() );
}
int integerPartLength = bigNum.precision() - bigNum.scale();
- int fractionPartLength = bigNum.scale() < 0 ? 0 : bigNum.scale() ;
+ int fractionPartLength = bigNum.scale() < 0 ? 0 : bigNum.scale();
return ( maxIntegerLength >= integerPartLength && maxFractionLength >=
fractionPartLength );
}
+
+ private void validateParameters() {
+ if ( maxIntegerLength < 0 ) {
+ throw new ValidationException( "The length of the interger part cannot be
negative." );
+ }
+ if ( maxFractionLength < 0 ) {
+ throw new ValidationException( "The length of the fraction part cannot be
negative." );
+ }
+ }
}
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/DigitsValidatorForString.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/DigitsValidatorForString.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/DigitsValidatorForString.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -1,4 +1,4 @@
-// $Id:$
+// $Id$
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
@@ -20,6 +20,7 @@
import java.math.BigDecimal;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ValidationException;
import javax.validation.constraints.Digits;
/**
@@ -28,7 +29,6 @@
*
* @author Alaa Nassef
* @author Hardy Ferentschik
- *
*/
public class DigitsValidatorForString implements ConstraintValidator<Digits,
String> {
@@ -38,6 +38,7 @@
public void initialize(Digits constraintAnnotation) {
this.maxIntegerLength = constraintAnnotation.integer();
this.maxFractionLength = constraintAnnotation.fraction();
+ validateParameters();
}
public boolean isValid(String str, ConstraintValidatorContext
constraintValidatorContext) {
@@ -52,7 +53,7 @@
}
int integerPartLength = bigNum.precision() - bigNum.scale();
- int fractionPartLength = bigNum.scale() < 0 ? 0 : bigNum.scale() ;
+ int fractionPartLength = bigNum.scale() < 0 ? 0 : bigNum.scale();
return ( maxIntegerLength >= integerPartLength && maxFractionLength >=
fractionPartLength );
}
@@ -67,4 +68,13 @@
}
return bd;
}
+
+ private void validateParameters() {
+ if ( maxIntegerLength < 0 ) {
+ throw new ValidationException( "The length of the interger part cannot be
negative." );
+ }
+ if ( maxFractionLength < 0 ) {
+ throw new ValidationException( "The length of the fraction part cannot be
negative." );
+ }
+ }
}
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthValidator.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthValidator.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/LengthValidator.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -19,6 +19,7 @@
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ValidationException;
/**
* Check that a string's length is between min and max.
@@ -33,6 +34,7 @@
public void initialize(Length parameters) {
min = parameters.min();
max = parameters.max();
+ validateParameters();
}
public boolean isValid(String value, ConstraintValidatorContext
constraintValidatorContext) {
@@ -43,4 +45,15 @@
return length >= min && length <= max;
}
+ private void validateParameters() {
+ if ( min < 0 ) {
+ throw new ValidationException( "The min parameter cannot be negative." );
+ }
+ if ( max < 0 ) {
+ throw new ValidationException( "The max paramter cannot be negative." );
+ }
+ if ( max < min ) {
+ throw new ValidationException( "The length cannot be negative." );
+ }
+ }
}
\ No newline at end of file
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternValidator.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternValidator.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/PatternValidator.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -18,8 +18,10 @@
package org.hibernate.validation.constraints;
import java.util.regex.Matcher;
+import java.util.regex.PatternSyntaxException;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ValidationException;
import javax.validation.constraints.Pattern;
/**
@@ -31,16 +33,17 @@
public void initialize(Pattern parameters) {
Pattern.Flag flags[] = parameters.flags();
- if ( flags.length == 0 ) {
- pattern = java.util.regex.Pattern.compile( parameters.regexp() );
+ int intFlag = 0;
+ for ( Pattern.Flag flag : flags ) {
+ intFlag = intFlag | mapFlagToInt( flag );
}
- else {
- int intFlag = 0;
- for ( Pattern.Flag flag : flags ) {
- intFlag = intFlag | mapFlagToInt( flag );
- }
+
+ try {
pattern = java.util.regex.Pattern.compile( parameters.regexp(), intFlag );
}
+ catch ( PatternSyntaxException e ) {
+ throw new ValidationException( "Invalid regular expression.", e );
+ }
}
public boolean isValid(String value, ConstraintValidatorContext
constraintValidatorContext) {
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForArray.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForArray.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForArray.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -20,6 +20,7 @@
import java.lang.reflect.Array;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ValidationException;
import javax.validation.constraints.Size;
/**
@@ -34,6 +35,7 @@
public void initialize(Size parameters) {
min = parameters.min();
max = parameters.max();
+ validateParameters();
}
/**
@@ -53,4 +55,16 @@
int length = Array.getLength( array );
return length >= min && length <= max;
}
+
+ private void validateParameters() {
+ if ( min < 0 ) {
+ throw new ValidationException( "The min parameter cannot be negative." );
+ }
+ if ( max < 0 ) {
+ throw new ValidationException( "The max paramter cannot be negative." );
+ }
+ if ( max < min ) {
+ throw new ValidationException( "The length cannot be negative." );
+ }
+ }
}
\ No newline at end of file
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForCollection.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForCollection.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForCollection.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -20,6 +20,7 @@
import java.util.Collection;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ValidationException;
import javax.validation.constraints.Size;
/**
@@ -34,6 +35,7 @@
public void initialize(Size parameters) {
min = parameters.min();
max = parameters.max();
+ validateParameters();
}
/**
@@ -53,4 +55,16 @@
int length = collection.size();
return length >= min && length <= max;
}
+
+ private void validateParameters() {
+ if ( min < 0 ) {
+ throw new ValidationException( "The min parameter cannot be negative." );
+ }
+ if ( max < 0 ) {
+ throw new ValidationException( "The max paramter cannot be negative." );
+ }
+ if ( max < min ) {
+ throw new ValidationException( "The length cannot be negative." );
+ }
+ }
}
\ No newline at end of file
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForMap.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForMap.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForMap.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -20,6 +20,7 @@
import java.util.Map;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ValidationException;
import javax.validation.constraints.Size;
/**
@@ -34,6 +35,7 @@
public void initialize(Size parameters) {
min = parameters.min();
max = parameters.max();
+ validateParameters();
}
/**
@@ -53,4 +55,16 @@
int size = map.size();
return size >= min && size <= max;
}
+
+ private void validateParameters() {
+ if ( min < 0 ) {
+ throw new ValidationException( "The min parameter cannot be negative." );
+ }
+ if ( max < 0 ) {
+ throw new ValidationException( "The max paramter cannot be negative." );
+ }
+ if ( max < min ) {
+ throw new ValidationException( "The length cannot be negative." );
+ }
+ }
}
\ No newline at end of file
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForString.java
===================================================================
---
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForString.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/constraints/SizeValidatorForString.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -19,6 +19,7 @@
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import javax.validation.ValidationException;
import javax.validation.constraints.Size;
/**
@@ -35,6 +36,7 @@
public void initialize(Size parameters) {
min = parameters.min();
max = parameters.max();
+ validateParameters();
}
/**
@@ -53,4 +55,16 @@
int length = s.length();
return length >= min && length <= max;
}
+
+ private void validateParameters() {
+ if ( min < 0 ) {
+ throw new ValidationException( "The min parameter cannot be negative." );
+ }
+ if ( max < 0 ) {
+ throw new ValidationException( "The max paramter cannot be negative." );
+ }
+ if ( max < min ) {
+ throw new ValidationException( "The length cannot be negative." );
+ }
+ }
}
Modified:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/DigitsValidatorForNumberTest.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/DigitsValidatorForNumberTest.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/DigitsValidatorForNumberTest.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -18,6 +18,7 @@
package org.hibernate.validation.constraints;
import java.math.BigDecimal;
+import javax.validation.ValidationException;
import javax.validation.constraints.Digits;
import static org.junit.Assert.assertFalse;
@@ -36,7 +37,7 @@
@Test
public void testIsValid() {
- AnnotationDescriptor<Digits> descriptor = new AnnotationDescriptor( Digits.class
);
+ AnnotationDescriptor<Digits> descriptor = new AnnotationDescriptor<Digits>(
Digits.class );
descriptor.setValue( "integer", 5 );
descriptor.setValue( "fraction", 2 );
descriptor.setValue( "message", "{validator.digits}" );
@@ -64,7 +65,7 @@
@Test
public void testIsValidZeroLength() {
- AnnotationDescriptor<Digits> descriptor = new AnnotationDescriptor( Digits.class
);
+ AnnotationDescriptor<Digits> descriptor = new AnnotationDescriptor<Digits>(
Digits.class );
descriptor.setValue( "integer", 0 );
descriptor.setValue( "fraction", 0 );
descriptor.setValue( "message", "{validator.digits}" );
@@ -79,4 +80,29 @@
assertFalse( constraint.isValid( Double.valueOf( "500.2" ), null ) );
}
+ @Test(expected = ValidationException.class)
+ public void testNegativeIntegerLength() {
+
+ AnnotationDescriptor<Digits> descriptor = new AnnotationDescriptor<Digits>(
Digits.class );
+ descriptor.setValue( "integer", -1 );
+ descriptor.setValue( "fraction", 1 );
+ descriptor.setValue( "message", "{validator.digits}" );
+ Digits p = AnnotationFactory.create( descriptor );
+
+ DigitsValidatorForNumber constraint = new DigitsValidatorForNumber();
+ constraint.initialize( p );
+ }
+
+ @Test(expected = ValidationException.class)
+ public void testNegativeFractionLength() {
+
+ AnnotationDescriptor<Digits> descriptor = new AnnotationDescriptor<Digits>(
Digits.class );
+ descriptor.setValue( "integer", 1 );
+ descriptor.setValue( "fraction", -1 );
+ descriptor.setValue( "message", "{validator.digits}" );
+ Digits p = AnnotationFactory.create( descriptor );
+
+ DigitsValidatorForNumber constraint = new DigitsValidatorForNumber();
+ constraint.initialize( p );
+ }
}
Modified:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/DigitsValidatorForStringTest.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/DigitsValidatorForStringTest.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/DigitsValidatorForStringTest.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -17,6 +17,7 @@
*/
package org.hibernate.validation.constraints;
+import javax.validation.ValidationException;
import javax.validation.constraints.Digits;
import static org.junit.Assert.assertFalse;
@@ -37,7 +38,7 @@
@BeforeClass
public static void init() {
- AnnotationDescriptor<Digits> descriptor = new AnnotationDescriptor( Digits.class
);
+ AnnotationDescriptor<Digits> descriptor = new AnnotationDescriptor<Digits>(
Digits.class );
descriptor.setValue( "integer", 5 );
descriptor.setValue( "fraction", 2 );
descriptor.setValue( "message", "{validator.digits}" );
@@ -60,4 +61,30 @@
assertFalse( constraint.isValid( "256874.0", null ) );
assertFalse( constraint.isValid( "12.0001", null ) );
}
+
+ @Test(expected = ValidationException.class)
+ public void testNegativeIntegerLength() {
+
+ AnnotationDescriptor<Digits> descriptor = new AnnotationDescriptor<Digits>(
Digits.class );
+ descriptor.setValue( "integer", -1 );
+ descriptor.setValue( "fraction", 1 );
+ descriptor.setValue( "message", "{validator.digits}" );
+ Digits p = AnnotationFactory.create( descriptor );
+
+ DigitsValidatorForString constraint = new DigitsValidatorForString();
+ constraint.initialize( p );
+ }
+
+ @Test(expected = ValidationException.class)
+ public void testNegativeFractionLength() {
+
+ AnnotationDescriptor<Digits> descriptor = new AnnotationDescriptor<Digits>(
Digits.class );
+ descriptor.setValue( "integer", 1 );
+ descriptor.setValue( "fraction", -1 );
+ descriptor.setValue( "message", "{validator.digits}" );
+ Digits p = AnnotationFactory.create( descriptor );
+
+ DigitsValidatorForString constraint = new DigitsValidatorForString();
+ constraint.initialize( p );
+ }
}
Modified:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/LengthValidatorTest.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/LengthValidatorTest.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/LengthValidatorTest.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -17,9 +17,10 @@
*/
package org.hibernate.validation.constraints;
+import javax.validation.ValidationException;
+
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.hibernate.validation.util.annotationfactory.AnnotationDescriptor;
@@ -32,22 +33,15 @@
*/
public class LengthValidatorTest {
- private static LengthValidator constraint;
-
- @BeforeClass
- public static void init() {
+ @Test
+ public void testIsValid() {
AnnotationDescriptor<Length> descriptor = new AnnotationDescriptor<Length>(
Length.class );
descriptor.setValue( "min", 1 );
descriptor.setValue( "max", 3 );
descriptor.setValue( "message", "{validator.length}" );
Length l = AnnotationFactory.create( descriptor );
- constraint = new LengthValidator();
+ LengthValidator constraint = new LengthValidator();
constraint.initialize( l );
- }
-
- @Test
- public void testIsValid() {
-
assertTrue( constraint.isValid( null, null ) );
assertFalse( constraint.isValid( "", null ) );
assertTrue( constraint.isValid( "f", null ) );
@@ -55,4 +49,40 @@
assertTrue( constraint.isValid( "foo", null ) );
assertFalse( constraint.isValid( "foobar", null ) );
}
+
+ @Test(expected = ValidationException.class)
+ public void testNegativeMinValue() {
+ AnnotationDescriptor<Length> descriptor = new AnnotationDescriptor<Length>(
Length.class );
+ descriptor.setValue( "min", -1 );
+ descriptor.setValue( "max", 1 );
+ descriptor.setValue( "message", "{validator.length}" );
+ Length p = AnnotationFactory.create( descriptor );
+
+ LengthValidator constraint = new LengthValidator();
+ constraint.initialize( p );
+ }
+
+ @Test(expected = ValidationException.class)
+ public void testNegativeMaxValue() {
+ AnnotationDescriptor<Length> descriptor = new AnnotationDescriptor<Length>(
Length.class );
+ descriptor.setValue( "min", 1 );
+ descriptor.setValue( "max", -1 );
+ descriptor.setValue( "message", "{validator.length}" );
+ Length p = AnnotationFactory.create( descriptor );
+
+ LengthValidator constraint = new LengthValidator();
+ constraint.initialize( p );
+ }
+
+ @Test(expected = ValidationException.class)
+ public void testNegativeLength() {
+ AnnotationDescriptor<Length> descriptor = new AnnotationDescriptor<Length>(
Length.class );
+ descriptor.setValue( "min", 5 );
+ descriptor.setValue( "max", 4 );
+ descriptor.setValue( "message", "{validator.length}" );
+ Length p = AnnotationFactory.create( descriptor );
+
+ LengthValidator constraint = new LengthValidator();
+ constraint.initialize( p );
+ }
}
Modified:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/MaxValidatorForStringTest.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/MaxValidatorForStringTest.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/MaxValidatorForStringTest.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -21,9 +21,8 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import org.junit.Before;
-import org.junit.Test;
import org.junit.BeforeClass;
+import org.junit.Test;
import org.hibernate.validation.util.annotationfactory.AnnotationDescriptor;
import org.hibernate.validation.util.annotationfactory.AnnotationFactory;
@@ -37,7 +36,7 @@
@BeforeClass
public static void init() {
- AnnotationDescriptor<Max> descriptor = new AnnotationDescriptor( Max.class );
+ AnnotationDescriptor<Max> descriptor = new AnnotationDescriptor<Max>(
Max.class );
descriptor.setValue( "value", 15l );
descriptor.setValue( "message", "{validator.max}" );
Max m = AnnotationFactory.create( descriptor );
Modified:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/MinValidatorForStringTest.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/MinValidatorForStringTest.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/MinValidatorForStringTest.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -36,7 +36,7 @@
@BeforeClass
public static void init() {
- AnnotationDescriptor<Min> descriptor = new AnnotationDescriptor( Min.class );
+ AnnotationDescriptor<Min> descriptor = new AnnotationDescriptor<Min>(
Min.class );
descriptor.setValue( "value", 15l );
descriptor.setValue( "message", "{validator.min}" );
Min m = AnnotationFactory.create( descriptor );
Modified:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/PatternValidatorTest.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/PatternValidatorTest.java 2009-03-06
18:42:49 UTC (rev 16100)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/PatternValidatorTest.java 2009-03-06
20:34:24 UTC (rev 16101)
@@ -17,11 +17,11 @@
*/
package org.hibernate.validation.constraints;
+import javax.validation.ValidationException;
import javax.validation.constraints.Pattern;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.hibernate.validation.util.annotationfactory.AnnotationDescriptor;
@@ -32,26 +32,31 @@
*/
public class PatternValidatorTest {
- private static PatternValidator constraint;
-
- @BeforeClass
- public static void init() {
-
- AnnotationDescriptor<Pattern> descriptor = new AnnotationDescriptor(
Pattern.class );
+ @Test
+ public void testIsValid() {
+ AnnotationDescriptor<Pattern> descriptor = new
AnnotationDescriptor<Pattern>( Pattern.class );
descriptor.setValue( "regexp", "foobar" );
descriptor.setValue( "message", "{validator.pattern}" );
Pattern p = AnnotationFactory.create( descriptor );
- constraint = new PatternValidator();
+ PatternValidator constraint = new PatternValidator();
constraint.initialize( p );
- }
- @Test
- public void testIsValid() {
assertTrue( constraint.isValid( null, null ) );
assertFalse( constraint.isValid( "", null ) );
assertFalse( constraint.isValid( "bla bla", null ) );
assertFalse( constraint.isValid( "This test is not foobar", null ) );
}
+
+ @Test(expected = ValidationException.class)
+ public void testInvalidRegularExpression() {
+ AnnotationDescriptor<Pattern> descriptor = new
AnnotationDescriptor<Pattern>( Pattern.class );
+ descriptor.setValue( "regexp", "(unbalanced parentheses" );
+ descriptor.setValue( "message", "{validator.pattern}" );
+ Pattern p = AnnotationFactory.create( descriptor );
+
+ PatternValidator constraint = new PatternValidator();
+ constraint.initialize( p );
+ }
}