1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.beanutils.converters;
19
20 import java.sql.Timestamp;
21 import java.util.Calendar;
22 import java.util.Locale;
23
24 import junit.framework.TestSuite;
25
26 /***
27 * Test Case for the {@link SqlTimestampConverter} class.
28 *
29 * @version $Revision: 471689 $ $Date: 2006-11-06 10:52:49 +0000 (Mon, 06 Nov 2006) $
30 */
31
32 public class SqlTimestampConverterTestCase extends DateConverterTestBase {
33
34 /***
35 * Construct a new Date test case.
36 * @param name Test Name
37 */
38 public SqlTimestampConverterTestCase(String name) {
39 super(name);
40 }
41
42
43
44 /***
45 * Create Test Suite
46 * @return test suite
47 */
48 public static TestSuite suite() {
49 return new TestSuite(SqlTimestampConverterTestCase.class);
50 }
51
52
53
54 /***
55 * Test Date Converter with no default value
56 */
57 public void testLocale() {
58
59
60 Locale defaultLocale = Locale.getDefault();
61 Locale.setDefault(Locale.US);
62
63 String pattern = "M/d/yy h:mm a";
64
65
66 DateTimeConverter converter = makeConverter();
67 converter.setUseLocaleFormat(true);
68
69
70 String testString = "3/21/06 3:06 pm";
71 Object expected = toType(testString, pattern, null);
72 validConversion(converter, expected, testString);
73
74
75 invalidConversion(converter, null);
76 invalidConversion(converter, "");
77 invalidConversion(converter, "13:05 pm");
78 invalidConversion(converter, "11:05 p");
79 invalidConversion(converter, "11.05 pm");
80 invalidConversion(converter, new Integer(2));
81
82
83 Locale.setDefault(defaultLocale);
84
85 }
86
87 /***
88 * Test default String to java.sql.Timestamp conversion
89 */
90 public void testDefaultStringToTypeConvert() {
91
92
93 DateTimeConverter converter = makeConverter();
94 converter.setUseLocaleFormat(false);
95
96
97 String testString = "2006-10-23 15:36:01.0";
98 Object expected = toType(testString, "yyyy-MM-dd HH:mm:ss.S", null);
99 validConversion(converter, expected, testString);
100
101
102 invalidConversion(converter, "2006/09/21 15:36:01.0");
103 invalidConversion(converter, "2006-10-22");
104 invalidConversion(converter, "15:36:01");
105
106 }
107
108 /***
109 * Create the Converter with no default value.
110 * @return A new Converter
111 */
112 protected DateTimeConverter makeConverter() {
113 return new SqlTimestampConverter();
114 }
115
116 /***
117 * Create the Converter with a default value.
118 * @param defaultValue The default value
119 * @return A new Converter
120 */
121 protected DateTimeConverter makeConverter(Object defaultValue) {
122 return new SqlTimestampConverter(defaultValue);
123 }
124
125 /***
126 * Return the expected type
127 * @return The expected type
128 */
129 protected Class getExpectedType() {
130 return Timestamp.class;
131 }
132
133 /***
134 * Convert from a Calendar to the appropriate Date type
135 *
136 * @param value The Calendar value to convert
137 * @return The converted value
138 */
139 protected Object toType(Calendar value) {
140 return new Timestamp(getTimeInMillis(value));
141 }
142
143 }