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.CopticChronology;
25 import org.joda.time.chrono.ISOChronology;
26
27 /***
28 * This class is a JUnit test for MutableDuration.
29 *
30 * @author Stephen Colebourne
31 */
32 public class TestMutablePeriod_Constructors extends TestCase {
33
34
35
36 private static final DateTimeZone PARIS = DateTimeZone.forID("Europe/Paris");
37 private static final DateTimeZone LONDON = DateTimeZone.forID("Europe/London");
38
39 long y2002days = 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
40 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 +
41 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
42 366 + 365;
43 long y2003days = 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 + 365;
47
48
49 private long TEST_TIME_NOW =
50 (y2002days + 31L + 28L + 31L + 30L + 31L + 9L -1L) * DateTimeConstants.MILLIS_PER_DAY;
51
52
53 private long TEST_TIME1 =
54 (y2002days + 31L + 28L + 31L + 5L -1L) * DateTimeConstants.MILLIS_PER_DAY
55 + 12L * DateTimeConstants.MILLIS_PER_HOUR
56 + 24L * DateTimeConstants.MILLIS_PER_MINUTE;
57
58
59 private long TEST_TIME2 =
60 (y2003days + 31L + 28L + 31L + 30L + 6L -1L) * DateTimeConstants.MILLIS_PER_DAY
61 + 14L * DateTimeConstants.MILLIS_PER_HOUR
62 + 28L * DateTimeConstants.MILLIS_PER_MINUTE;
63
64 private DateTimeZone originalDateTimeZone = null;
65 private TimeZone originalTimeZone = null;
66 private Locale originalLocale = null;
67
68 public static void main(String[] args) {
69 junit.textui.TestRunner.run(suite());
70 }
71
72 public static TestSuite suite() {
73 return new TestSuite(TestMutablePeriod_Constructors.class);
74 }
75
76 public TestMutablePeriod_Constructors(String name) {
77 super(name);
78 }
79
80 protected void setUp() throws Exception {
81 DateTimeUtils.setCurrentMillisFixed(TEST_TIME_NOW);
82 originalDateTimeZone = DateTimeZone.getDefault();
83 originalTimeZone = TimeZone.getDefault();
84 originalLocale = Locale.getDefault();
85 DateTimeZone.setDefault(LONDON);
86 TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
87 Locale.setDefault(Locale.UK);
88 }
89
90 protected void tearDown() throws Exception {
91 DateTimeUtils.setCurrentMillisSystem();
92 DateTimeZone.setDefault(originalDateTimeZone);
93 TimeZone.setDefault(originalTimeZone);
94 Locale.setDefault(originalLocale);
95 originalDateTimeZone = null;
96 originalTimeZone = null;
97 originalLocale = null;
98 }
99
100
101 /***
102 * Test constructor ()
103 */
104 public void testConstructor1() throws Throwable {
105 MutablePeriod test = new MutablePeriod();
106 assertEquals(PeriodType.standard(), test.getPeriodType());
107 assertEquals(0, test.getYears());
108 assertEquals(0, test.getMonths());
109 assertEquals(0, test.getWeeks());
110 assertEquals(0, test.getDays());
111 assertEquals(0, test.getHours());
112 assertEquals(0, test.getMinutes());
113 assertEquals(0, test.getSeconds());
114 assertEquals(0, test.getMillis());
115 }
116
117
118 /***
119 * Test constructor (PeriodType)
120 */
121 public void testConstructor_PeriodType1() throws Throwable {
122 MutablePeriod test = new MutablePeriod(PeriodType.yearMonthDayTime());
123 assertEquals(PeriodType.yearMonthDayTime(), test.getPeriodType());
124 assertEquals(0, test.getYears());
125 assertEquals(0, test.getMonths());
126 assertEquals(0, test.getWeeks());
127 assertEquals(0, test.getDays());
128 assertEquals(0, test.getHours());
129 assertEquals(0, test.getMinutes());
130 assertEquals(0, test.getSeconds());
131 assertEquals(0, test.getMillis());
132 }
133
134 public void testConstructor_PeriodType2() throws Throwable {
135 MutablePeriod test = new MutablePeriod((PeriodType) null);
136 assertEquals(PeriodType.standard(), test.getPeriodType());
137 assertEquals(0, test.getYears());
138 assertEquals(0, test.getMonths());
139 assertEquals(0, test.getWeeks());
140 assertEquals(0, test.getDays());
141 assertEquals(0, test.getHours());
142 assertEquals(0, test.getMinutes());
143 assertEquals(0, test.getSeconds());
144 assertEquals(0, test.getMillis());
145 }
146
147
148 public void testConstructor_long1() throws Throwable {
149 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
150 5 * DateTimeConstants.MILLIS_PER_HOUR +
151 6 * DateTimeConstants.MILLIS_PER_MINUTE +
152 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
153 MutablePeriod test = new MutablePeriod(length);
154 assertEquals(PeriodType.standard(), test.getPeriodType());
155 assertEquals(0, test.getYears());
156 assertEquals(0, test.getMonths());
157 assertEquals(0, test.getWeeks());
158 assertEquals(0, test.getDays());
159 assertEquals((4 * 24) + 5, test.getHours());
160 assertEquals(6, test.getMinutes());
161 assertEquals(7, test.getSeconds());
162 assertEquals(8, test.getMillis());
163 }
164
165 public void testConstructor_long2() throws Throwable {
166 long length =
167 5 * DateTimeConstants.MILLIS_PER_HOUR +
168 6 * DateTimeConstants.MILLIS_PER_MINUTE +
169 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
170 MutablePeriod test = new MutablePeriod(length);
171 assertEquals(PeriodType.standard(), test.getPeriodType());
172 assertEquals(0, test.getYears());
173 assertEquals(0, test.getMonths());
174 assertEquals(0, test.getWeeks());
175 assertEquals(0, test.getDays());
176 assertEquals(5, test.getHours());
177 assertEquals(6, test.getMinutes());
178 assertEquals(7, test.getSeconds());
179 assertEquals(8, test.getMillis());
180 }
181
182 public void testConstructor_long3() throws Throwable {
183 long length =
184 (4L + (3L * 7L) + (2L * 30L) + 365L) * DateTimeConstants.MILLIS_PER_DAY +
185 5L * DateTimeConstants.MILLIS_PER_HOUR +
186 6L * DateTimeConstants.MILLIS_PER_MINUTE +
187 7L * DateTimeConstants.MILLIS_PER_SECOND + 8L;
188 MutablePeriod test = new MutablePeriod(length);
189 assertEquals(PeriodType.standard(), test.getPeriodType());
190
191 assertEquals(0, test.getYears());
192 assertEquals(0, test.getMonths());
193 assertEquals(0, test.getWeeks());
194 assertEquals(0, test.getDays());
195 assertEquals((450 * 24) + 5, test.getHours());
196 assertEquals(6, test.getMinutes());
197 assertEquals(7, test.getSeconds());
198 assertEquals(8, test.getMillis());
199 }
200
201
202 public void testConstructor_long_PeriodType1() throws Throwable {
203 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
204 5 * DateTimeConstants.MILLIS_PER_HOUR +
205 6 * DateTimeConstants.MILLIS_PER_MINUTE +
206 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
207 MutablePeriod test = new MutablePeriod(length, (PeriodType) null);
208 assertEquals(PeriodType.standard(), test.getPeriodType());
209 assertEquals(0, test.getYears());
210 assertEquals(0, test.getMonths());
211 assertEquals(0, test.getWeeks());
212 assertEquals(0, test.getDays());
213 assertEquals((4 * 24) + 5, test.getHours());
214 assertEquals(6, test.getMinutes());
215 assertEquals(7, test.getSeconds());
216 assertEquals(8, test.getMillis());
217 }
218
219 public void testConstructor_long_PeriodType2() throws Throwable {
220 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
221 5 * DateTimeConstants.MILLIS_PER_HOUR +
222 6 * DateTimeConstants.MILLIS_PER_MINUTE +
223 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
224 MutablePeriod test = new MutablePeriod(length, PeriodType.millis());
225 assertEquals(PeriodType.millis(), test.getPeriodType());
226 assertEquals(0, test.getYears());
227 assertEquals(0, test.getMonths());
228 assertEquals(0, test.getWeeks());
229 assertEquals(0, test.getDays());
230 assertEquals(0, test.getHours());
231 assertEquals(0, test.getMinutes());
232 assertEquals(0, test.getSeconds());
233 assertEquals(length, test.getMillis());
234 }
235
236 public void testConstructor_long_PeriodType3() throws Throwable {
237 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
238 5 * DateTimeConstants.MILLIS_PER_HOUR +
239 6 * DateTimeConstants.MILLIS_PER_MINUTE +
240 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
241 MutablePeriod test = new MutablePeriod(length, PeriodType.standard());
242 assertEquals(PeriodType.standard(), test.getPeriodType());
243 assertEquals(0, test.getYears());
244 assertEquals(0, test.getMonths());
245 assertEquals(0, test.getWeeks());
246 assertEquals(0, test.getDays());
247 assertEquals((4 * 24) + 5, test.getHours());
248 assertEquals(6, test.getMinutes());
249 assertEquals(7, test.getSeconds());
250 assertEquals(8, test.getMillis());
251 }
252
253 public void testConstructor_long_PeriodType4() throws Throwable {
254 long length =
255 5 * DateTimeConstants.MILLIS_PER_HOUR +
256 6 * DateTimeConstants.MILLIS_PER_MINUTE +
257 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
258 MutablePeriod test = new MutablePeriod(length, PeriodType.standard().withMillisRemoved());
259 assertEquals(PeriodType.standard().withMillisRemoved(), test.getPeriodType());
260 assertEquals(0, test.getYears());
261 assertEquals(0, test.getMonths());
262 assertEquals(0, test.getWeeks());
263 assertEquals(0, test.getDays());
264 assertEquals(5, test.getHours());
265 assertEquals(6, test.getMinutes());
266 assertEquals(7, test.getSeconds());
267 assertEquals(0, test.getMillis());
268 }
269
270
271 public void testConstructor_long_Chronology1() throws Throwable {
272 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
273 5 * DateTimeConstants.MILLIS_PER_HOUR +
274 6 * DateTimeConstants.MILLIS_PER_MINUTE +
275 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
276 MutablePeriod test = new MutablePeriod(length, ISOChronology.getInstance());
277 assertEquals(PeriodType.standard(), test.getPeriodType());
278 assertEquals(0, test.getYears());
279 assertEquals(0, test.getMonths());
280 assertEquals(0, test.getWeeks());
281 assertEquals(0, test.getDays());
282 assertEquals((4 * 24) + 5, test.getHours());
283 assertEquals(6, test.getMinutes());
284 assertEquals(7, test.getSeconds());
285 assertEquals(8, test.getMillis());
286 }
287
288 public void testConstructor_long_Chronology2() throws Throwable {
289 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
290 5 * DateTimeConstants.MILLIS_PER_HOUR +
291 6 * DateTimeConstants.MILLIS_PER_MINUTE +
292 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
293 MutablePeriod test = new MutablePeriod(length, ISOChronology.getInstanceUTC());
294 assertEquals(PeriodType.standard(), test.getPeriodType());
295 assertEquals(0, test.getYears());
296 assertEquals(0, test.getMonths());
297 assertEquals(0, test.getWeeks());
298 assertEquals(4, test.getDays());
299 assertEquals(5, test.getHours());
300 assertEquals(6, test.getMinutes());
301 assertEquals(7, test.getSeconds());
302 assertEquals(8, test.getMillis());
303 }
304
305 public void testConstructor_long_Chronology3() throws Throwable {
306 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
307 5 * DateTimeConstants.MILLIS_PER_HOUR +
308 6 * DateTimeConstants.MILLIS_PER_MINUTE +
309 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
310 MutablePeriod test = new MutablePeriod(length, (Chronology) null);
311 assertEquals(PeriodType.standard(), test.getPeriodType());
312 assertEquals(0, test.getYears());
313 assertEquals(0, test.getMonths());
314 assertEquals(0, test.getWeeks());
315 assertEquals(0, test.getDays());
316 assertEquals((4 * 24) + 5, test.getHours());
317 assertEquals(6, test.getMinutes());
318 assertEquals(7, test.getSeconds());
319 assertEquals(8, test.getMillis());
320 }
321
322
323 public void testConstructor_long_PeriodType_Chronology1() throws Throwable {
324 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
325 5 * DateTimeConstants.MILLIS_PER_HOUR +
326 6 * DateTimeConstants.MILLIS_PER_MINUTE +
327 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
328 MutablePeriod test = new MutablePeriod(length, PeriodType.time().withMillisRemoved(), ISOChronology.getInstance());
329 assertEquals(PeriodType.time().withMillisRemoved(), test.getPeriodType());
330 assertEquals(0, test.getYears());
331 assertEquals(0, test.getMonths());
332 assertEquals(0, test.getWeeks());
333 assertEquals(0, test.getDays());
334 assertEquals((4 * 24) + 5, test.getHours());
335 assertEquals(6, test.getMinutes());
336 assertEquals(7, test.getSeconds());
337 assertEquals(0, test.getMillis());
338 }
339
340 public void testConstructor_long_PeriodType_Chronology2() throws Throwable {
341 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
342 5 * DateTimeConstants.MILLIS_PER_HOUR +
343 6 * DateTimeConstants.MILLIS_PER_MINUTE +
344 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
345 MutablePeriod test = new MutablePeriod(length, PeriodType.standard(), ISOChronology.getInstanceUTC());
346 assertEquals(PeriodType.standard(), test.getPeriodType());
347 assertEquals(0, test.getYears());
348 assertEquals(0, test.getMonths());
349 assertEquals(0, test.getWeeks());
350 assertEquals(4, test.getDays());
351 assertEquals(5, test.getHours());
352 assertEquals(6, test.getMinutes());
353 assertEquals(7, test.getSeconds());
354 assertEquals(8, test.getMillis());
355 }
356
357 public void testConstructor_long_PeriodType_Chronology3() throws Throwable {
358 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
359 5 * DateTimeConstants.MILLIS_PER_HOUR +
360 6 * DateTimeConstants.MILLIS_PER_MINUTE +
361 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
362 MutablePeriod test = new MutablePeriod(length, PeriodType.standard(), (Chronology) null);
363 assertEquals(PeriodType.standard(), test.getPeriodType());
364 assertEquals(0, test.getYears());
365 assertEquals(0, test.getMonths());
366 assertEquals(0, test.getWeeks());
367 assertEquals(0, test.getDays());
368 assertEquals((4 * 24) + 5, test.getHours());
369 assertEquals(6, test.getMinutes());
370 assertEquals(7, test.getSeconds());
371 assertEquals(8, test.getMillis());
372 }
373
374 public void testConstructor_long_PeriodType_Chronology4() throws Throwable {
375 long length = 4 * DateTimeConstants.MILLIS_PER_DAY +
376 5 * DateTimeConstants.MILLIS_PER_HOUR +
377 6 * DateTimeConstants.MILLIS_PER_MINUTE +
378 7 * DateTimeConstants.MILLIS_PER_SECOND + 8;
379 MutablePeriod test = new MutablePeriod(length, (PeriodType) null, (Chronology) null);
380 assertEquals(PeriodType.standard(), test.getPeriodType());
381 assertEquals(0, test.getYears());
382 assertEquals(0, test.getMonths());
383 assertEquals(0, test.getWeeks());
384 assertEquals(0, test.getDays());
385 assertEquals((4 * 24) + 5, test.getHours());
386 assertEquals(6, test.getMinutes());
387 assertEquals(7, test.getSeconds());
388 assertEquals(8, test.getMillis());
389 }
390
391
392 /***
393 * Test constructor (4ints)
394 */
395 public void testConstructor_4int1() throws Throwable {
396 MutablePeriod test = new MutablePeriod(5, 6, 7, 8);
397 assertEquals(PeriodType.standard(), test.getPeriodType());
398 assertEquals(0, test.getYears());
399 assertEquals(0, test.getMonths());
400 assertEquals(0, test.getWeeks());
401 assertEquals(0, test.getDays());
402 assertEquals(5, test.getHours());
403 assertEquals(6, test.getMinutes());
404 assertEquals(7, test.getSeconds());
405 assertEquals(8, test.getMillis());
406 }
407
408
409 /***
410 * Test constructor (8ints)
411 */
412 public void testConstructor_8int1() throws Throwable {
413 MutablePeriod test = new MutablePeriod(1, 2, 3, 4, 5, 6, 7, 8);
414 assertEquals(PeriodType.standard(), test.getPeriodType());
415 assertEquals(1, test.getYears());
416 assertEquals(2, test.getMonths());
417 assertEquals(3, test.getWeeks());
418 assertEquals(4, test.getDays());
419 assertEquals(5, test.getHours());
420 assertEquals(6, test.getMinutes());
421 assertEquals(7, test.getSeconds());
422 assertEquals(8, test.getMillis());
423 }
424
425
426 /***
427 * Test constructor (8ints)
428 */
429 public void testConstructor_8int__PeriodType1() throws Throwable {
430 MutablePeriod test = new MutablePeriod(1, 2, 3, 4, 5, 6, 7, 8, null);
431 assertEquals(PeriodType.standard(), test.getPeriodType());
432 assertEquals(1, test.getYears());
433 assertEquals(2, test.getMonths());
434 assertEquals(3, test.getWeeks());
435 assertEquals(4, test.getDays());
436 assertEquals(5, test.getHours());
437 assertEquals(6, test.getMinutes());
438 assertEquals(7, test.getSeconds());
439 assertEquals(8, test.getMillis());
440 }
441
442 public void testConstructor_8int__PeriodType2() throws Throwable {
443 MutablePeriod test = new MutablePeriod(0, 0, 0, 0, 5, 6, 7, 8, PeriodType.dayTime());
444 assertEquals(PeriodType.dayTime(), test.getPeriodType());
445 assertEquals(0, test.getYears());
446 assertEquals(0, test.getMonths());
447 assertEquals(0, test.getWeeks());
448 assertEquals(0, test.getDays());
449 assertEquals(5, test.getHours());
450 assertEquals(6, test.getMinutes());
451 assertEquals(7, test.getSeconds());
452 assertEquals(8, test.getMillis());
453 }
454
455 public void testConstructor_8int__PeriodType3() throws Throwable {
456 try {
457 new MutablePeriod(1, 2, 3, 4, 5, 6, 7, 8, PeriodType.dayTime());
458 fail();
459 } catch (IllegalArgumentException ex) {}
460 }
461
462
463 public void testConstructor_long_long1() throws Throwable {
464 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
465 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
466 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis());
467 assertEquals(PeriodType.standard(), test.getPeriodType());
468 assertEquals(1, test.getYears());
469 assertEquals(1, test.getMonths());
470 assertEquals(0, test.getWeeks());
471 assertEquals(1, test.getDays());
472 assertEquals(1, test.getHours());
473 assertEquals(1, test.getMinutes());
474 assertEquals(1, test.getSeconds());
475 assertEquals(1, test.getMillis());
476 }
477
478 public void testConstructor_long_long2() throws Throwable {
479 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
480 DateTime dt2 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
481 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis());
482 assertEquals(PeriodType.standard(), test.getPeriodType());
483 assertEquals(1, test.getYears());
484 assertEquals(1, test.getMonths());
485 assertEquals(1, test.getWeeks());
486 assertEquals(1, test.getDays());
487 assertEquals(1, test.getHours());
488 assertEquals(1, test.getMinutes());
489 assertEquals(1, test.getSeconds());
490 assertEquals(1, test.getMillis());
491 }
492
493
494 public void testConstructor_long_long_PeriodType1() throws Throwable {
495 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
496 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
497 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), (PeriodType) null);
498 assertEquals(PeriodType.standard(), test.getPeriodType());
499 assertEquals(1, test.getYears());
500 assertEquals(1, test.getMonths());
501 assertEquals(0, test.getWeeks());
502 assertEquals(1, test.getDays());
503 assertEquals(1, test.getHours());
504 assertEquals(1, test.getMinutes());
505 assertEquals(1, test.getSeconds());
506 assertEquals(1, test.getMillis());
507 }
508
509 public void testConstructor_long_long_PeriodType2() throws Throwable {
510 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
511 DateTime dt2 = new DateTime(2004, 7, 10, 1, 1, 1, 1);
512 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), PeriodType.dayTime());
513 assertEquals(PeriodType.dayTime(), test.getPeriodType());
514 assertEquals(0, test.getYears());
515 assertEquals(0, test.getMonths());
516 assertEquals(0, test.getWeeks());
517 assertEquals(31, test.getDays());
518 assertEquals(1, test.getHours());
519 assertEquals(1, test.getMinutes());
520 assertEquals(1, test.getSeconds());
521 assertEquals(1, test.getMillis());
522 }
523
524 public void testConstructor_long_long_PeriodType3() throws Throwable {
525 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
526 DateTime dt2 = new DateTime(2004, 6, 9, 1, 1, 1, 1);
527 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), PeriodType.standard().withMillisRemoved());
528 assertEquals(PeriodType.standard().withMillisRemoved(), test.getPeriodType());
529 assertEquals(0, test.getYears());
530 assertEquals(0, test.getMonths());
531 assertEquals(0, test.getWeeks());
532 assertEquals(0, test.getDays());
533 assertEquals(1, test.getHours());
534 assertEquals(1, test.getMinutes());
535 assertEquals(1, test.getSeconds());
536 assertEquals(0, test.getMillis());
537 }
538
539
540 public void testConstructor_long_long_Chronology1() throws Throwable {
541 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0, CopticChronology.getInstance());
542 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1, CopticChronology.getInstance());
543 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), CopticChronology.getInstance());
544 assertEquals(PeriodType.standard(), test.getPeriodType());
545 assertEquals(1, test.getYears());
546 assertEquals(1, test.getMonths());
547 assertEquals(0, test.getWeeks());
548 assertEquals(1, test.getDays());
549 assertEquals(1, test.getHours());
550 assertEquals(1, test.getMinutes());
551 assertEquals(1, test.getSeconds());
552 assertEquals(1, test.getMillis());
553 }
554
555 public void testConstructor_long_long_Chronology2() throws Throwable {
556 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
557 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
558 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), (Chronology) null);
559 assertEquals(PeriodType.standard(), test.getPeriodType());
560 assertEquals(1, test.getYears());
561 assertEquals(1, test.getMonths());
562 assertEquals(0, test.getWeeks());
563 assertEquals(1, test.getDays());
564 assertEquals(1, test.getHours());
565 assertEquals(1, test.getMinutes());
566 assertEquals(1, test.getSeconds());
567 assertEquals(1, test.getMillis());
568 }
569
570
571 public void testConstructor_long_long_PeriodType_Chronology1() throws Throwable {
572 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0, CopticChronology.getInstance());
573 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1, CopticChronology.getInstance());
574 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), (PeriodType) null, CopticChronology.getInstance());
575 assertEquals(PeriodType.standard(), test.getPeriodType());
576 assertEquals(1, test.getYears());
577 assertEquals(1, test.getMonths());
578 assertEquals(0, test.getWeeks());
579 assertEquals(1, test.getDays());
580 assertEquals(1, test.getHours());
581 assertEquals(1, test.getMinutes());
582 assertEquals(1, test.getSeconds());
583 assertEquals(1, test.getMillis());
584 }
585
586 public void testConstructor_long_long_PeriodType_Chronology2() throws Throwable {
587 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
588 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
589 MutablePeriod test = new MutablePeriod(dt1.getMillis(), dt2.getMillis(), (PeriodType) null, null);
590 assertEquals(PeriodType.standard(), test.getPeriodType());
591 assertEquals(1, test.getYears());
592 assertEquals(1, test.getMonths());
593 assertEquals(0, test.getWeeks());
594 assertEquals(1, test.getDays());
595 assertEquals(1, test.getHours());
596 assertEquals(1, test.getMinutes());
597 assertEquals(1, test.getSeconds());
598 assertEquals(1, test.getMillis());
599 }
600
601
602 public void testConstructor_RI_RI1() throws Throwable {
603 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
604 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
605 MutablePeriod test = new MutablePeriod(dt1, dt2);
606 assertEquals(PeriodType.standard(), test.getPeriodType());
607 assertEquals(1, test.getYears());
608 assertEquals(1, test.getMonths());
609 assertEquals(0, test.getWeeks());
610 assertEquals(1, test.getDays());
611 assertEquals(1, test.getHours());
612 assertEquals(1, test.getMinutes());
613 assertEquals(1, test.getSeconds());
614 assertEquals(1, test.getMillis());
615 }
616
617 public void testConstructor_RI_RI2() throws Throwable {
618 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
619 DateTime dt2 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
620 MutablePeriod test = new MutablePeriod(dt1, dt2);
621 assertEquals(PeriodType.standard(), test.getPeriodType());
622 assertEquals(1, test.getYears());
623 assertEquals(1, test.getMonths());
624 assertEquals(1, test.getWeeks());
625 assertEquals(1, test.getDays());
626 assertEquals(1, test.getHours());
627 assertEquals(1, test.getMinutes());
628 assertEquals(1, test.getSeconds());
629 assertEquals(1, test.getMillis());
630 }
631
632 public void testConstructor_RI_RI3() throws Throwable {
633 DateTime dt1 = null;
634 DateTime dt2 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
635 MutablePeriod test = new MutablePeriod(dt1, dt2);
636 assertEquals(PeriodType.standard(), test.getPeriodType());
637 assertEquals(3, test.getYears());
638 assertEquals(1, test.getMonths());
639 assertEquals(1, test.getWeeks());
640 assertEquals(1, test.getDays());
641 assertEquals(0, test.getHours());
642 assertEquals(1, test.getMinutes());
643 assertEquals(1, test.getSeconds());
644 assertEquals(1, test.getMillis());
645 }
646
647 public void testConstructor_RI_RI4() throws Throwable {
648 DateTime dt1 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
649 DateTime dt2 = null;
650 MutablePeriod test = new MutablePeriod(dt1, dt2);
651 assertEquals(PeriodType.standard(), test.getPeriodType());
652 assertEquals(-3, test.getYears());
653 assertEquals(-1, test.getMonths());
654 assertEquals(-1, test.getWeeks());
655 assertEquals(-1, test.getDays());
656 assertEquals(0, test.getHours());
657 assertEquals(-1, test.getMinutes());
658 assertEquals(-1, test.getSeconds());
659 assertEquals(-1, test.getMillis());
660 }
661
662 public void testConstructor_RI_RI5() throws Throwable {
663 DateTime dt1 = null;
664 DateTime dt2 = null;
665 MutablePeriod test = new MutablePeriod(dt1, dt2);
666 assertEquals(PeriodType.standard(), test.getPeriodType());
667 assertEquals(0, test.getYears());
668 assertEquals(0, test.getMonths());
669 assertEquals(0, test.getWeeks());
670 assertEquals(0, test.getDays());
671 assertEquals(0, test.getHours());
672 assertEquals(0, test.getMinutes());
673 assertEquals(0, test.getSeconds());
674 assertEquals(0, test.getMillis());
675 }
676
677
678 public void testConstructor_RI_RI_PeriodType1() throws Throwable {
679 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
680 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
681 MutablePeriod test = new MutablePeriod(dt1, dt2, null);
682 assertEquals(PeriodType.standard(), test.getPeriodType());
683 assertEquals(1, test.getYears());
684 assertEquals(1, test.getMonths());
685 assertEquals(0, test.getWeeks());
686 assertEquals(1, test.getDays());
687 assertEquals(1, test.getHours());
688 assertEquals(1, test.getMinutes());
689 assertEquals(1, test.getSeconds());
690 assertEquals(1, test.getMillis());
691 }
692
693 public void testConstructor_RI_RI_PeriodType2() throws Throwable {
694 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
695 DateTime dt2 = new DateTime(2004, 7, 10, 1, 1, 1, 1);
696 MutablePeriod test = new MutablePeriod(dt1, dt2, PeriodType.dayTime());
697 assertEquals(PeriodType.dayTime(), test.getPeriodType());
698 assertEquals(0, test.getYears());
699 assertEquals(0, test.getMonths());
700 assertEquals(0, test.getWeeks());
701 assertEquals(31, test.getDays());
702 assertEquals(1, test.getHours());
703 assertEquals(1, test.getMinutes());
704 assertEquals(1, test.getSeconds());
705 assertEquals(1, test.getMillis());
706 }
707
708 public void testConstructor_RI_RI_PeriodType3() throws Throwable {
709 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
710 DateTime dt2 = new DateTime(2004, 6, 9, 1, 1, 1, 1);
711 MutablePeriod test = new MutablePeriod(dt1, dt2, PeriodType.standard().withMillisRemoved());
712 assertEquals(PeriodType.standard().withMillisRemoved(), test.getPeriodType());
713 assertEquals(0, test.getYears());
714 assertEquals(0, test.getMonths());
715 assertEquals(0, test.getWeeks());
716 assertEquals(0, test.getDays());
717 assertEquals(1, test.getHours());
718 assertEquals(1, test.getMinutes());
719 assertEquals(1, test.getSeconds());
720 assertEquals(0, test.getMillis());
721 }
722
723 public void testConstructor_RI_RI_PeriodType4() throws Throwable {
724 DateTime dt1 = null;
725 DateTime dt2 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
726 MutablePeriod test = new MutablePeriod(dt1, dt2, PeriodType.standard());
727 assertEquals(PeriodType.standard(), test.getPeriodType());
728 assertEquals(3, test.getYears());
729 assertEquals(1, test.getMonths());
730 assertEquals(1, test.getWeeks());
731 assertEquals(1, test.getDays());
732 assertEquals(0, test.getHours());
733 assertEquals(1, test.getMinutes());
734 assertEquals(1, test.getSeconds());
735 assertEquals(1, test.getMillis());
736 }
737
738 public void testConstructor_RI_RI_PeriodType5() throws Throwable {
739 DateTime dt1 = null;
740 DateTime dt2 = null;
741 MutablePeriod test = new MutablePeriod(dt1, dt2, PeriodType.standard());
742 assertEquals(PeriodType.standard(), test.getPeriodType());
743 assertEquals(0, test.getYears());
744 assertEquals(0, test.getMonths());
745 assertEquals(0, test.getWeeks());
746 assertEquals(0, test.getDays());
747 assertEquals(0, test.getHours());
748 assertEquals(0, test.getMinutes());
749 assertEquals(0, test.getSeconds());
750 assertEquals(0, test.getMillis());
751 }
752
753
754 public void testConstructor_RI_RD1() throws Throwable {
755 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
756 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
757 Duration dur = new Interval(dt1, dt2).toDuration();
758 MutablePeriod test = new MutablePeriod(dt1, dur);
759 assertEquals(PeriodType.standard(), test.getPeriodType());
760 assertEquals(1, test.getYears());
761 assertEquals(1, test.getMonths());
762 assertEquals(0, test.getWeeks());
763 assertEquals(1, test.getDays());
764 assertEquals(1, test.getHours());
765 assertEquals(1, test.getMinutes());
766 assertEquals(1, test.getSeconds());
767 assertEquals(1, test.getMillis());
768 }
769
770 public void testConstructor_RI_RD2() throws Throwable {
771 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
772 Duration dur = null;
773 MutablePeriod test = new MutablePeriod(dt1, dur);
774 assertEquals(PeriodType.standard(), test.getPeriodType());
775 assertEquals(0, test.getYears());
776 assertEquals(0, test.getMonths());
777 assertEquals(0, test.getWeeks());
778 assertEquals(0, test.getDays());
779 assertEquals(0, test.getHours());
780 assertEquals(0, test.getMinutes());
781 assertEquals(0, test.getSeconds());
782 assertEquals(0, test.getMillis());
783 }
784
785
786 public void testConstructor_RI_RD_PeriodType1() throws Throwable {
787 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
788 DateTime dt2 = new DateTime(2005, 7, 10, 1, 1, 1, 1);
789 Duration dur = new Interval(dt1, dt2).toDuration();
790 MutablePeriod test = new MutablePeriod(dt1, dur, PeriodType.yearDayTime());
791 assertEquals(PeriodType.yearDayTime(), test.getPeriodType());
792 assertEquals(1, test.getYears());
793 assertEquals(0, test.getMonths());
794 assertEquals(0, test.getWeeks());
795 assertEquals(31, test.getDays());
796 assertEquals(1, test.getHours());
797 assertEquals(1, test.getMinutes());
798 assertEquals(1, test.getSeconds());
799 assertEquals(1, test.getMillis());
800 }
801
802 public void testConstructor_RI_RD_PeriodType2() throws Throwable {
803 DateTime dt1 = new DateTime(2004, 6, 9, 0, 0, 0, 0);
804 Duration dur = null;
805 MutablePeriod test = new MutablePeriod(dt1, dur, (PeriodType) null);
806 assertEquals(PeriodType.standard(), test.getPeriodType());
807 assertEquals(0, test.getYears());
808 assertEquals(0, test.getMonths());
809 assertEquals(0, test.getWeeks());
810 assertEquals(0, test.getDays());
811 assertEquals(0, test.getHours());
812 assertEquals(0, test.getMinutes());
813 assertEquals(0, test.getSeconds());
814 assertEquals(0, test.getMillis());
815 }
816
817
818 /***
819 * Test constructor (Object)
820 */
821 public void testConstructor_Object1() throws Throwable {
822 MutablePeriod test = new MutablePeriod("P1Y2M3D");
823 assertEquals(PeriodType.standard(), test.getPeriodType());
824 assertEquals(1, test.getYears());
825 assertEquals(2, test.getMonths());
826 assertEquals(0, test.getWeeks());
827 assertEquals(3, test.getDays());
828 assertEquals(0, test.getHours());
829 assertEquals(0, test.getMinutes());
830 assertEquals(0, test.getSeconds());
831 assertEquals(0, test.getMillis());
832 }
833
834 public void testConstructor_Object2() throws Throwable {
835 MutablePeriod test = new MutablePeriod((Object) null);
836 assertEquals(PeriodType.standard(), test.getPeriodType());
837 assertEquals(0, test.getYears());
838 assertEquals(0, test.getMonths());
839 assertEquals(0, test.getWeeks());
840 assertEquals(0, test.getDays());
841 assertEquals(0, test.getHours());
842 assertEquals(0, test.getMinutes());
843 assertEquals(0, test.getSeconds());
844 assertEquals(0, test.getMillis());
845 }
846
847 public void testConstructor_Object3() throws Throwable {
848 MutablePeriod test = new MutablePeriod(new Period(0, 0, 0, 0, 1, 2, 3, 4, PeriodType.dayTime()));
849 assertEquals(PeriodType.dayTime(), test.getPeriodType());
850 assertEquals(0, test.getYears());
851 assertEquals(0, test.getMonths());
852 assertEquals(0, test.getWeeks());
853 assertEquals(0, test.getDays());
854 assertEquals(1, test.getHours());
855 assertEquals(2, test.getMinutes());
856 assertEquals(3, test.getSeconds());
857 assertEquals(4, test.getMillis());
858 }
859
860 public void testConstructor_Object4() throws Throwable {
861 Period base = new Period(1, 1, 0, 1, 1, 1, 1, 1, PeriodType.standard());
862 MutablePeriod test = new MutablePeriod(base);
863 assertEquals(PeriodType.standard(), test.getPeriodType());
864 assertEquals(1, test.getYears());
865 assertEquals(1, test.getMonths());
866 assertEquals(0, test.getWeeks());
867 assertEquals(1, test.getDays());
868 assertEquals(1, test.getHours());
869 assertEquals(1, test.getMinutes());
870 assertEquals(1, test.getSeconds());
871 assertEquals(1, test.getMillis());
872 }
873
874
875 /***
876 * Test constructor (Object,PeriodType)
877 */
878 public void testConstructor_Object_PeriodType1() throws Throwable {
879 MutablePeriod test = new MutablePeriod("P1Y2M3D", PeriodType.yearMonthDayTime());
880 assertEquals(PeriodType.yearMonthDayTime(), test.getPeriodType());
881 assertEquals(1, test.getYears());
882 assertEquals(2, test.getMonths());
883 assertEquals(0, test.getWeeks());
884 assertEquals(3, test.getDays());
885 assertEquals(0, test.getHours());
886 assertEquals(0, test.getMinutes());
887 assertEquals(0, test.getSeconds());
888 assertEquals(0, test.getMillis());
889 }
890
891 public void testConstructor_Object_PeriodType2() throws Throwable {
892 MutablePeriod test = new MutablePeriod((Object) null, PeriodType.yearMonthDayTime());
893 assertEquals(PeriodType.yearMonthDayTime(), test.getPeriodType());
894 assertEquals(0, test.getYears());
895 assertEquals(0, test.getMonths());
896 assertEquals(0, test.getWeeks());
897 assertEquals(0, test.getDays());
898 assertEquals(0, test.getHours());
899 assertEquals(0, test.getMinutes());
900 assertEquals(0, test.getSeconds());
901 assertEquals(0, test.getMillis());
902 }
903
904 public void testConstructor_Object_PeriodType3() throws Throwable {
905 MutablePeriod test = new MutablePeriod(new Period(0, 0, 0, 0, 1, 2, 3, 4, PeriodType.dayTime()), PeriodType.yearMonthDayTime());
906 assertEquals(PeriodType.yearMonthDayTime(), test.getPeriodType());
907 assertEquals(0, test.getYears());
908 assertEquals(0, test.getMonths());
909 assertEquals(0, test.getWeeks());
910 assertEquals(0, test.getDays());
911 assertEquals(1, test.getHours());
912 assertEquals(2, test.getMinutes());
913 assertEquals(3, test.getSeconds());
914 assertEquals(4, test.getMillis());
915 }
916
917 public void testConstructor_Object_PeriodType4() throws Throwable {
918 MutablePeriod test = new MutablePeriod(new Period(0, 0, 0, 0, 1, 2, 3, 4, PeriodType.dayTime()), (PeriodType) null);
919 assertEquals(PeriodType.dayTime(), test.getPeriodType());
920 assertEquals(0, test.getYears());
921 assertEquals(0, test.getMonths());
922 assertEquals(0, test.getWeeks());
923 assertEquals(0, test.getDays());
924 assertEquals(1, test.getHours());
925 assertEquals(2, test.getMinutes());
926 assertEquals(3, test.getSeconds());
927 assertEquals(4, test.getMillis());
928 }
929
930
931 public void testConstructor_Object_Chronology1() throws Throwable {
932 long length =
933 (4L + (3L * 7L) + (2L * 30L) + 365L) * DateTimeConstants.MILLIS_PER_DAY +
934 5L * DateTimeConstants.MILLIS_PER_HOUR +
935 6L * DateTimeConstants.MILLIS_PER_MINUTE +
936 7L * DateTimeConstants.MILLIS_PER_SECOND + 8L;
937 MutablePeriod test = new MutablePeriod(new Duration(length), ISOChronology.getInstance());
938 assertEquals(PeriodType.standard(), test.getPeriodType());
939 assertEquals(0, test.getYears());
940 assertEquals(0, test.getMonths());
941 assertEquals(0, test.getWeeks());
942 assertEquals(0, test.getDays());
943 assertEquals((450 * 24) + 5, test.getHours());
944 assertEquals(6, test.getMinutes());
945 assertEquals(7, test.getSeconds());
946 assertEquals(8, test.getMillis());
947 }
948
949 public void testConstructor_Object_Chronology2() throws Throwable {
950 long length =
951 (4L + (3L * 7L) + (2L * 30L) + 365L) * DateTimeConstants.MILLIS_PER_DAY +
952 5L * DateTimeConstants.MILLIS_PER_HOUR +
953 6L * DateTimeConstants.MILLIS_PER_MINUTE +
954 7L * DateTimeConstants.MILLIS_PER_SECOND + 8L;
955 MutablePeriod test = new MutablePeriod(new Duration(length), ISOChronology.getInstanceUTC());
956 assertEquals(PeriodType.standard(), test.getPeriodType());
957 assertEquals(0, test.getYears());
958 assertEquals(0, test.getMonths());
959 assertEquals(64, test.getWeeks());
960 assertEquals(2, test.getDays());
961 assertEquals(5, test.getHours());
962 assertEquals(6, test.getMinutes());
963 assertEquals(7, test.getSeconds());
964 assertEquals(8, test.getMillis());
965 }
966
967 }