123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package com.vaadin.v7.tests.server.validation;
-
- import org.junit.Assert;
- import org.junit.Test;
-
- import com.vaadin.tests.data.bean.BeanToValidate;
- import com.vaadin.v7.data.Validator.InvalidValueException;
- import com.vaadin.v7.data.fieldgroup.BeanFieldGroup;
- import com.vaadin.v7.data.validator.BeanValidator;
- import com.vaadin.v7.ui.Field;
-
- public class BeanValidationTest {
- @Test(expected = InvalidValueException.class)
- public void testBeanValidationNull() {
- BeanValidator validator = new BeanValidator(BeanToValidate.class,
- "firstname");
- validator.validate(null);
- }
-
- @Test(expected = InvalidValueException.class)
- public void testBeanValidationStringTooShort() {
- BeanValidator validator = new BeanValidator(BeanToValidate.class,
- "firstname");
- validator.validate("aa");
- }
-
- @Test
- public void testBeanValidationStringOk() {
- BeanValidator validator = new BeanValidator(BeanToValidate.class,
- "firstname");
- validator.validate("aaa");
- }
-
- @Test(expected = InvalidValueException.class)
- public void testBeanValidationIntegerTooSmall() {
- BeanValidator validator = new BeanValidator(BeanToValidate.class,
- "age");
- validator.validate(17);
- }
-
- @Test
- public void testBeanValidationIntegerOk() {
- BeanValidator validator = new BeanValidator(BeanToValidate.class,
- "age");
- validator.validate(18);
- }
-
- @Test(expected = InvalidValueException.class)
- public void testBeanValidationTooManyDigits() {
- BeanValidator validator = new BeanValidator(BeanToValidate.class,
- "decimals");
- validator.validate("1234.567");
- }
-
- @Test
- public void testBeanValidationDigitsOk() {
- BeanValidator validator = new BeanValidator(BeanToValidate.class,
- "decimals");
- validator.validate("123.45");
- }
-
- @Test
- public void testBeanValidationException_OneValidationError() {
- InvalidValueException[] causes = null;
- BeanValidator validator = new BeanValidator(BeanToValidate.class,
- "lastname");
- try {
- validator.validate(null);
- } catch (InvalidValueException e) {
- causes = e.getCauses();
- }
-
- Assert.assertEquals(1, causes.length);
- }
-
- @Test
- public void testBeanValidationsException_TwoValidationErrors() {
- InvalidValueException[] causes = null;
- BeanValidator validator = new BeanValidator(BeanToValidate.class,
- "nickname");
- try {
- validator.validate("A");
- } catch (InvalidValueException e) {
- causes = e.getCauses();
- }
-
- Assert.assertEquals(2, causes.length);
- }
-
- @Test
- public void testBeanValidationNotAddedTwice() {
- // See ticket #11045
- BeanFieldGroup<BeanToValidate> fieldGroup = new BeanFieldGroup<BeanToValidate>(
- BeanToValidate.class);
-
- BeanToValidate beanToValidate = new BeanToValidate();
- beanToValidate.setFirstname("a");
- fieldGroup.setItemDataSource(beanToValidate);
-
- Field<?> nameField = fieldGroup.buildAndBind("firstname");
- Assert.assertEquals(1, nameField.getValidators().size());
-
- try {
- nameField.validate();
- } catch (InvalidValueException e) {
- // The 1 cause is from BeanValidator, where it tells what failed
- // 1 validation exception never gets wrapped.
- Assert.assertEquals(1, e.getCauses().length);
- }
-
- // Create new, identical bean to cause duplicate validator unless #11045
- // is fixed
- beanToValidate = new BeanToValidate();
- beanToValidate.setFirstname("a");
- fieldGroup.setItemDataSource(beanToValidate);
-
- Assert.assertEquals(1, nameField.getValidators().size());
-
- try {
- nameField.validate();
- } catch (InvalidValueException e) {
- // The 1 cause is from BeanValidator, where it tells what failed
- // 1 validation exception never gets wrapped.
- Assert.assertEquals(1, e.getCauses().length);
- }
-
- }
-
- }
|