@Test
public void testPasswords() throws PasswordPolicyException {
checkForException(null, IS_NULL);
validator.validatePassword("".toCharArray());
validator.validatePassword("a".toCharArray());
checkForException("plain:a", RESERVED_PREFIX_$1, "plain:");
checkForException("crypt1:a", RESERVED_PREFIX_$1, "crypt1:");
checkForException("digest1:a", RESERVED_PREFIX_$1, "digest1:");
validator.validatePassword("plain".toCharArray());
validator.validatePassword("plaina".toCharArray());
config.setMinLength(2);
checkForException("a", MIN_LENGTH_$1, 2);
validator.validatePassword("aa".toCharArray());
config.setMaxLength(10);
checkForException("01234567890", MAX_LENGTH_$1, 10);
validator.validatePassword("0123456789".toCharArray());
config.setDigitRequired(true);
checkForException("abcdef", NO_DIGIT);
validator.validatePassword("abcde4".toCharArray());
config.setUppercaseRequired(true);
checkForException("abcdef4", NO_UPPERCASE);
validator.validatePassword("abcde4F".toCharArray());
config.setLowercaseRequired(true);
checkForException("ABCDE4F", NO_LOWERCASE);
validator.validatePassword("abcde4F".toCharArray());
}