Валидатор hibernate 4.2.0 Final @CreditCardNumber - PullRequest
0 голосов
/ 22 июня 2011
@Autowired
private Validator validator;

    @Test
        public void testValidateMethodOfPaymentBadCreditCard() {
            final MethodOfPayment mop = new MethodOfPayment();
            command.setDescription("1234567890");
            final Set<ConstraintViolation<MethodOfPayment>> constraintViolations = this.validator.validateProperty(mop, "cardNumber", Default.class);
            Assert.assertFalse(constraintViolations.isEmpty());
            for (final ConstraintViolation<MethodOfPayment> cv : constraintViolations) {
                Assert.assertEquals(cv.getMessage(), "{error.invalid.cardNumber}");
            }
        }

Класс модуля имеет экземпляр define в моем xml.

<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>

мой метод оплаты помечен

@CreditCardNumber(message="{error.invalid.cardNumber}")
    public String getCardNumber() {
        return this.cardNumber;
    }

Этот тест не проходит в режиме онлайн, говоря, что нарушение ограничения пусто. Я думал, что это не должно быть пустым, верно?

Что не так? Какие данные не подтверждаются при проверке кредитной карты?

1 Ответ

0 голосов
/ 23 июня 2011

null считается допустимым значением для большинства ограничений, определенных в Bean Validation и Hibernate Validator.

Следовательно, вы не получите нарушения ограничения, если не присвоите значение свойству cardNumber или не аннотируете его с помощью @NotNull (кстати, ваш список кажется немного странным, откуда берется command ?)

Валидатор для @CreditCardNumber использует алгоритм Луна для проверки номеров кредитных карт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...