]> source.dussan.org Git - vaadin-framework.git/blob
02aa6afe07956061218284bf7ba6b78f5dbd3cf8
[vaadin-framework.git] /
1 package com.vaadin.tests.server.component.abstractfield;
2
3 import junit.framework.TestCase;
4
5 import org.junit.Assert;
6
7 import com.vaadin.data.Validator.InvalidValueException;
8 import com.vaadin.data.util.MethodProperty;
9 import com.vaadin.data.util.converter.Converter.ConversionException;
10 import com.vaadin.data.util.converter.StringToIntegerConverter;
11 import com.vaadin.tests.data.bean.Address;
12 import com.vaadin.tests.data.bean.Country;
13 import com.vaadin.tests.data.bean.Person;
14 import com.vaadin.tests.data.bean.Sex;
15 import com.vaadin.ui.TextField;
16
17 public class AbsFieldValueConversionErrorTest extends TestCase {
18
19     Person paulaBean = new Person("Paula", "Brilliant", "paula@brilliant.com",
20             34, Sex.FEMALE, new Address("Paula street 1", 12345, "P-town",
21                     Country.FINLAND));
22
23     public void testValidateConversionErrorParameters() {
24         TextField tf = new TextField();
25         tf.setConverter(new StringToIntegerConverter());
26         tf.setPropertyDataSource(new MethodProperty<String>(paulaBean, "age"));
27         tf.setConversionError("(Type: {0}) Converter exception message: {1}");
28         tf.setValue("abc");
29         try {
30             tf.validate();
31             fail();
32         } catch (InvalidValueException e) {
33             Assert.assertEquals(
34                     "(Type: Integer) Converter exception message: Could not convert 'abc' to java.lang.Integer",
35                     e.getMessage());
36         }
37
38     }
39
40     public void testConvertToModelConversionErrorParameters() {
41         TextField tf = new TextField();
42         tf.setConverter(new StringToIntegerConverter());
43         tf.setPropertyDataSource(new MethodProperty<String>(paulaBean, "age"));
44         tf.setConversionError("(Type: {0}) Converter exception message: {1}");
45         tf.setValue("abc");
46         try {
47             tf.getConvertedValue();
48             fail();
49         } catch (ConversionException e) {
50             Assert.assertEquals(
51                     "(Type: Integer) Converter exception message: Could not convert 'abc' to java.lang.Integer",
52                     e.getMessage());
53         }
54
55     }
56
57     public void testNullConversionMessages() {
58         TextField tf = new TextField();
59         tf.setConverter(new StringToIntegerConverter());
60         tf.setPropertyDataSource(new MethodProperty<String>(paulaBean, "age"));
61         tf.setConversionError(null);
62         tf.setValue("abc");
63         try {
64             tf.validate();
65             fail();
66         } catch (InvalidValueException e) {
67             Assert.assertEquals(null, e.getMessage());
68         }
69
70     }
71
72     public void testDefaultConversionErrorMessage() {
73         TextField tf = new TextField();
74         tf.setConverter(new StringToIntegerConverter());
75         tf.setPropertyDataSource(new MethodProperty<String>(paulaBean, "age"));
76         tf.setValue("abc");
77
78         try {
79             tf.validate();
80             fail();
81         } catch (InvalidValueException e) {
82             Assert.assertEquals("Could not convert value to Integer",
83                     e.getMessage());
84         }
85
86     }
87 }