5
5
import java .sql .*;
6
6
7
7
/*
8
- * $Id: DateTest.java,v 1.5 2002/08/14 20:35:40 barry Exp $
8
+ * $Id: DateTest.java,v 1.6 2003/09/22 04:55:00 barry Exp $
9
9
*
10
10
* Some simple tests based on problems reported by users. Hopefully these will
11
11
* help prevent previous problems from re-occuring ;-)
@@ -15,6 +15,7 @@ public class DateTest extends TestCase
15
15
{
16
16
17
17
private Connection con ;
18
+ private boolean testingSetDate =false ;
18
19
19
20
public DateTest (String name )
20
21
{
@@ -46,11 +47,23 @@ public void testGetDate()
46
47
assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1970-06-02'" )));
47
48
assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1999-08-11'" )));
48
49
assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'2001-02-13'" )));
50
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1950-04-02'" )));
51
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1970-11-30'" )));
52
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1988-01-01'" )));
53
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'2003-07-09'" )));
54
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1934-02-28'" )));
55
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1969-04-03'" )));
56
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1982-08-03'" )));
57
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'2012-03-15'" )));
58
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1912-05-01'" )));
59
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1971-12-15'" )));
60
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'1984-12-03'" )));
61
+ assertEquals (1 ,stmt .executeUpdate (TestUtil .insertSQL ("testdate" ,"'2000-01-01'" )));
49
62
50
63
/* dateTest() contains all of the tests */
51
64
dateTest ();
52
65
53
- assertEquals (4 ,stmt .executeUpdate ("DELETE FROM " +"testdate" ));
66
+ assertEquals (16 ,stmt .executeUpdate ("DELETE FROM " +"testdate" ));
54
67
stmt .close ();
55
68
}
56
69
catch (Exception ex )
@@ -80,13 +93,64 @@ public void testSetDate()
80
93
81
94
ps .setDate (1 ,makeDate (2001 ,2 ,13 ));
82
95
assertEquals (1 ,ps .executeUpdate ());
83
-
96
+
97
+ ps .setObject (1 ,java .sql .Timestamp .valueOf ("1950-04-02 12:00:00" ),java .sql .Types .DATE );
98
+ assertEquals (1 ,ps .executeUpdate ());
99
+
100
+ ps .setObject (1 ,java .sql .Timestamp .valueOf ("1970-11-30 3:00:00" ),java .sql .Types .DATE );
101
+ assertEquals (1 ,ps .executeUpdate ());
102
+
103
+ ps .setObject (1 ,java .sql .Timestamp .valueOf ("1988-1-1 13:00:00" ),java .sql .Types .DATE );
104
+ assertEquals (1 ,ps .executeUpdate ());
105
+
106
+ ps .setObject (1 ,java .sql .Timestamp .valueOf ("2003-07-09 12:00:00" ),java .sql .Types .DATE );
107
+ assertEquals (1 ,ps .executeUpdate ());
108
+
109
+ ps .setObject (1 ,"1934-02-28" ,java .sql .Types .DATE );
110
+ assertEquals (1 ,ps .executeUpdate ());
111
+
112
+ ps .setObject (1 ,"1969-04-3" ,java .sql .Types .DATE );
113
+ assertEquals (1 ,ps .executeUpdate ());
114
+
115
+ ps .setObject (1 ,"1982-08-03" ,java .sql .Types .DATE );
116
+ assertEquals (1 ,ps .executeUpdate ());
117
+
118
+ ps .setObject (1 ,"2012-3-15" ,java .sql .Types .DATE );
119
+ assertEquals (1 ,ps .executeUpdate ());
120
+
121
+ ps .setObject (1 ,java .sql .Date .valueOf ("1912-5-1" ),java .sql .Types .DATE );
122
+ assertEquals (1 ,ps .executeUpdate ());
123
+
124
+ ps .setObject (1 ,java .sql .Date .valueOf ("1971-12-15" ),java .sql .Types .DATE );
125
+ assertEquals (1 ,ps .executeUpdate ());
126
+
127
+ ps .setObject (1 ,java .sql .Date .valueOf ("1984-12-03" ),java .sql .Types .DATE );
128
+ assertEquals (1 ,ps .executeUpdate ());
129
+
130
+ ps .setObject (1 ,java .sql .Date .valueOf ("2000-1-1" ),java .sql .Types .DATE );
131
+ assertEquals (1 ,ps .executeUpdate ());
132
+
133
+ ps .setObject (1 ,"1944-4-04-01" ,java .sql .Types .DATE );
134
+ assertEquals (1 ,ps .executeUpdate ());
135
+
136
+ ps .setObject (1 ,"1970-01-1-10" ,java .sql .Types .DATE );
137
+ assertEquals (1 ,ps .executeUpdate ());
138
+
139
+ ps .setObject (1 ,"1982-12-14+13" ,java .sql .Types .DATE );
140
+ assertEquals (1 ,ps .executeUpdate ());
141
+
142
+ ps .setObject (1 ,"2010-08-3+05" ,java .sql .Types .DATE );
143
+ assertEquals (1 ,ps .executeUpdate ());
144
+
84
145
ps .close ();
85
146
147
+ // Need to set a flag so that the method knows there is an extra test.
148
+ testingSetDate =true ;
86
149
// Fall through helper
87
150
dateTest ();
151
+ testingSetDate =false ;
88
152
89
- assertEquals (4 ,stmt .executeUpdate ("DELETE FROM testdate" ));
153
+ assertEquals (20 ,stmt .executeUpdate ("DELETE FROM testdate" ));
90
154
stmt .close ();
91
155
}
92
156
catch (Exception ex )
@@ -127,6 +191,122 @@ private void dateTest() throws SQLException
127
191
assertNotNull (d );
128
192
assertEquals (d ,makeDate (2001 ,2 ,13 ));
129
193
194
+ assertTrue (rs .next ());
195
+ d =rs .getDate (1 );
196
+ assertNotNull (d );
197
+ assertEquals (d ,makeDate (1950 ,4 ,2 ));
198
+
199
+ assertTrue (rs .next ());
200
+ d =rs .getDate (1 );
201
+ assertNotNull (d );
202
+ assertEquals (d ,makeDate (1970 ,11 ,30 ));
203
+
204
+ assertTrue (rs .next ());
205
+ d =rs .getDate (1 );
206
+ assertNotNull (d );
207
+ assertEquals (d ,makeDate (1988 ,1 ,1 ));
208
+
209
+ assertTrue (rs .next ());
210
+ d =rs .getDate (1 );
211
+ assertNotNull (d );
212
+ assertEquals (d ,makeDate (2003 ,7 ,9 ));
213
+
214
+ assertTrue (rs .next ());
215
+ d =rs .getDate (1 );
216
+ assertNotNull (d );
217
+ assertEquals (d ,makeDate (1934 ,2 ,28 ));
218
+
219
+ assertTrue (rs .next ());
220
+ d =rs .getDate (1 );
221
+ assertNotNull (d );
222
+ assertEquals (d ,makeDate (1969 ,4 ,3 ));
223
+
224
+ assertTrue (rs .next ());
225
+ d =rs .getDate (1 );
226
+ assertNotNull (d );
227
+ assertEquals (d ,makeDate (1982 ,8 ,3 ));
228
+
229
+ assertTrue (rs .next ());
230
+ d =rs .getDate (1 );
231
+ assertNotNull (d );
232
+ assertEquals (d ,makeDate (2012 ,3 ,15 ));
233
+
234
+ assertTrue (rs .next ());
235
+ d =rs .getDate (1 );
236
+ assertNotNull (d );
237
+ assertEquals (d ,makeDate (1912 ,5 ,1 ));
238
+
239
+ assertTrue (rs .next ());
240
+ d =rs .getDate (1 );
241
+ assertNotNull (d );
242
+ assertEquals (d ,makeDate (1971 ,12 ,15 ));
243
+
244
+ assertTrue (rs .next ());
245
+ d =rs .getDate (1 );
246
+ assertNotNull (d );
247
+ assertEquals (d ,makeDate (1984 ,12 ,3 ));
248
+
249
+ assertTrue (rs .next ());
250
+ d =rs .getDate (1 );
251
+ assertNotNull (d );
252
+ assertEquals (d ,makeDate (2000 ,1 ,1 ));
253
+
254
+ //now we have to convert the date, cause I fed it a timezone. IF it used it. hence the check
255
+ if (testingSetDate )
256
+ {
257
+ assertTrue (rs .next ());
258
+ d =rs .getDate (1 );
259
+ assertNotNull (d );
260
+ java .sql .Date tmpDate =java .sql .Date .valueOf ("1944-4-4" );
261
+ int localoffset =java .util .Calendar .getInstance ().getTimeZone ().getRawOffset ();
262
+ if (java .util .Calendar .getInstance ().getTimeZone ().inDaylightTime (tmpDate ))
263
+ {
264
+ localoffset +=60 *60 *1000 ;
265
+ }
266
+ int Dateoffset =60 *60 *1000 ;
267
+ tmpDate .setTime (tmpDate .getTime () +Dateoffset +localoffset );
268
+ assertEquals (d ,makeDate (tmpDate .getYear () +1900 ,tmpDate .getMonth ()+1 ,tmpDate .getDate ()));
269
+
270
+ assertTrue (rs .next ());
271
+ d =rs .getDate (1 );
272
+ assertNotNull (d );
273
+ tmpDate =java .sql .Date .valueOf ("1970-1-1" );
274
+ localoffset =java .util .Calendar .getInstance ().getTimeZone ().getRawOffset ();
275
+ if (java .util .Calendar .getInstance ().getTimeZone ().inDaylightTime (tmpDate ))
276
+ {
277
+ localoffset +=60 *60 *1000 ;
278
+ }
279
+ Dateoffset =10 *60 *60 *1000 ;
280
+ tmpDate .setTime (tmpDate .getTime () +Dateoffset +localoffset );
281
+ assertEquals (d ,makeDate (tmpDate .getYear () +1900 ,tmpDate .getMonth ()+1 ,tmpDate .getDate ()));
282
+
283
+ assertTrue (rs .next ());
284
+ d =rs .getDate (1 );
285
+ assertNotNull (d );
286
+ tmpDate =java .sql .Date .valueOf ("1982-12-14" );
287
+ localoffset =java .util .Calendar .getInstance ().getTimeZone ().getRawOffset ();
288
+ if (java .util .Calendar .getInstance ().getTimeZone ().inDaylightTime (tmpDate ))
289
+ {
290
+ localoffset +=60 *60 *1000 ;
291
+ }
292
+ Dateoffset = -13 *60 *60 *1000 ;
293
+ tmpDate .setTime (tmpDate .getTime () +Dateoffset +localoffset );
294
+ assertEquals (d ,makeDate (tmpDate .getYear () +1900 ,tmpDate .getMonth ()+1 ,tmpDate .getDate ()));
295
+
296
+ assertTrue (rs .next ());
297
+ d =rs .getDate (1 );
298
+ assertNotNull (d );
299
+ tmpDate =java .sql .Date .valueOf ("2010-08-03" );
300
+ localoffset =java .util .Calendar .getInstance ().getTimeZone ().getRawOffset ();
301
+ if (java .util .Calendar .getInstance ().getTimeZone ().inDaylightTime (tmpDate ))
302
+ {
303
+ localoffset +=60 *60 *1000 ;
304
+ }
305
+ Dateoffset = -5 *60 *60 *1000 ;
306
+ tmpDate .setTime (tmpDate .getTime () +Dateoffset +localoffset );
307
+ assertEquals (d ,makeDate (tmpDate .getYear () +1900 ,tmpDate .getMonth ()+1 ,tmpDate .getDate ()));
308
+ }
309
+
130
310
assertTrue (!rs .next ());
131
311
132
312
rs .close ();