[hibernate-commits] Hibernate SVN: r16475 - core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Apr 29 10:45:15 EDT 2009


Author: epbernard
Date: 2009-04-29 10:45:14 -0400 (Wed, 29 Apr 2009)
New Revision: 16475

Added:
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationProvidedFactoryTest.java
Log:
ANN-827 add initial support for Bean Validation

Copied: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationProvidedFactoryTest.java (from rev 16474, core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationAutoTest.java)
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationProvidedFactoryTest.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationProvidedFactoryTest.java	2009-04-29 14:45:14 UTC (rev 16475)
@@ -0,0 +1,61 @@
+package org.hibernate.test.annotations.beanvalidation;
+
+import java.math.BigDecimal;
+import java.util.Locale;
+import javax.validation.ConstraintViolationException;
+import javax.validation.MessageInterpolator;
+import javax.validation.Validation;
+import javax.validation.ValidatorFactory;
+
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.test.annotations.TestCase;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class BeanValidationProvidedFactoryTest extends TestCase {
+	public void testListeners() {
+		CupHolder ch = new CupHolder();
+		ch.setRadius( new BigDecimal( "12" ) );
+		Session s = openSession(  );
+		Transaction tx = s.beginTransaction();
+		try {
+			s.persist( ch );
+			s.flush();
+			fail("invalid object should not be persisted");
+		}
+		catch ( ConstraintViolationException e ) {
+			assertEquals( 1, e.getConstraintViolations().size() );
+			assertEquals( "Oops", e.getConstraintViolations().iterator().next().getMessage() );
+		}
+		tx.rollback();
+		s.close();
+	}
+
+	protected Class<?>[] getMappings() {
+		return new Class<?>[] {
+				CupHolder.class
+		};
+	}
+
+	@Override
+	protected void configure(Configuration cfg) {
+		super.configure( cfg );
+		final MessageInterpolator messageInterpolator = new MessageInterpolator() {
+
+			public String interpolate(String s, Context context) {
+				return "Oops";
+			}
+
+			public String interpolate(String s, Context context, Locale locale) {
+				return interpolate( s, context );
+			}
+		};
+		final javax.validation.Configuration<?> configuration = Validation.byDefaultProvider().configure();
+		configuration.messageInterpolator( messageInterpolator );
+		ValidatorFactory vf = configuration.buildValidatorFactory();
+		cfg.getProperties().put( "javax.persistence.validation.factory", vf);
+	}
+}
\ No newline at end of file




More information about the hibernate-commits mailing list