1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.joda.time;
17
18 import java.util.Calendar;
19 import java.util.Date;
20 import java.util.GregorianCalendar;
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[] 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 name) {
76 super(name);
77 }
78
79 protected void setUp() throws Exception {
80 DateTimeUtils.setCurrentMillisFixed(TEST_TIME_NOW);
81 zone = DateTimeZone.getDefault();
82 DateTimeZone.setDefault(MOSCOW);
83 }
84
85 protected void tearDown() throws Exception {
86 DateTimeUtils.setCurrentMillisSystem();
87 DateTimeZone.setDefault(zone);
88 zone = null;
89 }
90
91
92 public void testFactory_FromCalendarFields() throws Exception {
93 GregorianCalendar cal = new GregorianCalendar(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) null);
99 fail();
100 } catch (IllegalArgumentException ex) {}
101 }
102
103
104 public void testFactory_FromDateFields() throws Exception {
105 GregorianCalendar cal = new GregorianCalendar(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) null);
111 fail();
112 } catch (IllegalArgumentException ex) {}
113 }
114
115
116 public void testConstructor() throws Throwable {
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 {
130 DateTime dt = new DateTime(2005, 6, 8, 23, 59, 0, 0, LONDON);
131 DateTimeUtils.setCurrentMillisFixed(dt.getMillis());
132
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
293 Date date = new Date(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 {
306 LocalDateTime test = new LocalDateTime((Object) 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 {
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 {
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 {
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 {
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 {
366 try {
367 new LocalDateTime("1970-04-06T+14:00");
368 fail();
369 } catch (IllegalArgumentException ex) {}
370 }
371
372 public void testConstructor_ObjectStringEx2() throws Throwable {
373 try {
374 new LocalDateTime("1970-04-06T10:20:30.040+14:00");
375 fail();
376 } catch (IllegalArgumentException ex) {}
377 }
378
379 public void testConstructor_ObjectStringEx3() throws Throwable {
380 try {
381 new LocalDateTime("T10:20:30.040");
382 fail();
383 } catch (IllegalArgumentException ex) {}
384 }
385
386 public void testConstructor_ObjectStringEx4() throws Throwable {
387 try {
388 new LocalDateTime("T10:20:30.040+14:00");
389 fail();
390 } catch (IllegalArgumentException ex) {}
391 }
392
393 public void testConstructor_ObjectStringEx5() throws Throwable {
394 try {
395 new LocalDateTime("10:20:30.040");
396 fail();
397 } catch (IllegalArgumentException ex) {}
398 }
399
400 public void testConstructor_ObjectStringEx6() throws Throwable {
401 try {
402 new LocalDateTime("10:20:30.040+14:00");
403 fail();
404 } catch (IllegalArgumentException ex) {}
405 }
406
407 public void testConstructor_ObjectLocalDateTime() throws Throwable {
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 {
421 LocalDate date = new LocalDate(1970, 5, 6);
422 try {
423 new LocalDateTime(date);
424 fail();
425 } catch (IllegalArgumentException ex) {}
426 }
427
428 public void testConstructor_ObjectLocalTime() throws Throwable {
429 LocalTime time = new LocalTime(10, 20, 30, 40);
430 try {
431 new LocalDateTime(time);
432 fail();
433 } catch (IllegalArgumentException ex) {}
434 }
435
436
437 public void testConstructor_Object_DateTimeZone() throws Throwable {
438 Date date = new Date(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 {
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 {
463
464
465
466
467 LocalDateTime test = new LocalDateTime("1981-04-01T00:30:00", MOSCOW);
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 {
479 LocalDateTime test = new LocalDateTime((Object) 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 {
491 Date date = new Date(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 {
504 LocalDateTime test = new LocalDateTime((Object) 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 {
517 Date date = new Date(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 {
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 {
542
543
544
545
546 LocalDateTime test = new LocalDateTime("1981-04-01T00:30:00", GREGORIAN_MOSCOW);
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 {
558 LocalDateTime test = new LocalDateTime((Object) 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 {
570 Date date = new Date(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 {
583 LocalDateTime test = new LocalDateTime((Object) 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 {
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 {
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 {
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 ex) {}
635 try {
636 new LocalDateTime(Integer.MAX_VALUE, 6, 9, 10, 20, 30, 40);
637 fail();
638 } catch (IllegalArgumentException ex) {}
639 try {
640 new LocalDateTime(2005, 0, 9, 10, 20, 30, 40);
641 fail();
642 } catch (IllegalArgumentException ex) {}
643 try {
644 new LocalDateTime(2005, 13, 9, 10, 20, 30, 40);
645 fail();
646 } catch (IllegalArgumentException ex) {}
647 try {
648 new LocalDateTime(2005, 6, 0, 10, 20, 30, 40);
649 fail();
650 } catch (IllegalArgumentException ex) {}
651 try {
652 new LocalDateTime(2005, 6, 31, 10, 20, 30, 40);
653 fail();
654 } catch (IllegalArgumentException 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 ex) {}
660 }
661
662 public void testConstructor_int_int_int_Chronology() throws Throwable {
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());
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 ex) {}
676 try {
677 new LocalDateTime(Integer.MAX_VALUE, 6, 9, 10, 20, 30, 40, GREGORIAN_PARIS);
678 fail();
679 } catch (IllegalArgumentException ex) {}
680 try {
681 new LocalDateTime(2005, 0, 9, 10, 20, 30, 40, GREGORIAN_PARIS);
682 fail();
683 } catch (IllegalArgumentException ex) {}
684 try {
685 new LocalDateTime(2005, 13, 9, 10, 20, 30, 40, GREGORIAN_PARIS);
686 fail();
687 } catch (IllegalArgumentException ex) {}
688 try {
689 new LocalDateTime(2005, 6, 0, 10, 20, 30, 40, GREGORIAN_PARIS);
690 fail();
691 } catch (IllegalArgumentException ex) {}
692 try {
693 new LocalDateTime(2005, 6, 31, 10, 20, 30, 40, GREGORIAN_PARIS);
694 fail();
695 } catch (IllegalArgumentException 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 ex) {}
701 }
702
703 public void testConstructor_int_int_int_nullChronology() throws Throwable {
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 }