1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
package com.vaadin.v7.tests.server.validation;
import static org.junit.Assert.assertEquals;
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();
}
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();
}
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");
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.
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);
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.
assertEquals(1, e.getCauses().length);
}
}
}
|