KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > joda > time > TestLocalDateTime_Constructors


1 /*
2  * Copyright 2001-2006 Stephen Colebourne
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.joda.time;
17
18 import java.util.Calendar JavaDoc;
19 import java.util.Date JavaDoc;
20 import java.util.GregorianCalendar JavaDoc;
21
22 import junit.framework.TestCase;
23 import junit.framework.TestSuite;
24
25 import org.joda.time.chrono.BuddhistChronology;
26 import org.joda.time.chrono.GregorianChronology;
27 import org.joda.time.chrono.ISOChronology;
28
29 /**
30  * This class is a Junit unit test for LocalDateTime.
31  *
32  * @author Stephen Colebourne
33  */

34 public class TestLocalDateTime_Constructors extends TestCase {
35
36     private static final DateTimeZone LONDON = DateTimeZone.forID("Europe/London");
37     private static final DateTimeZone PARIS = DateTimeZone.forID("Europe/Paris");
38     private static final DateTimeZone MOSCOW = DateTimeZone.forID("Europe/Moscow");
39     private static final Chronology ISO_UTC = ISOChronology.getInstanceUTC();
40     private static final Chronology GREGORIAN_UTC = GregorianChronology.getInstanceUTC();
41     private static final Chronology GREGORIAN_PARIS = GregorianChronology.getInstance(PARIS);
42     private static final Chronology GREGORIAN_MOSCOW = GregorianChronology.getInstance(MOSCOW);
43     private static final Chronology BUDDHIST_UTC = BuddhistChronology.getInstanceUTC();
44     private static final int OFFSET_PARIS = PARIS.getOffset(0L) / DateTimeConstants.MILLIS_PER_HOUR;
45     private static final int OFFSET_MOSCOW = MOSCOW.getOffset(0L) / DateTimeConstants.MILLIS_PER_HOUR;
46     
47     private long MILLIS_OF_DAY =
48         10L * DateTimeConstants.MILLIS_PER_HOUR
49         + 20L * DateTimeConstants.MILLIS_PER_MINUTE
50         + 30L * DateTimeConstants.MILLIS_PER_SECOND
51         + 40L;
52     private long TEST_TIME_NOW =
53         (31L + 28L + 31L + 30L + 31L + 9L -1L) * DateTimeConstants.MILLIS_PER_DAY
54         + MILLIS_OF_DAY;
55
56     private long TEST_TIME1 =
57         (31L + 28L + 31L + 6L -1L) * DateTimeConstants.MILLIS_PER_DAY
58         + 12L * DateTimeConstants.MILLIS_PER_HOUR
59         + 24L * DateTimeConstants.MILLIS_PER_MINUTE;
60     private long TEST_TIME2 =
61         (365L + 31L + 28L + 31L + 30L + 7L -1L) * DateTimeConstants.MILLIS_PER_DAY
62         + 14L * DateTimeConstants.MILLIS_PER_HOUR
63         + 28L * DateTimeConstants.MILLIS_PER_MINUTE;
64
65     private DateTimeZone zone = null;
66
67     public static void main(String JavaDoc[] args) {
68         junit.textui.TestRunner.run(suite());
69     }
70
71     public static TestSuite suite() {
72         return new TestSuite(TestLocalDateTime_Constructors.class);
73     }
74
75     public TestLocalDateTime_Constructors(String JavaDoc name) {
76         super(name);
77     }
78
79     protected void setUp() throws Exception JavaDoc {
80         DateTimeUtils.setCurrentMillisFixed(TEST_TIME_NOW);
81         zone = DateTimeZone.getDefault();
82         DateTimeZone.setDefault(MOSCOW);
83     }
84
85     protected void tearDown() throws Exception JavaDoc {
86         DateTimeUtils.setCurrentMillisSystem();
87         DateTimeZone.setDefault(zone);
88         zone = null;
89     }
90
91     //-----------------------------------------------------------------------
92
public void testFactory_FromCalendarFields() throws Exception JavaDoc {
93         GregorianCalendar JavaDoc cal = new GregorianCalendar JavaDoc(1970, 1, 3, 4, 5, 6);
94         cal.set(Calendar.MILLISECOND, 7);
95         LocalDateTime expected = new LocalDateTime(1970, 2, 3, 4, 5, 6, 7);
96         assertEquals(expected, LocalDateTime.fromCalendarFields(cal));
97         try {
98             LocalDateTime.fromCalendarFields((Calendar JavaDoc) null);
99             fail();
100         } catch (IllegalArgumentException JavaDoc ex) {}
101     }
102
103     //-----------------------------------------------------------------------
104
public void testFactory_FromDateFields() throws Exception JavaDoc {
105         GregorianCalendar JavaDoc cal = new GregorianCalendar JavaDoc(1970, 1, 3, 4, 5, 6);
106         cal.set(Calendar.MILLISECOND, 7);
107         LocalDateTime expected = new LocalDateTime(1970, 2, 3, 4, 5 ,6, 7);
108         assertEquals(expected, LocalDateTime.fromDateFields(cal.getTime()));
109         try {
110             LocalDateTime.fromDateFields((Date JavaDoc) null);
111             fail();
112         } catch (IllegalArgumentException JavaDoc ex) {}
113     }
114
115     //-----------------------------------------------------------------------
116
public void testConstructor() throws Throwable JavaDoc {
117         LocalDateTime test = new LocalDateTime();
118         assertEquals(ISO_UTC, test.getChronology());
119         assertEquals(1970, test.getYear());
120         assertEquals(6, test.getMonthOfYear());
121         assertEquals(9, test.getDayOfMonth());
122         assertEquals(10 + OFFSET_MOSCOW, test.getHourOfDay());
123         assertEquals(20, test.getMinuteOfHour());
124         assertEquals(30, test.getSecondOfMinute());
125         assertEquals(40, test.getMillisOfSecond());
126     }
127
128     //-----------------------------------------------------------------------
129
public void testConstructor_DateTimeZone() throws Throwable JavaDoc {
130         DateTime dt = new DateTime(2005, 6, 8, 23, 59, 0, 0, LONDON);
131         DateTimeUtils.setCurrentMillisFixed(dt.getMillis());
132         // 23:59 in London is 00:59 the following day in Paris
133

134         LocalDateTime test = new LocalDateTime(LONDON);
135         assertEquals(ISO_UTC, test.getChronology());
136         assertEquals(2005, test.getYear());
137         assertEquals(6, test.getMonthOfYear());
138         assertEquals(8, test.getDayOfMonth());
139         assertEquals(23, test.getHourOfDay());
140         assertEquals(59, test.getMinuteOfHour());
141         assertEquals(0, test.getSecondOfMinute());
142         assertEquals(0, test.getMillisOfSecond());
143         
144         test = new LocalDateTime(PARIS);
145         assertEquals(ISO_UTC, test.getChronology());
146         assertEquals(2005, test.getYear());
147         assertEquals(6, test.getMonthOfYear());
148         assertEquals(9, test.getDayOfMonth());
149         assertEquals(0, test.getHourOfDay());
150         assertEquals(59, test.getMinuteOfHour());
151         assertEquals(0, test.getSecondOfMinute());
152         assertEquals(0, test.getMillisOfSecond());
153     }
154
155     public void testConstructor_nullDateTimeZone() throws Throwable JavaDoc {
156         LocalDateTime test = new LocalDateTime((DateTimeZone) null);
157         assertEquals(ISO_UTC, test.getChronology());
158         assertEquals(1970, test.getYear());
159         assertEquals(6, test.getMonthOfYear());
160         assertEquals(9, test.getDayOfMonth());
161         assertEquals(10 + OFFSET_MOSCOW, test.getHourOfDay());
162         assertEquals(20, test.getMinuteOfHour());
163         assertEquals(30, test.getSecondOfMinute());
164         assertEquals(40, test.getMillisOfSecond());
165     }
166
167     //-----------------------------------------------------------------------
168
public void testConstructor_Chronology() throws Throwable JavaDoc {
169         LocalDateTime test = new LocalDateTime(GREGORIAN_PARIS);
170         assertEquals(GREGORIAN_UTC, test.getChronology());
171         assertEquals(1970, test.getYear());
172         assertEquals(6, test.getMonthOfYear());
173         assertEquals(9, test.getDayOfMonth());
174         assertEquals(10 + OFFSET_PARIS, test.getHourOfDay());
175         assertEquals(20, test.getMinuteOfHour());
176         assertEquals(30, test.getSecondOfMinute());
177         assertEquals(40, test.getMillisOfSecond());
178     }
179
180     public void testConstructor_nullChronology() throws Throwable JavaDoc {
181         LocalDateTime test = new LocalDateTime((Chronology) null);
182         assertEquals(ISO_UTC, test.getChronology());
183         assertEquals(1970, test.getYear());
184         assertEquals(6, test.getMonthOfYear());
185         assertEquals(9, test.getDayOfMonth());
186         assertEquals(10 + OFFSET_MOSCOW, test.getHourOfDay());
187         assertEquals(20, test.getMinuteOfHour());
188         assertEquals(30, test.getSecondOfMinute());
189         assertEquals(40, test.getMillisOfSecond());
190     }
191
192     //-----------------------------------------------------------------------
193
public void testConstructor_long1() throws Throwable JavaDoc {
194         LocalDateTime test = new LocalDateTime(TEST_TIME1);
195         assertEquals(ISO_UTC, test.getChronology());
196         assertEquals(1970, test.getYear());
197         assertEquals(4, test.getMonthOfYear());
198         assertEquals(6, test.getDayOfMonth());
199         assertEquals(12 + OFFSET_MOSCOW, test.getHourOfDay());
200         assertEquals(24, test.getMinuteOfHour());
201         assertEquals(0, test.getSecondOfMinute());
202         assertEquals(0, test.getMillisOfSecond());
203     }
204
205     public void testConstructor_long2() throws Throwable JavaDoc {
206         LocalDateTime test = new LocalDateTime(TEST_TIME2);
207         assertEquals(ISO_UTC, test.getChronology());
208         assertEquals(1971, test.getYear());
209         assertEquals(5, test.getMonthOfYear());
210         assertEquals(7, test.getDayOfMonth());
211         assertEquals(14 + OFFSET_MOSCOW, test.getHourOfDay());
212         assertEquals(28, test.getMinuteOfHour());
213         assertEquals(0, test.getSecondOfMinute());
214         assertEquals(0, test.getMillisOfSecond());
215     }
216
217     //-----------------------------------------------------------------------
218
public void testConstructor_long1_DateTimeZone() throws Throwable JavaDoc {
219         LocalDateTime test = new LocalDateTime(TEST_TIME1, PARIS);
220         assertEquals(ISO_UTC, test.getChronology());
221         assertEquals(1970, test.getYear());
222         assertEquals(4, test.getMonthOfYear());
223         assertEquals(6, test.getDayOfMonth());
224         assertEquals(12 + OFFSET_PARIS, test.getHourOfDay());
225         assertEquals(24, test.getMinuteOfHour());
226         assertEquals(0, test.getSecondOfMinute());
227         assertEquals(0, test.getMillisOfSecond());
228     }
229
230     public void testConstructor_long2_DateTimeZone() throws Throwable JavaDoc {
231         LocalDateTime test = new LocalDateTime(TEST_TIME2, PARIS);
232         assertEquals(ISO_UTC, test.getChronology());
233         assertEquals(1971, test.getYear());
234         assertEquals(5, test.getMonthOfYear());
235         assertEquals(7, test.getDayOfMonth());
236         assertEquals(14 + OFFSET_PARIS, test.getHourOfDay());
237         assertEquals(28, test.getMinuteOfHour());
238         assertEquals(0, test.getSecondOfMinute());
239         assertEquals(0, test.getMillisOfSecond());
240     }
241
242     public void testConstructor_long_nullDateTimeZone() throws Throwable JavaDoc {
243         LocalDateTime test = new LocalDateTime(TEST_TIME1, (DateTimeZone) null);
244         assertEquals(ISO_UTC, test.getChronology());
245         assertEquals(1970, test.getYear());
246         assertEquals(4, test.getMonthOfYear());
247         assertEquals(6, test.getDayOfMonth());
248         assertEquals(12 + OFFSET_MOSCOW, test.getHourOfDay());
249         assertEquals(24, test.getMinuteOfHour());
250         assertEquals(0, test.getSecondOfMinute());
251         assertEquals(0, test.getMillisOfSecond());
252     }
253
254     //-----------------------------------------------------------------------
255
public void testConstructor_long1_Chronology() throws Throwable JavaDoc {
256         LocalDateTime test = new LocalDateTime(TEST_TIME1, GREGORIAN_PARIS);
257         assertEquals(GREGORIAN_UTC, test.getChronology());
258         assertEquals(1970, test.getYear());
259         assertEquals(4, test.getMonthOfYear());
260         assertEquals(6, test.getDayOfMonth());
261         assertEquals(12 + OFFSET_PARIS, test.getHourOfDay());
262         assertEquals(24, test.getMinuteOfHour());
263         assertEquals(0, test.getSecondOfMinute());
264         assertEquals(0, test.getMillisOfSecond());
265     }
266
267     public void testConstructor_long2_Chronology() throws Throwable JavaDoc {
268         LocalDateTime test = new LocalDateTime(TEST_TIME2, GREGORIAN_PARIS);
269         assertEquals(GREGORIAN_UTC, test.getChronology());
270         assertEquals(1971, test.getYear());
271         assertEquals(5, test.getMonthOfYear());
272         assertEquals(7, test.getDayOfMonth());
273         assertEquals(14 + OFFSET_PARIS, test.getHourOfDay());
274         assertEquals(28, test.getMinuteOfHour());
275         assertEquals(0, test.getSecondOfMinute());
276         assertEquals(0, test.getMillisOfSecond());
277     }
278
279     public void testConstructor_long_nullChronology() throws Throwable JavaDoc {
280         LocalDateTime test = new LocalDateTime(TEST_TIME1, (Chronology) null);
281         assertEquals(ISO_UTC, test.getChronology());
282         assertEquals(1970, test.getYear());
283         assertEquals(4, test.getMonthOfYear());
284         assertEquals(6, test.getDayOfMonth());
285         assertEquals(12 + OFFSET_MOSCOW, test.getHourOfDay());
286         assertEquals(24, test.getMinuteOfHour());
287         assertEquals(0, test.getSecondOfMinute());
288         assertEquals(0, test.getMillisOfSecond());
289     }
290
291     //-----------------------------------------------------------------------
292
public void testConstructor_Object1() throws Throwable JavaDoc {
293         Date JavaDoc date = new Date JavaDoc(TEST_TIME1);
294         LocalDateTime test = new LocalDateTime(date);
295         assertEquals(ISO_UTC, test.getChronology());
296         assertEquals(1970, test.getYear());
297         assertEquals(4, test.getMonthOfYear());
298         assertEquals(6, test.getDayOfMonth());
299         assertEquals(12 + OFFSET_MOSCOW, test.getHourOfDay());
300         assertEquals(24, test.getMinuteOfHour());
301         assertEquals(0, test.getSecondOfMinute());
302         assertEquals(0, test.getMillisOfSecond());
303     }
304
305     public void testConstructor_nullObject() throws Throwable JavaDoc {
306         LocalDateTime test = new LocalDateTime((Object JavaDoc) null);
307         assertEquals(ISO_UTC, test.getChronology());
308         assertEquals(1970, test.getYear());
309         assertEquals(6, test.getMonthOfYear());
310         assertEquals(9, test.getDayOfMonth());
311         assertEquals(10 + OFFSET_MOSCOW, test.getHourOfDay());
312         assertEquals(20, test.getMinuteOfHour());
313         assertEquals(30, test.getSecondOfMinute());
314         assertEquals(40, test.getMillisOfSecond());
315     }
316
317     public void testConstructor_ObjectString1() throws Throwable JavaDoc {
318         LocalDateTime test = new LocalDateTime("1972-04-06");
319         assertEquals(ISO_UTC, test.getChronology());
320         assertEquals(1972, test.getYear());
321         assertEquals(4, test.getMonthOfYear());
322         assertEquals(6, test.getDayOfMonth());
323         assertEquals(0, test.getHourOfDay());
324         assertEquals(0, test.getMinuteOfHour());
325         assertEquals(0, test.getSecondOfMinute());
326         assertEquals(0, test.getMillisOfSecond());
327     }
328
329     public void testConstructor_ObjectString2() throws Throwable JavaDoc {
330         LocalDateTime test = new LocalDateTime("1972-037");
331         assertEquals(ISO_UTC, test.getChronology());
332         assertEquals(1972, test.getYear());
333         assertEquals(2, test.getMonthOfYear());
334         assertEquals(6, test.getDayOfMonth());
335         assertEquals(0, test.getHourOfDay());
336         assertEquals(0, test.getMinuteOfHour());
337         assertEquals(0, test.getSecondOfMinute());
338         assertEquals(0, test.getMillisOfSecond());
339     }
340
341     public void testConstructor_ObjectString3() throws Throwable JavaDoc {
342         LocalDateTime test = new LocalDateTime("1972-04-06T10:20:30.040");
343         assertEquals(ISO_UTC, test.getChronology());
344         assertEquals(1972, test.getYear());
345         assertEquals(4, test.getMonthOfYear());
346         assertEquals(6, test.getDayOfMonth());
347         assertEquals(10, test.getHourOfDay());
348         assertEquals(20, test.getMinuteOfHour());
349         assertEquals(30, test.getSecondOfMinute());
350         assertEquals(40, test.getMillisOfSecond());
351     }
352
353     public void testConstructor_ObjectString4() throws Throwable JavaDoc {
354         LocalDateTime test = new LocalDateTime("1972-04-06T10:20");
355         assertEquals(ISO_UTC, test.getChronology());
356         assertEquals(1972, test.getYear());
357         assertEquals(4, test.getMonthOfYear());
358         assertEquals(6, test.getDayOfMonth());
359         assertEquals(10, test.getHourOfDay());
360         assertEquals(20, test.getMinuteOfHour());
361         assertEquals(0, test.getSecondOfMinute());
362         assertEquals(0, test.getMillisOfSecond());
363     }
364
365     public void testConstructor_ObjectStringEx1() throws Throwable JavaDoc {
366         try {
367             new LocalDateTime("1970-04-06T+14:00");
368             fail();
369         } catch (IllegalArgumentException JavaDoc ex) {}
370     }
371
372     public void testConstructor_ObjectStringEx2() throws Throwable JavaDoc {
373         try {
374             new LocalDateTime("1970-04-06T10:20:30.040+14:00");
375             fail();
376         } catch (IllegalArgumentException JavaDoc ex) {}
377     }
378
379     public void testConstructor_ObjectStringEx3() throws Throwable JavaDoc {
380         try {
381             new LocalDateTime("T10:20:30.040");
382             fail();
383         } catch (IllegalArgumentException JavaDoc ex) {}
384     }
385
386     public void testConstructor_ObjectStringEx4() throws Throwable JavaDoc {
387         try {
388             new LocalDateTime("T10:20:30.040+14:00");
389             fail();
390         } catch (IllegalArgumentException JavaDoc ex) {}
391     }
392
393     public void testConstructor_ObjectStringEx5() throws Throwable JavaDoc {
394         try {
395             new LocalDateTime("10:20:30.040");
396             fail();
397         } catch (IllegalArgumentException JavaDoc ex) {}
398     }
399
400     public void testConstructor_ObjectStringEx6() throws Throwable JavaDoc {
401         try {
402             new LocalDateTime("10:20:30.040+14:00");
403             fail();
404         } catch (IllegalArgumentException JavaDoc ex) {}
405     }
406
407     public void testConstructor_ObjectLocalDateTime() throws Throwable JavaDoc {
408         LocalDateTime dt = new LocalDateTime(1970, 5, 6, 10, 20, 30, 40, BUDDHIST_UTC);
409         LocalDateTime test = new LocalDateTime(dt);
410         assertEquals(BUDDHIST_UTC, test.getChronology());
411         assertEquals(1970, test.getYear());
412         assertEquals(5, test.getMonthOfYear());
413         assertEquals(6, test.getDayOfMonth());
414         assertEquals(10, test.getHourOfDay());
415         assertEquals(20, test.getMinuteOfHour());
416         assertEquals(30, test.getSecondOfMinute());
417         assertEquals(40, test.getMillisOfSecond());
418     }
419
420     public void testConstructor_ObjectLocalDate() throws Throwable JavaDoc {
421         LocalDate date = new LocalDate(1970, 5, 6);
422         try {
423             new LocalDateTime(date);
424             fail();
425         } catch (IllegalArgumentException JavaDoc ex) {}
426     }
427
428     public void testConstructor_ObjectLocalTime() throws Throwable JavaDoc {
429         LocalTime time = new LocalTime(10, 20, 30, 40);
430         try {
431             new LocalDateTime(time);
432             fail();
433         } catch (IllegalArgumentException JavaDoc ex) {}
434     }
435
436     //-----------------------------------------------------------------------
437
public void testConstructor_Object_DateTimeZone() throws Throwable JavaDoc {
438         Date JavaDoc date = new Date JavaDoc(TEST_TIME1);
439         LocalDateTime test = new LocalDateTime(date, PARIS);
440         assertEquals(ISO_UTC, test.getChronology());
441         assertEquals(1970, test.getYear());
442         assertEquals(4, test.getMonthOfYear());
443         assertEquals(6, test.getDayOfMonth());
444         assertEquals(12 + OFFSET_PARIS, test.getHourOfDay());
445         assertEquals(24, test.getMinuteOfHour());
446         assertEquals(0, test.getSecondOfMinute());
447         assertEquals(0, test.getMillisOfSecond());
448     }
449
450     public void testConstructor_Object_DateTimeZoneMoscow() throws Throwable JavaDoc {
451         LocalDateTime test = new LocalDateTime("1970-04-06T12:24:00", MOSCOW);
452         assertEquals(ISO_UTC, test.getChronology());
453         assertEquals(1970, test.getYear());
454         assertEquals(4, test.getMonthOfYear());
455         assertEquals(6, test.getDayOfMonth());
456         assertEquals(12, test.getHourOfDay());
457         assertEquals(24, test.getMinuteOfHour());
458         assertEquals(0, test.getSecondOfMinute());
459         assertEquals(0, test.getMillisOfSecond());
460     }
461
462     public void testConstructor_Object_DateTimeZoneMoscowBadDateTime() throws Throwable JavaDoc {
463         // 1981-03-31T23:59:59.999+03:00 followed by 1981-04-01T01:00:00.000+04:00
464
// 1981-09-30T23:59:59.999+04:00 followed by 1981-09-30T23:00:00.000+03:00
465

466         // when a DST non-existing time is passed in, it should still work (ie. zone ignored)
467
LocalDateTime test = new LocalDateTime("1981-04-01T00:30:00", MOSCOW); // doesnt exist
468
assertEquals(ISO_UTC, test.getChronology());
469         assertEquals(1981, test.getYear());
470         assertEquals(4, test.getMonthOfYear());
471         assertEquals(1, test.getDayOfMonth());
472         assertEquals(0, test.getHourOfDay());
473         assertEquals(30, test.getMinuteOfHour());
474         assertEquals(0, test.getSecondOfMinute());
475         assertEquals(0, test.getMillisOfSecond());
476     }
477
478     public void testConstructor_nullObject_DateTimeZone() throws Throwable JavaDoc {
479         LocalDateTime test = new LocalDateTime((Object JavaDoc) null, PARIS);
480         assertEquals(ISO_UTC, test.getChronology());
481         assertEquals(1970, test.getYear());
482         assertEquals(6, test.getMonthOfYear());
483         assertEquals(9, test.getDayOfMonth());
484         assertEquals(10 + OFFSET_PARIS, test.getHourOfDay());
485         assertEquals(20, test.getMinuteOfHour());
486         assertEquals(30, test.getSecondOfMinute());
487         assertEquals(40, test.getMillisOfSecond());
488     }
489
490     public void testConstructor_Object_nullDateTimeZone() throws Throwable JavaDoc {
491         Date JavaDoc date = new Date JavaDoc(TEST_TIME1);
492         LocalDateTime test = new LocalDateTime(date, (DateTimeZone) null);
493         assertEquals(ISO_UTC, test.getChronology());
494         assertEquals(1970, test.getYear());
495         assertEquals(4, test.getMonthOfYear());
496         assertEquals(6, test.getDayOfMonth());
497         assertEquals(12 + OFFSET_MOSCOW, test.getHourOfDay());
498         assertEquals(24, test.getMinuteOfHour());
499         assertEquals(0, test.getSecondOfMinute());
500         assertEquals(0, test.getMillisOfSecond());
501     }
502
503     public void testConstructor_nullObject_nullDateTimeZone() throws Throwable JavaDoc {
504         LocalDateTime test = new LocalDateTime((Object JavaDoc) null, (DateTimeZone) null);
505         assertEquals(ISO_UTC, test.getChronology());
506         assertEquals(1970, test.getYear());
507         assertEquals(6, test.getMonthOfYear());
508         assertEquals(9, test.getDayOfMonth());
509         assertEquals(10 + OFFSET_MOSCOW, test.getHourOfDay());
510         assertEquals(20, test.getMinuteOfHour());
511         assertEquals(30, test.getSecondOfMinute());
512         assertEquals(40, test.getMillisOfSecond());
513     }
514
515     //-----------------------------------------------------------------------
516
public void testConstructor_Object_Chronology() throws Throwable JavaDoc {
517         Date JavaDoc date = new Date JavaDoc(TEST_TIME1);
518         LocalDateTime test = new LocalDateTime(date, GREGORIAN_PARIS);
519         assertEquals(GREGORIAN_UTC, test.getChronology());
520         assertEquals(1970, test.getYear());
521         assertEquals(4, test.getMonthOfYear());
522         assertEquals(6, test.getDayOfMonth());
523         assertEquals(12 + OFFSET_PARIS, test.getHourOfDay());
524         assertEquals(24, test.getMinuteOfHour());
525         assertEquals(0, test.getSecondOfMinute());
526         assertEquals(0, test.getMillisOfSecond());
527     }
528
529     public void testConstructor_Object_ChronologyMoscow() throws Throwable JavaDoc {
530         LocalDateTime test = new LocalDateTime("1970-04-06T12:24:00", GREGORIAN_MOSCOW);
531         assertEquals(GREGORIAN_UTC, test.getChronology());
532         assertEquals(1970, test.getYear());
533         assertEquals(4, test.getMonthOfYear());
534         assertEquals(6, test.getDayOfMonth());
535         assertEquals(12, test.getHourOfDay());
536         assertEquals(24, test.getMinuteOfHour());
537         assertEquals(0, test.getSecondOfMinute());
538         assertEquals(0, test.getMillisOfSecond());
539     }
540
541     public void testConstructor_Object_ChronologyMoscowBadDateTime() throws Throwable JavaDoc {
542         // 1981-03-31T23:59:59.999+03:00 followed by 1981-04-01T01:00:00.000+04:00
543
// 1981-09-30T23:59:59.999+04:00 followed by 1981-09-30T23:00:00.000+03:00
544

545         // when a DST non-existing time is passed in, it should still work (ie. zone ignored)
546
LocalDateTime test = new LocalDateTime("1981-04-01T00:30:00", GREGORIAN_MOSCOW); // doesnt exist
547
assertEquals(GREGORIAN_UTC, test.getChronology());
548         assertEquals(1981, test.getYear());
549         assertEquals(4, test.getMonthOfYear());
550         assertEquals(1, test.getDayOfMonth());
551         assertEquals(0, test.getHourOfDay());
552         assertEquals(30, test.getMinuteOfHour());
553         assertEquals(0, test.getSecondOfMinute());
554         assertEquals(0, test.getMillisOfSecond());
555     }
556
557     public void testConstructor_nullObject_Chronology() throws Throwable JavaDoc {
558         LocalDateTime test = new LocalDateTime((Object JavaDoc) null, GREGORIAN_PARIS);
559         assertEquals(GREGORIAN_UTC, test.getChronology());
560         assertEquals(1970, test.getYear());
561         assertEquals(6, test.getMonthOfYear());
562         assertEquals(9, test.getDayOfMonth());
563         assertEquals(10 + OFFSET_PARIS, test.getHourOfDay());
564         assertEquals(20, test.getMinuteOfHour());
565         assertEquals(30, test.getSecondOfMinute());
566         assertEquals(40, test.getMillisOfSecond());
567     }
568
569     public void testConstructor_Object_nullChronology() throws Throwable JavaDoc {
570         Date JavaDoc date = new Date JavaDoc(TEST_TIME1);
571         LocalDateTime test = new LocalDateTime(date, (Chronology) null);
572         assertEquals(ISO_UTC, test.getChronology());
573         assertEquals(1970, test.getYear());
574         assertEquals(4, test.getMonthOfYear());
575         assertEquals(6, test.getDayOfMonth());
576         assertEquals(12 + OFFSET_MOSCOW, test.getHourOfDay());
577         assertEquals(24, test.getMinuteOfHour());
578         assertEquals(0, test.getSecondOfMinute());
579         assertEquals(0, test.getMillisOfSecond());
580     }
581
582     public void testConstructor_nullObject_nullChronology() throws Throwable JavaDoc {
583         LocalDateTime test = new LocalDateTime((Object JavaDoc) null, (Chronology) null);
584         assertEquals(ISO_UTC, test.getChronology());
585         assertEquals(1970, test.getYear());
586         assertEquals(6, test.getMonthOfYear());
587         assertEquals(9, test.getDayOfMonth());
588         assertEquals(10 + OFFSET_MOSCOW, test.getHourOfDay());
589         assertEquals(20, test.getMinuteOfHour());
590         assertEquals(30, test.getSecondOfMinute());
591         assertEquals(40, test.getMillisOfSecond());
592     }
593
594     //-----------------------------------------------------------------------
595
public void testConstructor_int_int_int_int_int() throws Throwable JavaDoc {
596         LocalDateTime test = new LocalDateTime(2005, 6, 9, 10, 20);
597         assertEquals(ISO_UTC, test.getChronology());
598         assertEquals(2005, test.getYear());
599         assertEquals(6, test.getMonthOfYear());
600         assertEquals(9, test.getDayOfMonth());
601         assertEquals(10, test.getHourOfDay());
602         assertEquals(20, test.getMinuteOfHour());
603         assertEquals(0, test.getSecondOfMinute());
604         assertEquals(0, test.getMillisOfSecond());
605     }
606
607     //-----------------------------------------------------------------------
608
public void testConstructor_int_int_int_int_int_int() throws Throwable JavaDoc {
609         LocalDateTime test = new LocalDateTime(2005, 6, 9, 10, 20, 30);
610         assertEquals(ISO_UTC, test.getChronology());
611         assertEquals(2005, test.getYear());
612         assertEquals(6, test.getMonthOfYear());
613         assertEquals(9, test.getDayOfMonth());
614         assertEquals(10, test.getHourOfDay());
615         assertEquals(20, test.getMinuteOfHour());
616         assertEquals(30, test.getSecondOfMinute());
617         assertEquals(0, test.getMillisOfSecond());
618     }
619
620     //-----------------------------------------------------------------------
621
public void testConstructor_int_int_int_int_int_int_int() throws Throwable JavaDoc {
622         LocalDateTime test = new LocalDateTime(2005, 6, 9, 10, 20, 30, 40);
623         assertEquals(ISO_UTC, test.getChronology());
624         assertEquals(2005, test.getYear());
625         assertEquals(6, test.getMonthOfYear());
626         assertEquals(9, test.getDayOfMonth());
627         assertEquals(10, test.getHourOfDay());
628         assertEquals(20, test.getMinuteOfHour());
629         assertEquals(30, test.getSecondOfMinute());
630         assertEquals(40, test.getMillisOfSecond());
631         try {
632             new LocalDateTime(Integer.MIN_VALUE, 6, 9, 10, 20, 30, 40);
633             fail();
634         } catch (IllegalArgumentException JavaDoc ex) {}
635         try {
636             new LocalDateTime(Integer.MAX_VALUE, 6, 9, 10, 20, 30, 40);
637             fail();
638         } catch (IllegalArgumentException JavaDoc ex) {}
639         try {
640             new LocalDateTime(2005, 0, 9, 10, 20, 30, 40);
641             fail();
642         } catch (IllegalArgumentException JavaDoc ex) {}
643         try {
644             new LocalDateTime(2005, 13, 9, 10, 20, 30, 40);
645             fail();
646         } catch (IllegalArgumentException JavaDoc ex) {}
647         try {
648             new LocalDateTime(2005, 6, 0, 10, 20, 30, 40);
649             fail();
650         } catch (IllegalArgumentException JavaDoc ex) {}
651         try {
652             new LocalDateTime(2005, 6, 31, 10, 20, 30, 40);
653             fail();
654         } catch (IllegalArgumentException JavaDoc ex) {}
655         new LocalDateTime(2005, 7, 31, 10, 20, 30, 40);
656         try {
657             new LocalDateTime(2005, 7, 32, 10, 20, 30, 40);
658             fail();
659         } catch (IllegalArgumentException JavaDoc ex) {}
660     }
661
662     public void testConstructor_int_int_int_Chronology() throws Throwable JavaDoc {
663         LocalDateTime test = new LocalDateTime(2005, 6, 9, 10, 20, 30, 40, GREGORIAN_PARIS);
664         assertEquals(GREGORIAN_UTC, test.getChronology());
665         assertEquals(2005, test.getYear());
666         assertEquals(6, test.getMonthOfYear());
667         assertEquals(9, test.getDayOfMonth());
668         assertEquals(10, test.getHourOfDay()); // PARIS has no effect
669
assertEquals(20, test.getMinuteOfHour());
670         assertEquals(30, test.getSecondOfMinute());
671         assertEquals(40, test.getMillisOfSecond());
672         try {
673             new LocalDateTime(Integer.MIN_VALUE, 6, 9, 10, 20, 30, 40, GREGORIAN_PARIS);
674             fail();
675         } catch (IllegalArgumentException JavaDoc ex) {}
676         try {
677             new LocalDateTime(Integer.MAX_VALUE, 6, 9, 10, 20, 30, 40, GREGORIAN_PARIS);
678             fail();
679         } catch (IllegalArgumentException JavaDoc ex) {}
680         try {
681             new LocalDateTime(2005, 0, 9, 10, 20, 30, 40, GREGORIAN_PARIS);
682             fail();
683         } catch (IllegalArgumentException JavaDoc ex) {}
684         try {
685             new LocalDateTime(2005, 13, 9, 10, 20, 30, 40, GREGORIAN_PARIS);
686             fail();
687         } catch (IllegalArgumentException JavaDoc ex) {}
688         try {
689             new LocalDateTime(2005, 6, 0, 10, 20, 30, 40, GREGORIAN_PARIS);
690             fail();
691         } catch (IllegalArgumentException JavaDoc ex) {}
692         try {
693             new LocalDateTime(2005, 6, 31, 10, 20, 30, 40, GREGORIAN_PARIS);
694             fail();
695         } catch (IllegalArgumentException JavaDoc ex) {}
696         new LocalDateTime(2005, 7, 31, 10, 20, 30, 40, GREGORIAN_PARIS);
697         try {
698             new LocalDateTime(2005, 7, 32, 10, 20, 30, 40, GREGORIAN_PARIS);
699             fail();
700         } catch (IllegalArgumentException JavaDoc ex) {}
701     }
702
703     public void testConstructor_int_int_int_nullChronology() throws Throwable JavaDoc {
704         LocalDateTime test = new LocalDateTime(2005, 6, 9, 10, 20, 30, 40, null);
705         assertEquals(ISO_UTC, test.getChronology());
706         assertEquals(2005, test.getYear());
707         assertEquals(6, test.getMonthOfYear());
708         assertEquals(9, test.getDayOfMonth());
709     }
710
711 }
712
Popular Tags