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 ();
0 commit comments