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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
package com.vaadin.v7.tests.data.converter;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.Vector;
import org.junit.Test;
import com.vaadin.v7.data.util.converter.StringToCollectionConverter;
import com.vaadin.v7.data.util.converter.StringToCollectionConverter.CollectionFactory;
import com.vaadin.v7.data.util.converter.StringToEnumConverter;
import com.vaadin.v7.data.util.converter.StringToIntegerConverter;
/**
* Tests for {@link StringToCollectionConverter}.
*
* @author Vaadin Ltd
*/
public class StringToCollectionConverterTest {
@Test
public void convertToModel_defaultCtor() {
StringToCollectionConverter converter = new StringToCollectionConverter();
Collection<?> model = converter.convertToModel("a, b, c", List.class,
null);
assertTrue("Unexpected model class", model instanceof ArrayList);
Iterator<?> iterator = model.iterator();
assertEquals("Incorrect fist token", "a", iterator.next());
assertEquals("Incorrect second token", "b", iterator.next());
assertEquals("Incorrect third token", "c", iterator.next());
}
@Test
public void convertToModel_customDelimiter() {
StringToCollectionConverter converter = new StringToCollectionConverter(
"x");
Collection<?> model = converter.convertToModel("axbxc", List.class,
null);
assertTrue("Unexpected model class", model instanceof ArrayList);
Iterator<?> iterator = model.iterator();
assertEquals("Incorrect fist token", "a", iterator.next());
assertEquals("Incorrect second token", "b", iterator.next());
assertEquals("Incorrect third token", "c", iterator.next());
}
@Test
public void convertToModel_customConverter() {
StringToCollectionConverter converter = new StringToCollectionConverter(
",", new StringToIntegerConverter(), Integer.class);
Collection<?> model = converter.convertToModel("6,2,5", List.class,
null);
assertTrue("Unexpected model class", model instanceof ArrayList);
Iterator<?> iterator = model.iterator();
assertEquals("Incorrect fist token", 6, iterator.next());
assertEquals("Incorrect second token", 2, iterator.next());
assertEquals("Incorrect third token", 5, iterator.next());
}
@Test
public void convertToModel_setAsCollection() {
StringToCollectionConverter converter = new StringToCollectionConverter(
" ", new StringToEnumConverter(), TestEnum.class);
Collection<?> model = converter.convertToModel("Z X Y", Set.class,
null);
assertTrue("Unexpected model class", model instanceof HashSet);
EnumSet<TestEnum> set = EnumSet.allOf(TestEnum.class);
set.removeAll(model);
assertTrue("Some values are not in resutling collection",
set.isEmpty());
}
@Test
public void convertToModel_customFactory() {
CollectionFactory factory = new CollectionFactory() {
@Override
public Collection<?> createCollection(
Class<? extends Collection> type) {
return new Vector();
}
};
StringToCollectionConverter converter = new StringToCollectionConverter(
", ", null, String.class, factory);
Collection<?> model = converter.convertToModel("a, b, c",
Collection.class, null);
assertTrue("Unexpected model class", model instanceof Vector);
Iterator<?> iterator = model.iterator();
assertEquals("Incorrect fist token", "a", iterator.next());
assertEquals("Incorrect second token", "b", iterator.next());
assertEquals("Incorrect third token", "c", iterator.next());
}
@Test
public void convertToPresentation_default() {
StringToCollectionConverter converter = new StringToCollectionConverter();
String presentation = converter.convertToPresentation(
Arrays.asList("a", "b", "c"), String.class, null);
assertEquals("a, b, c", presentation);
}
@Test
public void convertToPresentation_customDelimiter() {
StringToCollectionConverter converter = new StringToCollectionConverter(
"x");
String presentation = converter.convertToPresentation(
Arrays.asList("a", "b", "c"), String.class, null);
assertEquals("axbxc", presentation);
}
@Test
public void convertToPresentation_customConverter() {
StringToCollectionConverter converter = new StringToCollectionConverter(
",", new StringToEnumConverter(), TestEnum.class);
String presentation = converter.convertToPresentation(
Arrays.asList(TestEnum.Z, TestEnum.Y), String.class, null);
assertEquals("Z,Y", presentation);
}
@Test
public void convertToModel_singleItem() {
StringToCollectionConverter converter = new StringToCollectionConverter();
Collection<?> model = converter.convertToModel("a", List.class, null);
Iterator<?> iterator = model.iterator();
assertEquals("Incorrect fist token", "a", iterator.next());
assertFalse("More than one item detected after conversation",
iterator.hasNext());
}
@Test
public void convertToModel_null() {
StringToCollectionConverter converter = new StringToCollectionConverter();
assertNull(converter.convertToModel(null, ArrayList.class,
Locale.ENGLISH));
}
@Test
public void convertToPresentation_null() {
StringToCollectionConverter converter = new StringToCollectionConverter();
assertNull(converter.convertToPresentation(null, String.class,
Locale.ENGLISH));
}
public enum TestEnum {
X, Y, Z;
}
}
|