package org.grails.validation; import grails.validation.AbstractConstraintTests; import grails.validation.ConstrainedProperty; import grails.validation.TestClass; /** * Test cases for 'email' constraint. * * @author Sergey Nebolsin (<a href="mailto:nebolsin@gmail.com"/>) */ public class EmailConstraintTests extends AbstractConstraintTests { @Override protected Class<?> getConstraintClass() { return EmailConstraint.class; } public void testValidation() { testConstraintMessageCodes( getConstraint("testString", Boolean.TRUE), "wrong_email", new String[] {"testClass.testString.email.error","testClass.testString.email.invalid"}, new Object[] {"testString",TestClass.class,"wrong_email"}); testConstraintPassed( getConstraint("testString", Boolean.TRUE), "test@example.com"); testConstraintDefaultMessage( getConstraint("testString", Boolean.TRUE), "wrong_email", "Property [{0}] of class [{1}] with value [{2}] is not a valid e-mail address"); } public void testNullValue() { // must always pass for null value testConstraintPassed( getConstraint("testString", Boolean.TRUE), null); } public void testBlankString() { // must always pass for blank value testConstraintPassed( getConstraint("testString", Boolean.TRUE), ""); } public void testCreation() { EmailConstraint constraint = new EmailConstraint(); assertEquals(ConstrainedProperty.EMAIL_CONSTRAINT, constraint.getName()); assertTrue(constraint.supports(String.class)); assertFalse(constraint.supports(null)); assertFalse(constraint.supports(Long.class)); try { getConstraint("testString", "wrong"); fail("EmailConstraint must throw an exception for non-boolean parameters."); } catch (IllegalArgumentException iae) { // Great } } }