KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * Copyright 2001-2005 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.Locale JavaDoc;
19 import java.util.TimeZone JavaDoc;
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     // Test in 2002/03 as time zones are more well known
34
// (before the late 90's they were all over the place)
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     // 2002-06-09
49
private long TEST_TIME_NOW =
50             (y2002days + 31L + 28L + 31L + 30L + 31L + 9L -1L) * DateTimeConstants.MILLIS_PER_DAY;
51             
52     // 2002-04-05
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     // 2003-05-06
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 JavaDoc originalTimeZone = null;
66     private Locale JavaDoc originalLocale = null;
67
68     public static void main(String JavaDoc[] 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 JavaDoc name) {
77         super(name);
78     }
79
80     protected void setUp() throws Exception JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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         // only time fields are precise in AllType
191
assertEquals(0, test.getYears()); // (4 + (3 * 7) + (2 * 30) + 365) == 450
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
456         try {
457             new MutablePeriod(1, 2, 3, 4, 5, 6, 7, 8, PeriodType.dayTime());
458             fail();
459         } catch (IllegalArgumentException JavaDoc ex) {}
460     }
461
462     //-----------------------------------------------------------------------
463
public void testConstructor_long_long1() throws Throwable JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
633         DateTime dt1 = null; // 2002-06-09T01:00+01:00
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 JavaDoc {
648         DateTime dt1 = new DateTime(2005, 7, 17, 1, 1, 1, 1);
649         DateTime dt2 = null; // 2002-06-09T01:00+01:00
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 JavaDoc {
663         DateTime dt1 = null; // 2002-06-09T01:00+01:00
664
DateTime dt2 = null; // 2002-06-09T01:00+01:00
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
724         DateTime dt1 = null; // 2002-06-09T01:00+01:00
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 JavaDoc {
739         DateTime dt1 = null; // 2002-06-09T01:00+01:00
740
DateTime dt2 = null; // 2002-06-09T01:00+01:00
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
835         MutablePeriod test = new MutablePeriod((Object JavaDoc) 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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
892         MutablePeriod test = new MutablePeriod((Object JavaDoc) 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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
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()); // (4 + (3 * 7) + (2 * 30) + 365) == 450
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 JavaDoc {
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()); // (4 + (3 * 7) + (2 * 30) + 365) == 450
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 }
968
Popular Tags