[hibernate-commits] Hibernate SVN: r16101 - in validator/trunk/hibernate-validator/src: test/java/org/hibernate/validation/constraints and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Mar 6 15:34:25 EST 2009


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 );
+	}
 }




More information about the hibernate-commits mailing list