KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > alfresco > service > cmr > repository > datatype > ValueConverterTest


1 /*
2  * Copyright (C) 2005 Alfresco, Inc.
3  *
4  * Licensed under the Mozilla Public License version 1.1
5  * with a permitted attribution clause. You may obtain a
6  * copy of the License at
7  *
8  * http://www.alfresco.org/legal/license.txt
9  *
10  * Unless required by applicable law or agreed to in writing,
11  * software distributed under the License is distributed on an
12  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13  * either express or implied. See the License for the specific
14  * language governing permissions and limitations under the
15  * License.
16  */

17 package org.alfresco.service.cmr.repository.datatype;
18
19 import java.math.BigDecimal JavaDoc;
20 import java.math.BigInteger JavaDoc;
21 import java.util.ArrayList JavaDoc;
22 import java.util.Date JavaDoc;
23 import java.util.Iterator JavaDoc;
24
25 import junit.framework.TestCase;
26
27 import org.alfresco.util.CachingDateFormat;
28
29 public class ValueConverterTest extends TestCase
30 {
31
32     public ValueConverterTest()
33     {
34         super();
35     }
36
37     public ValueConverterTest(String JavaDoc arg0)
38     {
39         super(arg0);
40     }
41
42     public void testPrimitives()
43     {
44         assertEquals(Boolean.valueOf(false), ValueConverter.convert(Boolean JavaDoc.class, false));
45         assertEquals(Boolean.valueOf(true), ValueConverter.convert(Boolean JavaDoc.class, true));
46         assertEquals(Character.valueOf('a'), ValueConverter.convert(Character JavaDoc.class, 'a'));
47         assertEquals(Byte.valueOf("3"), ValueConverter.convert(Byte JavaDoc.class, (byte) 3));
48         assertEquals(Short.valueOf("4"), ValueConverter.convert(Short JavaDoc.class, (short) 4));
49         assertEquals(Integer.valueOf("5"), ValueConverter.convert(Integer JavaDoc.class, (int) 5));
50         assertEquals(Long.valueOf("6"), ValueConverter.convert(Long JavaDoc.class, (long) 6));
51         assertEquals(Float.valueOf("7.1"), ValueConverter.convert(Float JavaDoc.class, (float) 7.1));
52         assertEquals(Double.valueOf("123.123"), ValueConverter.convert(Double JavaDoc.class, (double) 123.123));
53     }
54
55     public void testNoConversion()
56     {
57         assertEquals(Boolean.valueOf(false), ValueConverter.convert(Boolean JavaDoc.class, Boolean.valueOf(false)));
58         assertEquals(Boolean.valueOf(true), ValueConverter.convert(Boolean JavaDoc.class, Boolean.valueOf(true)));
59         assertEquals(Character.valueOf('w'), ValueConverter.convert(Character JavaDoc.class, Character.valueOf('w')));
60         assertEquals(Byte.valueOf("3"), ValueConverter.convert(Byte JavaDoc.class, Byte.valueOf("3")));
61         assertEquals(Short.valueOf("4"), ValueConverter.convert(Short JavaDoc.class, Short.valueOf("4")));
62         assertEquals(Integer.valueOf("5"), ValueConverter.convert(Integer JavaDoc.class, Integer.valueOf("5")));
63         assertEquals(Long.valueOf("6"), ValueConverter.convert(Long JavaDoc.class, Long.valueOf("6")));
64         assertEquals(Float.valueOf("7.1"), ValueConverter.convert(Float JavaDoc.class, Float.valueOf("7.1")));
65         assertEquals(Double.valueOf("123.123"), ValueConverter.convert(Double JavaDoc.class, Double.valueOf("123.123")));
66         assertEquals(Double.valueOf("123.123"), ValueConverter.convert(Double JavaDoc.class, Double.valueOf("123.123")));
67         assertEquals(new BigInteger JavaDoc("1234567890123456789"), ValueConverter.convert(BigInteger JavaDoc.class, new BigInteger JavaDoc("1234567890123456789")));
68         assertEquals(new BigDecimal JavaDoc("12345678901234567890.12345678901234567890"), ValueConverter.convert(BigDecimal JavaDoc.class, new BigDecimal JavaDoc("12345678901234567890.12345678901234567890")));
69         Date JavaDoc date = new Date JavaDoc();
70         assertEquals(date, ValueConverter.convert(Date JavaDoc.class, date));
71         assertEquals(new Duration("P25D"), ValueConverter.convert(Duration.class, new Duration("P25D")));
72         assertEquals("woof", ValueConverter.convert(String JavaDoc.class, "woof"));
73     }
74
75     public void testToString()
76     {
77         assertEquals("true", ValueConverter.convert(String JavaDoc.class, new Boolean JavaDoc(true)));
78         assertEquals("false", ValueConverter.convert(String JavaDoc.class, new Boolean JavaDoc(false)));
79         assertEquals("v", ValueConverter.convert(String JavaDoc.class, Character.valueOf('v')));
80         assertEquals("3", ValueConverter.convert(String JavaDoc.class, Byte.valueOf("3")));
81         assertEquals("4", ValueConverter.convert(String JavaDoc.class, Short.valueOf("4")));
82         assertEquals("5", ValueConverter.convert(String JavaDoc.class, Integer.valueOf("5")));
83         assertEquals("6", ValueConverter.convert(String JavaDoc.class, Long.valueOf("6")));
84         assertEquals("7.1", ValueConverter.convert(String JavaDoc.class, Float.valueOf("7.1")));
85         assertEquals("123.123", ValueConverter.convert(String JavaDoc.class, Double.valueOf("123.123")));
86         assertEquals("1234567890123456789", ValueConverter.convert(String JavaDoc.class, new BigInteger JavaDoc("1234567890123456789")));
87         assertEquals("12345678901234567890.12345678901234567890", ValueConverter.convert(String JavaDoc.class, new BigDecimal JavaDoc("12345678901234567890.12345678901234567890")));
88         Date JavaDoc date = new Date JavaDoc();
89         assertEquals(CachingDateFormat.getDateFormat().format(date), ValueConverter.convert(String JavaDoc.class, date));
90         assertEquals("P0Y25D", ValueConverter.convert(String JavaDoc.class, new Duration("P0Y25D")));
91         assertEquals("woof", ValueConverter.convert(String JavaDoc.class, "woof"));
92     }
93
94     public void testFromString()
95     {
96         assertEquals(Boolean.valueOf(true), ValueConverter.convert(Boolean JavaDoc.class, "True"));
97         assertEquals(Boolean.valueOf(false), ValueConverter.convert(Boolean JavaDoc.class, "woof"));
98         assertEquals(Character.valueOf('w'), ValueConverter.convert(Character JavaDoc.class, "w"));
99         assertEquals(Byte.valueOf("3"), ValueConverter.convert(Byte JavaDoc.class, "3"));
100         assertEquals(Short.valueOf("4"), ValueConverter.convert(Short JavaDoc.class, "4"));
101         assertEquals(Integer.valueOf("5"), ValueConverter.convert(Integer JavaDoc.class, "5"));
102         assertEquals(Long.valueOf("6"), ValueConverter.convert(Long JavaDoc.class, "6"));
103         assertEquals(Float.valueOf("7.1"), ValueConverter.convert(Float JavaDoc.class, "7.1"));
104         assertEquals(Double.valueOf("123.123"), ValueConverter.convert(Double JavaDoc.class, "123.123"));
105         assertEquals(new BigInteger JavaDoc("1234567890123456789"), ValueConverter.convert(BigInteger JavaDoc.class, "1234567890123456789"));
106         assertEquals(new BigDecimal JavaDoc("12345678901234567890.12345678901234567890"), ValueConverter.convert(BigDecimal JavaDoc.class, "12345678901234567890.12345678901234567890"));
107         assertEquals("2004-03-12T00:00:00", CachingDateFormat.getDateFormat().format(ValueConverter.convert(Date JavaDoc.class, "2004-03-12T00:00:00")));
108         assertEquals(new Duration("P25D"), ValueConverter.convert(Duration.class, "P25D"));
109         assertEquals("woof", ValueConverter.convert(String JavaDoc.class, "woof"));
110     }
111
112     public void testPrimativeAccessors()
113     {
114         assertEquals(false, ValueConverter.convert(Boolean JavaDoc.class, false).booleanValue());
115         assertEquals(true, ValueConverter.convert(Boolean JavaDoc.class, true).booleanValue());
116         assertEquals('a', ValueConverter.convert(Character JavaDoc.class, 'a').charValue());
117         assertEquals((byte) 3, ValueConverter.convert(Byte JavaDoc.class, (byte) 3).byteValue());
118         assertEquals((short) 4, ValueConverter.convert(Short JavaDoc.class, (short) 4).shortValue());
119         assertEquals((int) 5, ValueConverter.convert(Integer JavaDoc.class, (int) 5).intValue());
120         assertEquals((long) 6, ValueConverter.convert(Long JavaDoc.class, (long) 6).longValue());
121         assertEquals((float) 7.1, ValueConverter.convert(Float JavaDoc.class, (float) 7.1).floatValue());
122         assertEquals((double) 123.123, ValueConverter.convert(Double JavaDoc.class, (double) 123.123).doubleValue());
123     }
124     
125     public void testInterConversions()
126     {
127         assertEquals(Byte.valueOf("1"), ValueConverter.convert(Byte JavaDoc.class, Byte.valueOf("1")));
128         assertEquals(Short.valueOf("2"), ValueConverter.convert(Short JavaDoc.class, Byte.valueOf("2")));
129         assertEquals(Integer.valueOf("3"), ValueConverter.convert(Integer JavaDoc.class, Byte.valueOf("3")));
130         assertEquals(Long.valueOf("4"), ValueConverter.convert(Long JavaDoc.class, Byte.valueOf("4")));
131         assertEquals(Float.valueOf("5"), ValueConverter.convert(Float JavaDoc.class, Byte.valueOf("5")));
132         assertEquals(Double.valueOf("6"), ValueConverter.convert(Double JavaDoc.class, Byte.valueOf("6")));
133         assertEquals(new BigInteger JavaDoc("7"), ValueConverter.convert(BigInteger JavaDoc.class, Byte.valueOf("7")));
134         assertEquals(new BigDecimal JavaDoc("8"), ValueConverter.convert(BigDecimal JavaDoc.class, Byte.valueOf("8")));
135         
136         assertEquals(Byte.valueOf("1"), ValueConverter.convert(Byte JavaDoc.class, Short.valueOf("1")));
137         assertEquals(Short.valueOf("2"), ValueConverter.convert(Short JavaDoc.class, Short.valueOf("2")));
138         assertEquals(Integer.valueOf("3"), ValueConverter.convert(Integer JavaDoc.class, Short.valueOf("3")));
139         assertEquals(Long.valueOf("4"), ValueConverter.convert(Long JavaDoc.class, Short.valueOf("4")));
140         assertEquals(Float.valueOf("5"), ValueConverter.convert(Float JavaDoc.class, Short.valueOf("5")));
141         assertEquals(Double.valueOf("6"), ValueConverter.convert(Double JavaDoc.class, Short.valueOf("6")));
142         assertEquals(new BigInteger JavaDoc("7"), ValueConverter.convert(BigInteger JavaDoc.class, Short.valueOf("7")));
143         assertEquals(new BigDecimal JavaDoc("8"), ValueConverter.convert(BigDecimal JavaDoc.class, Short.valueOf("8")));
144         
145         assertEquals(Byte.valueOf("1"), ValueConverter.convert(Byte JavaDoc.class, Integer.valueOf("1")));
146         assertEquals(Short.valueOf("2"), ValueConverter.convert(Short JavaDoc.class, Integer.valueOf("2")));
147         assertEquals(Integer.valueOf("3"), ValueConverter.convert(Integer JavaDoc.class, Integer.valueOf("3")));
148         assertEquals(Long.valueOf("4"), ValueConverter.convert(Long JavaDoc.class, Integer.valueOf("4")));
149         assertEquals(Float.valueOf("5"), ValueConverter.convert(Float JavaDoc.class, Integer.valueOf("5")));
150         assertEquals(Double.valueOf("6"), ValueConverter.convert(Double JavaDoc.class, Integer.valueOf("6")));
151         assertEquals(new BigInteger JavaDoc("7"), ValueConverter.convert(BigInteger JavaDoc.class, Integer.valueOf("7")));
152         assertEquals(new BigDecimal JavaDoc("8"), ValueConverter.convert(BigDecimal JavaDoc.class, Integer.valueOf("8")));
153         
154         assertEquals(Byte.valueOf("1"), ValueConverter.convert(Byte JavaDoc.class, Long.valueOf("1")));
155         assertEquals(Short.valueOf("2"), ValueConverter.convert(Short JavaDoc.class, Long.valueOf("2")));
156         assertEquals(Integer.valueOf("3"), ValueConverter.convert(Integer JavaDoc.class, Long.valueOf("3")));
157         assertEquals(Long.valueOf("4"), ValueConverter.convert(Long JavaDoc.class, Long.valueOf("4")));
158         assertEquals(Float.valueOf("5"), ValueConverter.convert(Float JavaDoc.class, Long.valueOf("5")));
159         assertEquals(Double.valueOf("6"), ValueConverter.convert(Double JavaDoc.class, Long.valueOf("6")));
160         assertEquals(new BigInteger JavaDoc("7"), ValueConverter.convert(BigInteger JavaDoc.class, Long.valueOf("7")));
161         assertEquals(new BigDecimal JavaDoc("8"), ValueConverter.convert(BigDecimal JavaDoc.class, Long.valueOf("8")));
162         
163         assertEquals(Byte.valueOf("1"), ValueConverter.convert(Byte JavaDoc.class, Float.valueOf("1")));
164         assertEquals(Short.valueOf("2"), ValueConverter.convert(Short JavaDoc.class, Float.valueOf("2")));
165         assertEquals(Integer.valueOf("3"), ValueConverter.convert(Integer JavaDoc.class, Float.valueOf("3")));
166         assertEquals(Long.valueOf("4"), ValueConverter.convert(Long JavaDoc.class, Float.valueOf("4")));
167         assertEquals(Float.valueOf("5"), ValueConverter.convert(Float JavaDoc.class, Float.valueOf("5")));
168         assertEquals(Double.valueOf("6"), ValueConverter.convert(Double JavaDoc.class, Float.valueOf("6")));
169         assertEquals(new BigInteger JavaDoc("7"), ValueConverter.convert(BigInteger JavaDoc.class, Float.valueOf("7")));
170         assertEquals(new BigDecimal JavaDoc("8"), ValueConverter.convert(BigDecimal JavaDoc.class, Float.valueOf("8")));
171         
172         assertEquals(Byte.valueOf("1"), ValueConverter.convert(Byte JavaDoc.class, Double.valueOf("1")));
173         assertEquals(Short.valueOf("2"), ValueConverter.convert(Short JavaDoc.class, Double.valueOf("2")));
174         assertEquals(Integer.valueOf("3"), ValueConverter.convert(Integer JavaDoc.class, Double.valueOf("3")));
175         assertEquals(Long.valueOf("4"), ValueConverter.convert(Long JavaDoc.class, Double.valueOf("4")));
176         assertEquals(Float.valueOf("5"), ValueConverter.convert(Float JavaDoc.class, Double.valueOf("5")));
177         assertEquals(Double.valueOf("6"), ValueConverter.convert(Double JavaDoc.class, Double.valueOf("6")));
178         assertEquals(new BigInteger JavaDoc("7"), ValueConverter.convert(BigInteger JavaDoc.class, Double.valueOf("7")));
179         assertEquals(new BigDecimal JavaDoc("8"), ValueConverter.convert(BigDecimal JavaDoc.class, Double.valueOf("8")));
180         
181         assertEquals(Byte.valueOf("1"), ValueConverter.convert(Byte JavaDoc.class, new BigInteger JavaDoc("1")));
182         assertEquals(Short.valueOf("2"), ValueConverter.convert(Short JavaDoc.class, new BigInteger JavaDoc("2")));
183         assertEquals(Integer.valueOf("3"), ValueConverter.convert(Integer JavaDoc.class, new BigInteger JavaDoc("3")));
184         assertEquals(Long.valueOf("4"), ValueConverter.convert(Long JavaDoc.class, new BigInteger JavaDoc("4")));
185         assertEquals(Float.valueOf("5"), ValueConverter.convert(Float JavaDoc.class, new BigInteger JavaDoc("5")));
186         assertEquals(Double.valueOf("6"), ValueConverter.convert(Double JavaDoc.class, new BigInteger JavaDoc("6")));
187         assertEquals(new BigInteger JavaDoc("7"), ValueConverter.convert(BigInteger JavaDoc.class, new BigInteger JavaDoc("7")));
188         assertEquals(new BigDecimal JavaDoc("8"), ValueConverter.convert(BigDecimal JavaDoc.class, new BigInteger JavaDoc("8")));
189         
190         assertEquals(Byte.valueOf("1"), ValueConverter.convert(Byte JavaDoc.class, new BigDecimal JavaDoc("1")));
191         assertEquals(Short.valueOf("2"), ValueConverter.convert(Short JavaDoc.class, new BigDecimal JavaDoc("2")));
192         assertEquals(Integer.valueOf("3"), ValueConverter.convert(Integer JavaDoc.class, new BigDecimal JavaDoc("3")));
193         assertEquals(Long.valueOf("4"), ValueConverter.convert(Long JavaDoc.class, new BigDecimal JavaDoc("4")));
194         assertEquals(Float.valueOf("5"), ValueConverter.convert(Float JavaDoc.class, new BigDecimal JavaDoc("5")));
195         assertEquals(Double.valueOf("6"), ValueConverter.convert(Double JavaDoc.class, new BigDecimal JavaDoc("6")));
196         assertEquals(new BigInteger JavaDoc("7"), ValueConverter.convert(BigInteger JavaDoc.class, new BigDecimal JavaDoc("7")));
197         assertEquals(new BigDecimal JavaDoc("8"), ValueConverter.convert(BigDecimal JavaDoc.class, new BigDecimal JavaDoc("8")));
198     }
199     
200     public void testDate()
201     {
202         Date JavaDoc date = new Date JavaDoc(101);
203         
204         assertEquals(Byte.valueOf("101"), ValueConverter.convert(Byte JavaDoc.class, date));
205         assertEquals(Short.valueOf("101"), ValueConverter.convert(Short JavaDoc.class, date));
206         assertEquals(Integer.valueOf("101"), ValueConverter.convert(Integer JavaDoc.class, date));
207         assertEquals(Long.valueOf("101"), ValueConverter.convert(Long JavaDoc.class, date));
208         assertEquals(Float.valueOf("101"), ValueConverter.convert(Float JavaDoc.class, date));
209         assertEquals(Double.valueOf("101"), ValueConverter.convert(Double JavaDoc.class, date));
210         assertEquals(new BigInteger JavaDoc("101"), ValueConverter.convert(BigInteger JavaDoc.class, date));
211         assertEquals(new BigDecimal JavaDoc("101"), ValueConverter.convert(BigDecimal JavaDoc.class, date));
212         
213         assertEquals(date, ValueConverter.convert(Date JavaDoc.class, (byte)101));
214         assertEquals(date, ValueConverter.convert(Date JavaDoc.class, (short)101));
215         assertEquals(date, ValueConverter.convert(Date JavaDoc.class, (int)101));
216         assertEquals(date, ValueConverter.convert(Date JavaDoc.class, (long)101));
217         assertEquals(date, ValueConverter.convert(Date JavaDoc.class, (float)101));
218         assertEquals(date, ValueConverter.convert(Date JavaDoc.class, (double)101));
219         
220         assertEquals(date, ValueConverter.convert(Date JavaDoc.class, new BigInteger JavaDoc("101")));
221         assertEquals(date, ValueConverter.convert(Date JavaDoc.class, (Object JavaDoc)(new BigDecimal JavaDoc("101"))));
222         
223         assertEquals(101, ValueConverter.intValue(date));
224     }
225     
226     public void testMultiValue()
227     {
228         ArrayList JavaDoc<Object JavaDoc> list = makeList();
229         
230         assertEquals(true, ValueConverter.isMultiValued(list));
231         assertEquals(14, ValueConverter.size(list));
232         
233         for(Iterator JavaDoc<String JavaDoc> it = ValueConverter.iterator(String JavaDoc.class, list); it.hasNext(); /**/)
234         {
235            System.out.println("Value is "+it.next());
236         }
237         
238         for(String JavaDoc stringValue: ValueConverter.getCollection(String JavaDoc.class, list))
239         {
240             System.out.println("Value is "+stringValue);
241         }
242         
243     }
244
245     private ArrayList JavaDoc<Object JavaDoc> makeList()
246     {
247         ArrayList JavaDoc<Object JavaDoc> list = new ArrayList JavaDoc<Object JavaDoc>();
248         list.add(Boolean.valueOf(true));
249         list.add(Boolean.valueOf(false));
250         list.add(Character.valueOf('q'));
251         list.add(Byte.valueOf("1"));
252         list.add(Short.valueOf("2"));
253         list.add(Integer.valueOf("3"));
254         list.add(Long.valueOf("4"));
255         list.add(Float.valueOf("5"));
256         list.add(Double.valueOf("6"));
257         list.add(new BigInteger JavaDoc("7"));
258         list.add(new BigDecimal JavaDoc("8"));
259         list.add(new Date JavaDoc());
260         list.add(new Duration("P5Y0M"));
261         list.add("Hello mum");
262         return list;
263     }
264     
265     public void testSingleValuseAsMultiValue()
266     {
267         Integer JavaDoc integer = Integer.valueOf(43);
268         
269         assertEquals(false, ValueConverter.isMultiValued(integer));
270         assertEquals(1, ValueConverter.size(integer));
271         
272         for(Iterator JavaDoc<String JavaDoc> it = ValueConverter.iterator(String JavaDoc.class, integer); it.hasNext(); /**/)
273         {
274            System.out.println("Value is "+it.next());
275         }
276         
277         for(String JavaDoc stringValue: ValueConverter.getCollection(String JavaDoc.class, integer))
278         {
279             System.out.println("Value is "+stringValue);
280         }
281         
282     }
283     
284     public void testMultiAsSingle()
285     {
286         ArrayList JavaDoc<Object JavaDoc> list = makeList();
287         assertEquals(true, ValueConverter.convert(Boolean JavaDoc.class, list).booleanValue());
288     }
289     
290     public void testNullAndEmpty()
291     {
292         assertNull(ValueConverter.convert(Boolean JavaDoc.class, null));
293         ArrayList JavaDoc<Object JavaDoc> list = new ArrayList JavaDoc<Object JavaDoc>();
294         assertNull(ValueConverter.convert(Boolean JavaDoc.class, list));
295         list.add(null);
296         assertNull(ValueConverter.convert(Boolean JavaDoc.class, list));
297         
298     }
299 }
300
Popular Tags