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.Locale;
19 import java.util.TimeZone;
20
21 import junit.framework.TestCase;
22 import junit.framework.TestSuite;
23
24 import org.joda.time.chrono.BuddhistChronology;
25 import org.joda.time.chrono.CopticChronology;
26 import org.joda.time.chrono.GJChronology;
27 import org.joda.time.chrono.ISOChronology;
28 import org.joda.time.convert.ConverterManager;
29 import org.joda.time.convert.IntervalConverter;
30
31
32
33
34
35
36 public class TestInterval_Constructors extends TestCase {
37
38
39
40 private static final DateTimeZone PARIS = DateTimeZone.forID("Europe/Paris");
41 private static final DateTimeZone LONDON = DateTimeZone.forID("Europe/London");
42
43 long y2002days = 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
44 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 +
45 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
46 366 + 365;
47 long y2003days = 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
48 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 +
49 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
50 366 + 365 + 365;
51
52
53 private long TEST_TIME_NOW =
54 (y2002days + 31L + 28L + 31L + 30L + 31L + 9L -1L) * DateTimeConstants.MILLIS_PER_DAY;
55
56
57
58
59
60
61
62
63
64
65
66
67
68 private DateTimeZone originalDateTimeZone = null;
69 private TimeZone originalTimeZone = null;
70 private Locale originalLocale = null;
71
72 public static void main(String[] args) {
73 junit.textui.TestRunner.run(suite());
74 }
75
76 public static TestSuite suite() {
77 return new TestSuite(TestInterval_Constructors.class);
78 }
79
80 public TestInterval_Constructors(String name) {
81 super(name);
82 }
83
84 protected void setUp() throws Exception {
85 DateTimeUtils.setCurrentMillisFixed(TEST_TIME_NOW);
86 originalDateTimeZone = DateTimeZone.getDefault();
87 originalTimeZone = TimeZone.getDefault();
88 originalLocale = Locale.getDefault();
89 DateTimeZone.setDefault(PARIS);
90 TimeZone.setDefault(PARIS.toTimeZone());
91 Locale.setDefault(Locale.FRANCE);
92 }
93
94 protected void tearDown() throws Exception {
95 DateTimeUtils.setCurrentMillisSystem();
96 DateTimeZone.setDefault(originalDateTimeZone);
97 TimeZone.setDefault(originalTimeZone);
98 Locale.setDefault(originalLocale);
99 originalDateTimeZone = null;
100 originalTimeZone = null;
101 originalLocale = null;
102 }
103
104
105 public void testParse_noFormatter() throws Throwable {
106 DateTime start = new DateTime(2010, 6, 30, 12, 30, ISOChronology.getInstance(PARIS));
107 DateTime end = new DateTime(2010, 7, 1, 14, 30, ISOChronology.getInstance(PARIS));
108 assertEquals(new Interval(start, end), Interval.parse("2010-06-30T12:30/2010-07-01T14:30"));
109 assertEquals(new Interval(start, end), Interval.parse("2010-06-30T12:30/P1DT2H"));
110 assertEquals(new Interval(start, end), Interval.parse("P1DT2H/2010-07-01T14:30"));
111 }
112
113
114 public void testConstructor_long_long1() throws Throwable {
115 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
116 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
117 Interval test = new Interval(dt1.getMillis(), dt2.getMillis());
118 assertEquals(dt1.getMillis(), test.getStartMillis());
119 assertEquals(dt2.getMillis(), test.getEndMillis());
120 assertEquals(ISOChronology.getInstance(), test.getChronology());
121 }
122
123 public void testConstructor_long_long2() throws Throwable {
124 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
125 Interval test = new Interval(dt1.getMillis(), dt1.getMillis());
126 assertEquals(dt1.getMillis(), test.getStartMillis());
127 assertEquals(dt1.getMillis(), test.getEndMillis());
128 assertEquals(ISOChronology.getInstance(), test.getChronology());
129 }
130
131 public void testConstructor_long_long3() throws Throwable {
132 DateTime dt1 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
133 DateTime dt2 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
134 try {
135 new Interval(dt1.getMillis(), dt2.getMillis());
136 fail();
137 } catch (IllegalArgumentException ex) {}
138 }
139
140
141 public void testConstructor_long_long_Zone() throws Throwable {
142 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
143 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
144 Interval test = new Interval(dt1.getMillis(), dt2.getMillis(), LONDON);
145 assertEquals(dt1.getMillis(), test.getStartMillis());
146 assertEquals(dt2.getMillis(), test.getEndMillis());
147 assertEquals(ISOChronology.getInstance(LONDON), test.getChronology());
148 }
149
150 public void testConstructor_long_long_nullZone() throws Throwable {
151 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
152 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
153 Interval test = new Interval(dt1.getMillis(), dt2.getMillis(), (DateTimeZone) null);
154 assertEquals(dt1.getMillis(), test.getStartMillis());
155 assertEquals(dt2.getMillis(), test.getEndMillis());
156 assertEquals(ISOChronology.getInstance(), test.getChronology());
157 }
158
159
160 public void testConstructor_long_long_Chronology() throws Throwable {
161 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
162 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
163 Interval test = new Interval(dt1.getMillis(), dt2.getMillis(), GJChronology.getInstance());
164 assertEquals(dt1.getMillis(), test.getStartMillis());
165 assertEquals(dt2.getMillis(), test.getEndMillis());
166 assertEquals(GJChronology.getInstance(), test.getChronology());
167 }
168
169 public void testConstructor_long_long_nullChronology() throws Throwable {
170 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
171 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
172 Interval test = new Interval(dt1.getMillis(), dt2.getMillis(), (Chronology) null);
173 assertEquals(dt1.getMillis(), test.getStartMillis());
174 assertEquals(dt2.getMillis(), test.getEndMillis());
175 assertEquals(ISOChronology.getInstance(), test.getChronology());
176 }
177
178
179 public void testConstructor_RI_RI1() throws Throwable {
180 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
181 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
182 Interval test = new Interval(dt1, dt2);
183 assertEquals(dt1.getMillis(), test.getStartMillis());
184 assertEquals(dt2.getMillis(), test.getEndMillis());
185 }
186
187 public void testConstructor_RI_RI2() throws Throwable {
188 Instant dt1 = new Instant(new DateTime(2004, 6, 9, 0, 0, 0, 0));
189 Instant dt2 = new Instant(new DateTime(2005, 7, 10, 1, 1, 1, 1));
190 Interval test = new Interval(dt1, dt2);
191 assertEquals(dt1.getMillis(), test.getStartMillis());
192 assertEquals(dt2.getMillis(), test.getEndMillis());
193 }
194
195 public void testConstructor_RI_RI3() throws Throwable {
196 Interval test = new Interval((ReadableInstant) null, (ReadableInstant) null);
197 assertEquals(TEST_TIME_NOW, test.getStartMillis());
198 assertEquals(TEST_TIME_NOW, test.getEndMillis());
199 }
200
201 public void testConstructor_RI_RI4() throws Throwable {
202 DateTime dt1 = new DateTime(2000, 6, 9, 0, 0, 0, 0);
203 Interval test = new Interval(dt1, (ReadableInstant) null);
204 assertEquals(dt1.getMillis(), test.getStartMillis());
205 assertEquals(TEST_TIME_NOW, test.getEndMillis());
206 }
207
208 public void testConstructor_RI_RI5() throws Throwable {
209 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
210 Interval test = new Interval((ReadableInstant) null, dt2);
211 assertEquals(TEST_TIME_NOW, test.getStartMillis());
212 assertEquals(dt2.getMillis(), test.getEndMillis());
213 }
214
215 public void testConstructor_RI_RI6() throws Throwable {
216 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
217 Interval test = new Interval(dt1, dt1);
218 assertEquals(dt1.getMillis(), test.getStartMillis());
219 assertEquals(dt1.getMillis(), test.getEndMillis());
220 }
221
222 public void testConstructor_RI_RI7() throws Throwable {
223 DateTime dt1 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
224 DateTime dt2 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
225 try {
226 new Interval(dt1, dt2);
227 fail();
228 } catch (IllegalArgumentException ex) {}
229 }
230
231 public void testConstructor_RI_RI_chronoStart() throws Throwable {
232 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0, GJChronology.getInstance());
233 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
234 Interval test = new Interval(dt1, dt2);
235 assertEquals(dt1.getMillis(), test.getStartMillis());
236 assertEquals(dt2.getMillis(), test.getEndMillis());
237 assertEquals(GJChronology.getInstance(), test.getChronology());
238 }
239
240 public void testConstructor_RI_RI_chronoEnd() throws Throwable {
241 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
242 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1, GJChronology.getInstance());
243 Interval test = new Interval(dt1, dt2);
244 assertEquals(dt1.getMillis(), test.getStartMillis());
245 assertEquals(dt2.getMillis(), test.getEndMillis());
246 assertEquals(ISOChronology.getInstance(), test.getChronology());
247 }
248
249 public void testConstructor_RI_RI_zones() throws Throwable {
250 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0, LONDON);
251 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1, PARIS);
252 Interval test = new Interval(dt1, dt2);
253 assertEquals(dt1.getMillis(), test.getStartMillis());
254 assertEquals(dt2.getMillis(), test.getEndMillis());
255 assertEquals(ISOChronology.getInstance(LONDON), test.getChronology());
256 }
257
258 public void testConstructor_RI_RI_instant() throws Throwable {
259 Instant dt1 = new Instant(12345678L);
260 Instant dt2 = new Instant(22345678L);
261 Interval test = new Interval(dt1, dt2);
262 assertEquals(12345678L, test.getStartMillis());
263 assertEquals(22345678L, test.getEndMillis());
264 assertEquals(ISOChronology.getInstanceUTC(), test.getChronology());
265 }
266
267
268 public void testConstructor_RI_RP1() throws Throwable {
269 DateTime dt = new DateTime(TEST_TIME_NOW);
270 Period dur = new Period(0, 6, 0, 0, 1, 0, 0, 0);
271 long result = TEST_TIME_NOW;
272 result = ISOChronology.getInstance().months().add(result, 6);
273 result = ISOChronology.getInstance().hours().add(result, 1);
274
275 Interval test = new Interval(dt, dur);
276 assertEquals(dt.getMillis(), test.getStartMillis());
277 assertEquals(result, test.getEndMillis());
278 }
279
280 public void testConstructor_RI_RP2() throws Throwable {
281 Instant dt = new Instant(new DateTime(TEST_TIME_NOW));
282 Period dur = new Period(0, 6, 0, 3, 1, 0, 0, 0);
283 long result = TEST_TIME_NOW;
284 result = ISOChronology.getInstanceUTC().months().add(result, 6);
285 result = ISOChronology.getInstanceUTC().days().add(result, 3);
286 result = ISOChronology.getInstanceUTC().hours().add(result, 1);
287
288 Interval test = new Interval(dt, dur);
289 assertEquals(dt.getMillis(), test.getStartMillis());
290 assertEquals(result, test.getEndMillis());
291 }
292
293 public void testConstructor_RI_RP3() throws Throwable {
294 DateTime dt = new DateTime(TEST_TIME_NOW, CopticChronology.getInstanceUTC());
295 Period dur = new Period(0, 6, 0, 3, 1, 0, 0, 0, PeriodType.standard());
296 long result = TEST_TIME_NOW;
297 result = CopticChronology.getInstanceUTC().months().add(result, 6);
298 result = CopticChronology.getInstanceUTC().days().add(result, 3);
299 result = CopticChronology.getInstanceUTC().hours().add(result, 1);
300
301 Interval test = new Interval(dt, dur);
302 assertEquals(dt.getMillis(), test.getStartMillis());
303 assertEquals(result, test.getEndMillis());
304 }
305
306 public void testConstructor_RI_RP4() throws Throwable {
307 DateTime dt = new DateTime(TEST_TIME_NOW);
308 Period dur = new Period(1 * DateTimeConstants.MILLIS_PER_HOUR + 23L);
309 long result = TEST_TIME_NOW;
310 result = ISOChronology.getInstance().hours().add(result, 1);
311 result = ISOChronology.getInstance().millis().add(result, 23);
312
313 Interval test = new Interval(dt, dur);
314 assertEquals(dt.getMillis(), test.getStartMillis());
315 assertEquals(result, test.getEndMillis());
316 }
317
318 public void testConstructor_RI_RP5() throws Throwable {
319 Interval test = new Interval((ReadableInstant) null, (ReadablePeriod) null);
320 assertEquals(TEST_TIME_NOW, test.getStartMillis());
321 assertEquals(TEST_TIME_NOW, test.getEndMillis());
322 }
323
324 public void testConstructor_RI_RP6() throws Throwable {
325 DateTime dt = new DateTime(TEST_TIME_NOW);
326 Interval test = new Interval(dt, (ReadablePeriod) null);
327 assertEquals(dt.getMillis(), test.getStartMillis());
328 assertEquals(dt.getMillis(), test.getEndMillis());
329 }
330
331 public void testConstructor_RI_RP7() throws Throwable {
332 Period dur = new Period(0, 6, 0, 0, 1, 0, 0, 0);
333 long result = TEST_TIME_NOW;
334 result = ISOChronology.getInstance().monthOfYear().add(result, 6);
335 result = ISOChronology.getInstance().hourOfDay().add(result, 1);
336
337 Interval test = new Interval((ReadableInstant) null, dur);
338 assertEquals(TEST_TIME_NOW, test.getStartMillis());
339 assertEquals(result, test.getEndMillis());
340 }
341
342 public void testConstructor_RI_RP8() throws Throwable {
343 DateTime dt = new DateTime(TEST_TIME_NOW);
344 Period dur = new Period(0, 0, 0, 0, 0, 0, 0, -1);
345 try {
346 new Interval(dt, dur);
347 fail();
348 } catch (IllegalArgumentException ex) {}
349 }
350
351
352 public void testConstructor_RP_RI1() throws Throwable {
353 DateTime dt = new DateTime(TEST_TIME_NOW);
354 Period dur = new Period(0, 6, 0, 0, 1, 0, 0, 0);
355 long result = TEST_TIME_NOW;
356 result = ISOChronology.getInstance().months().add(result, -6);
357 result = ISOChronology.getInstance().hours().add(result, -1);
358
359 Interval test = new Interval(dur, dt);
360 assertEquals(result, test.getStartMillis());
361 assertEquals(dt.getMillis(), test.getEndMillis());
362 }
363
364 public void testConstructor_RP_RI2() throws Throwable {
365 Instant dt = new Instant(new DateTime(TEST_TIME_NOW));
366 Period dur = new Period(0, 6, 0, 3, 1, 0, 0, 0);
367 long result = TEST_TIME_NOW;
368 result = ISOChronology.getInstanceUTC().months().add(result, -6);
369 result = ISOChronology.getInstanceUTC().days().add(result, -3);
370 result = ISOChronology.getInstanceUTC().hours().add(result, -1);
371
372 Interval test = new Interval(dur, dt);
373 assertEquals(result, test.getStartMillis());
374 assertEquals(dt.getMillis(), test.getEndMillis());
375 }
376
377 public void testConstructor_RP_RI3() throws Throwable {
378 DateTime dt = new DateTime(TEST_TIME_NOW, CopticChronology.getInstanceUTC());
379 Period dur = new Period(0, 6, 0, 3, 1, 0, 0, 0, PeriodType.standard());
380 long result = TEST_TIME_NOW;
381 result = CopticChronology.getInstanceUTC().months().add(result, -6);
382 result = CopticChronology.getInstanceUTC().days().add(result, -3);
383 result = CopticChronology.getInstanceUTC().hours().add(result, -1);
384
385 Interval test = new Interval(dur, dt);
386 assertEquals(result, test.getStartMillis());
387 assertEquals(dt.getMillis(), test.getEndMillis());
388 }
389
390 public void testConstructor_RP_RI4() throws Throwable {
391 DateTime dt = new DateTime(TEST_TIME_NOW);
392 Period dur = new Period(1 * DateTimeConstants.MILLIS_PER_HOUR + 23L);
393 long result = TEST_TIME_NOW;
394 result = ISOChronology.getInstance().hours().add(result, -1);
395 result = ISOChronology.getInstance().millis().add(result, -23);
396
397 Interval test = new Interval(dur, dt);
398 assertEquals(result, test.getStartMillis());
399 assertEquals(dt.getMillis(), test.getEndMillis());
400 }
401
402 public void testConstructor_RP_RI5() throws Throwable {
403 Interval test = new Interval((ReadablePeriod) null, (ReadableInstant) null);
404 assertEquals(TEST_TIME_NOW, test.getStartMillis());
405 assertEquals(TEST_TIME_NOW, test.getEndMillis());
406 }
407
408 public void testConstructor_RP_RI6() throws Throwable {
409 DateTime dt = new DateTime(TEST_TIME_NOW);
410 Interval test = new Interval((ReadablePeriod) null, dt);
411 assertEquals(dt.getMillis(), test.getStartMillis());
412 assertEquals(dt.getMillis(), test.getEndMillis());
413 }
414
415 public void testConstructor_RP_RI7() throws Throwable {
416 Period dur = new Period(0, 6, 0, 0, 1, 0, 0, 0);
417 long result = TEST_TIME_NOW;
418 result = ISOChronology.getInstance().monthOfYear().add(result, -6);
419 result = ISOChronology.getInstance().hourOfDay().add(result, -1);
420
421 Interval test = new Interval(dur, (ReadableInstant) null);
422 assertEquals(result, test.getStartMillis());
423 assertEquals(TEST_TIME_NOW, test.getEndMillis());
424 }
425
426 public void testConstructor_RP_RI8() throws Throwable {
427 DateTime dt = new DateTime(TEST_TIME_NOW);
428 Period dur = new Period(0, 0, 0, 0, 0, 0, 0, -1);
429 try {
430 new Interval(dur, dt);
431 fail();
432 } catch (IllegalArgumentException ex) {}
433 }
434
435
436 public void testConstructor_RI_RD1() throws Throwable {
437 long result = TEST_TIME_NOW;
438 result = ISOChronology.getInstance().months().add(result, 6);
439 result = ISOChronology.getInstance().hours().add(result, 1);
440
441 DateTime dt = new DateTime(TEST_TIME_NOW);
442 Duration dur = new Duration(result - TEST_TIME_NOW);
443
444 Interval test = new Interval(dt, dur);
445 assertEquals(dt.getMillis(), test.getStartMillis());
446 assertEquals(result, test.getEndMillis());
447 }
448
449 public void testConstructor_RI_RD2() throws Throwable {
450 Interval test = new Interval((ReadableInstant) null, (ReadableDuration) null);
451 assertEquals(TEST_TIME_NOW, test.getStartMillis());
452 assertEquals(TEST_TIME_NOW, test.getEndMillis());
453 }
454
455 public void testConstructor_RI_RD3() throws Throwable {
456 DateTime dt = new DateTime(TEST_TIME_NOW);
457 Interval test = new Interval(dt, (ReadableDuration) null);
458 assertEquals(dt.getMillis(), test.getStartMillis());
459 assertEquals(dt.getMillis(), test.getEndMillis());
460 }
461
462 public void testConstructor_RI_RD4() throws Throwable {
463 long result = TEST_TIME_NOW;
464 result = ISOChronology.getInstance().monthOfYear().add(result, 6);
465 result = ISOChronology.getInstance().hourOfDay().add(result, 1);
466
467 Duration dur = new Duration(result - TEST_TIME_NOW);
468
469 Interval test = new Interval((ReadableInstant) null, dur);
470 assertEquals(TEST_TIME_NOW, test.getStartMillis());
471 assertEquals(result, test.getEndMillis());
472 }
473
474 public void testConstructor_RI_RD5() throws Throwable {
475 DateTime dt = new DateTime(TEST_TIME_NOW);
476 Duration dur = new Duration(-1);
477 try {
478 new Interval(dt, dur);
479 fail();
480 } catch (IllegalArgumentException ex) {}
481 }
482
483
484 public void testConstructor_RD_RI1() throws Throwable {
485 long result = TEST_TIME_NOW;
486 result = ISOChronology.getInstance().months().add(result, -6);
487 result = ISOChronology.getInstance().hours().add(result, -1);
488
489 DateTime dt = new DateTime(TEST_TIME_NOW);
490 Duration dur = new Duration(TEST_TIME_NOW - result);
491
492 Interval test = new Interval(dur, dt);
493 assertEquals(result, test.getStartMillis());
494 assertEquals(dt.getMillis(), test.getEndMillis());
495 }
496
497 public void testConstructor_RD_RI2() throws Throwable {
498 Interval test = new Interval((ReadableDuration) null, (ReadableInstant) null);
499 assertEquals(TEST_TIME_NOW, test.getStartMillis());
500 assertEquals(TEST_TIME_NOW, test.getEndMillis());
501 }
502
503 public void testConstructor_RD_RI3() throws Throwable {
504 DateTime dt = new DateTime(TEST_TIME_NOW);
505 Interval test = new Interval((ReadableDuration) null, dt);
506 assertEquals(dt.getMillis(), test.getStartMillis());
507 assertEquals(dt.getMillis(), test.getEndMillis());
508 }
509
510 public void testConstructor_RD_RI4() throws Throwable {
511 long result = TEST_TIME_NOW;
512 result = ISOChronology.getInstance().monthOfYear().add(result, -6);
513 result = ISOChronology.getInstance().hourOfDay().add(result, -1);
514
515 Duration dur = new Duration(TEST_TIME_NOW - result);
516
517 Interval test = new Interval(dur, (ReadableInstant) null);
518 assertEquals(result, test.getStartMillis());
519 assertEquals(TEST_TIME_NOW, test.getEndMillis());
520 }
521
522 public void testConstructor_RD_RI5() throws Throwable {
523 DateTime dt = new DateTime(TEST_TIME_NOW);
524 Duration dur = new Duration(-1);
525 try {
526 new Interval(dur, dt);
527 fail();
528 } catch (IllegalArgumentException ex) {}
529 }
530
531
532 public void testConstructor_Object1() throws Throwable {
533 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
534 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
535 Interval test = new Interval(dt1.toString() + '/' + dt2.toString());
536 assertEquals(dt1.getMillis(), test.getStartMillis());
537 assertEquals(dt2.getMillis(), test.getEndMillis());
538 }
539
540 public void testConstructor_Object2() throws Throwable {
541 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
542 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
543 Interval base = new Interval(dt1, dt2);
544
545 Interval test = new Interval(base);
546 assertEquals(dt1.getMillis(), test.getStartMillis());
547 assertEquals(dt2.getMillis(), test.getEndMillis());
548 }
549
550 public void testConstructor_Object3() throws Throwable {
551 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
552 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
553 MutableInterval base = new MutableInterval(dt1, dt2);
554
555 Interval test = new Interval(base);
556 assertEquals(dt1.getMillis(), test.getStartMillis());
557 assertEquals(dt2.getMillis(), test.getEndMillis());
558 }
559
560 public void testConstructor_Object4() throws Throwable {
561 MockInterval base = new MockInterval();
562 Interval test = new Interval(base);
563 assertEquals(base.getStartMillis(), test.getStartMillis());
564 assertEquals(base.getEndMillis(), test.getEndMillis());
565 }
566
567 public void testConstructor_Object5() throws Throwable {
568 IntervalConverter oldConv = ConverterManager.getInstance().getIntervalConverter("");
569 IntervalConverter conv = new IntervalConverter() {
570 public boolean isReadableInterval(Object object, Chronology chrono) {
571 return false;
572 }
573 public void setInto(ReadWritableInterval interval, Object object, Chronology chrono) {
574 interval.setChronology(chrono);
575 interval.setInterval(1234L, 5678L);
576 }
577 public Class<?> getSupportedType() {
578 return String.class;
579 }
580 };
581 try {
582 ConverterManager.getInstance().addIntervalConverter(conv);
583 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
584 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
585 Interval test = new Interval(dt1.toString() + '/' + dt2.toString());
586 assertEquals(1234L, test.getStartMillis());
587 assertEquals(5678L, test.getEndMillis());
588 } finally {
589 ConverterManager.getInstance().addIntervalConverter(oldConv);
590 }
591 }
592
593 public void testConstructor_Object6() throws Throwable {
594 IntervalConverter oldConv = ConverterManager.getInstance().getIntervalConverter(new Interval(0L, 0L));
595 IntervalConverter conv = new IntervalConverter() {
596 public boolean isReadableInterval(Object object, Chronology chrono) {
597 return false;
598 }
599 public void setInto(ReadWritableInterval interval, Object object, Chronology chrono) {
600 interval.setChronology(chrono);
601 interval.setInterval(1234L, 5678L);
602 }
603 public Class<?> getSupportedType() {
604 return ReadableInterval.class;
605 }
606 };
607 try {
608 ConverterManager.getInstance().addIntervalConverter(conv);
609 Interval base = new Interval(-1000L, 1000L);
610 Interval test = new Interval(base);
611 assertEquals(1234L, test.getStartMillis());
612 assertEquals(5678L, test.getEndMillis());
613 } finally {
614 ConverterManager.getInstance().addIntervalConverter(oldConv);
615 }
616 }
617
618 class MockInterval implements ReadableInterval {
619 public Chronology getChronology() {
620 return ISOChronology.getInstance();
621 }
622 public long getStartMillis() {
623 return 1234L;
624 }
625 public DateTime getStart() {
626 return new DateTime(1234L);
627 }
628 public long getEndMillis() {
629 return 5678L;
630 }
631 public DateTime getEnd() {
632 return new DateTime(5678L);
633 }
634 public long toDurationMillis() {
635 return (5678L - 1234L);
636 }
637 public Duration toDuration() {
638 return new Duration(5678L - 1234L);
639 }
640 public boolean contains(long millisInstant) {
641 return false;
642 }
643 public boolean containsNow() {
644 return false;
645 }
646 public boolean contains(ReadableInstant instant) {
647 return false;
648 }
649 public boolean contains(ReadableInterval interval) {
650 return false;
651 }
652 public boolean overlaps(ReadableInterval interval) {
653 return false;
654 }
655 public boolean isBefore(ReadableInstant instant) {
656 return false;
657 }
658 public boolean isBefore(ReadableInterval interval) {
659 return false;
660 }
661 public boolean isAfter(ReadableInstant instant) {
662 return false;
663 }
664 public boolean isAfter(ReadableInterval interval) {
665 return false;
666 }
667 public Interval toInterval() {
668 return null;
669 }
670 public MutableInterval toMutableInterval() {
671 return null;
672 }
673 public Period toPeriod() {
674 return null;
675 }
676 public Period toPeriod(PeriodType type) {
677 return null;
678 }
679 }
680
681
682 public void testConstructor_Object_Chronology1() throws Throwable {
683 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
684 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
685 Interval base = new Interval(dt1, dt2);
686
687 Interval test = new Interval(base, BuddhistChronology.getInstance());
688 assertEquals(dt1.getMillis(), test.getStartMillis());
689 assertEquals(dt2.getMillis(), test.getEndMillis());
690 assertEquals(BuddhistChronology.getInstance(), test.getChronology());
691 }
692
693 public void testConstructor_Object_Chronology2() throws Throwable {
694 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
695 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
696 Interval base = new Interval(dt1, dt2);
697
698 Interval test = new Interval(base, null);
699 assertEquals(dt1.getMillis(), test.getStartMillis());
700 assertEquals(dt2.getMillis(), test.getEndMillis());
701 assertEquals(ISOChronology.getInstance(), test.getChronology());
702 }
703
704 }