package org.grails.validation;
import grails.validation.AbstractConstraintTests;
import grails.validation.ConstrainedProperty;
import grails.validation.TestClass;
/**
* Tests for 'blank' constraint.
*
* @author Sergey Nebolsin (<a href="mailto:nebolsin@gmail.com"/>)
*/
public class BlankConstraintTests extends AbstractConstraintTests {
@Override
protected Class<?> getConstraintClass() {
return BlankConstraint.class;
}
public void testValidate() {
testConstraintMessageCodes(
getConstraint("testString", Boolean.FALSE),
"",
new String[] {"testClass.testString.blank.error","testClass.testString.blank"},
new Object[] {"testString", TestClass.class });
testConstraintPassed(
getConstraint("testString", Boolean.FALSE),
"someData");
testConstraintPassed(
getConstraint("testString", Boolean.TRUE),
"someData");
testConstraintFailedAndVetoed(
getConstraint("testString", Boolean.FALSE),
"");
testConstraintFailed(
getConstraint("testString", Boolean.FALSE),
" ");
testConstraintDefaultMessage(
getConstraint("testString", Boolean.FALSE),
"",
"Property [{0}] of class [{1}] cannot be blank");
}
public void testConstraintCreation() {
BlankConstraint constraint = new BlankConstraint();
assertEquals(ConstrainedProperty.BLANK_CONSTRAINT, constraint.getName());
assertTrue(constraint.supports(String.class));
assertFalse(constraint.supports(null));
assertFalse(constraint.supports(Long.class));
constraint = (BlankConstraint) getConstraint("testString", Boolean.TRUE);
assertEquals(Boolean.TRUE, constraint.getParameter());
try {
getConstraint("testString", "wrong");
fail("BlankConstraint must throw an exception for non-boolean parameters.");
} catch (IllegalArgumentException iae) {
// Great
}
}
}