KickJava   Java API By Example, From Geeks To Geeks.

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


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.ISOChronology;
25
26 /**
27  * This class is a JUnit test for MutableDateTime.
28  *
29  * @author Stephen Colebourne
30  */

31 public class TestMutableDateTime_Adds extends TestCase {
32     // Test in 2002/03 as time zones are more well known
33
// (before the late 90's they were all over the place)
34

35     private static final DateTimeZone PARIS = DateTimeZone.forID("Europe/Paris");
36     private static final DateTimeZone LONDON = DateTimeZone.forID("Europe/London");
37     
38     long y2002days = 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
39                      366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 +
40                      365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
41                      366 + 365;
42     long y2003days = 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
43                      366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 +
44                      365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
45                      366 + 365 + 365;
46     
47     // 2002-06-09
48
private long TEST_TIME_NOW =
49             (y2002days + 31L + 28L + 31L + 30L + 31L + 9L -1L) * DateTimeConstants.MILLIS_PER_DAY;
50             
51     // 2002-04-05
52
private long TEST_TIME1 =
53             (y2002days + 31L + 28L + 31L + 5L -1L) * DateTimeConstants.MILLIS_PER_DAY
54             + 12L * DateTimeConstants.MILLIS_PER_HOUR
55             + 24L * DateTimeConstants.MILLIS_PER_MINUTE;
56         
57     // 2003-05-06
58
private long TEST_TIME2 =
59             (y2003days + 31L + 28L + 31L + 30L + 6L -1L) * DateTimeConstants.MILLIS_PER_DAY
60             + 14L * DateTimeConstants.MILLIS_PER_HOUR
61             + 28L * DateTimeConstants.MILLIS_PER_MINUTE;
62     
63     private DateTimeZone originalDateTimeZone = null;
64     private TimeZone JavaDoc originalTimeZone = null;
65     private Locale JavaDoc originalLocale = null;
66
67     public static void main(String JavaDoc[] args) {
68         junit.textui.TestRunner.run(suite());
69     }
70
71     public static TestSuite suite() {
72         return new TestSuite(TestMutableDateTime_Adds.class);
73     }
74
75     public TestMutableDateTime_Adds(String JavaDoc name) {
76         super(name);
77     }
78
79     protected void setUp() throws Exception JavaDoc {
80         DateTimeUtils.setCurrentMillisFixed(TEST_TIME_NOW);
81         originalDateTimeZone = DateTimeZone.getDefault();
82         originalTimeZone = TimeZone.getDefault();
83         originalLocale = Locale.getDefault();
84         DateTimeZone.setDefault(LONDON);
85         TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
86         Locale.setDefault(Locale.UK);
87     }
88
89     protected void tearDown() throws Exception JavaDoc {
90         DateTimeUtils.setCurrentMillisSystem();
91         DateTimeZone.setDefault(originalDateTimeZone);
92         TimeZone.setDefault(originalTimeZone);
93         Locale.setDefault(originalLocale);
94         originalDateTimeZone = null;
95         originalTimeZone = null;
96         originalLocale = null;
97     }
98
99     //-----------------------------------------------------------------------
100
public void testTest() {
101         assertEquals("2002-06-09T00:00:00.000Z", new Instant(TEST_TIME_NOW).toString());
102         assertEquals("2002-04-05T12:24:00.000Z", new Instant(TEST_TIME1).toString());
103         assertEquals("2003-05-06T14:28:00.000Z", new Instant(TEST_TIME2).toString());
104     }
105
106     //-----------------------------------------------------------------------
107
public void testAdd_long1() {
108         MutableDateTime test = new MutableDateTime(TEST_TIME1);
109         test.add(123456L);
110         assertEquals(TEST_TIME1 + 123456L, test.getMillis());
111         assertEquals(ISOChronology.getInstance(), test.getChronology());
112     }
113
114     //-----------------------------------------------------------------------
115
public void testAdd_RD1() {
116         MutableDateTime test = new MutableDateTime(TEST_TIME1);
117         test.add(new Duration(123456L));
118         assertEquals(TEST_TIME1 + 123456L, test.getMillis());
119     }
120
121     public void testAdd_RD2() {
122         MutableDateTime test = new MutableDateTime(TEST_TIME1);
123         test.add((ReadableDuration) null);
124         assertEquals(TEST_TIME1, test.getMillis());
125     }
126
127     //-----------------------------------------------------------------------
128
public void testAdd_RD_int1() {
129         MutableDateTime test = new MutableDateTime(TEST_TIME1);
130         test.add(new Duration(123456L), -2);
131         assertEquals(TEST_TIME1 - (2L * 123456L), test.getMillis());
132     }
133
134     public void testAdd_RD_int2() {
135         MutableDateTime test = new MutableDateTime(TEST_TIME1);
136         test.add((ReadableDuration) null, 1);
137         assertEquals(TEST_TIME1, test.getMillis());
138     }
139
140     //-----------------------------------------------------------------------
141
public void testAdd_RP1() {
142         Period d = new Period(1, 1, 0, 1, 1, 1, 1, 1);
143         MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8);
144         assertEquals("2002-06-09T05:06:07.008+01:00", test.toString());
145         test.add(d);
146         assertEquals("2003-07-10T06:07:08.009+01:00", test.toString());
147     }
148
149     public void testAdd_RP2() {
150         MutableDateTime test = new MutableDateTime(TEST_TIME1);
151         test.add((ReadablePeriod) null);
152         assertEquals(TEST_TIME1, test.getMillis());
153     }
154
155     //-----------------------------------------------------------------------
156
public void testAdd_RP_int1() {
157         Period d = new Period(0, 0, 0, 0, 0, 0, 1, 2);
158         MutableDateTime test = new MutableDateTime(TEST_TIME1);
159         test.add(d, -2);
160         assertEquals(TEST_TIME1 - (2L * 1002L), test.getMillis());
161     }
162
163     public void testAdd_RP_int2() {
164         MutableDateTime test = new MutableDateTime(TEST_TIME1);
165         test.add((ReadablePeriod) null, 1);
166         assertEquals(TEST_TIME1, test.getMillis());
167     }
168
169     //-----------------------------------------------------------------------
170
public void testAdd_DurationFieldType_int1() {
171         MutableDateTime test = new MutableDateTime(TEST_TIME1);
172         test.add(DurationFieldType.years(), 8);
173         assertEquals(2010, test.getYear());
174     }
175
176     public void testAdd_DurationFieldType_int2() {
177         MutableDateTime test = new MutableDateTime(TEST_TIME1);
178         try {
179             test.add((DurationFieldType) null, 0);
180             fail();
181         } catch (IllegalArgumentException JavaDoc ex) {}
182         assertEquals(TEST_TIME1, test.getMillis());
183     }
184
185     public void testAdd_DurationFieldType_int3() {
186         MutableDateTime test = new MutableDateTime(TEST_TIME1);
187         try {
188             test.add((DurationFieldType) null, 6);
189             fail();
190         } catch (IllegalArgumentException JavaDoc ex) {}
191         assertEquals(TEST_TIME1, test.getMillis());
192     }
193
194     //-----------------------------------------------------------------------
195
public void testAddYears_int1() {
196         MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8);
197         test.addYears(8);
198         assertEquals("2010-06-09T05:06:07.008+01:00", test.toString());
199     }
200
201     //-----------------------------------------------------------------------
202
public void testAddMonths_int1() {
203         MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8);
204         test.addMonths(6);
205         assertEquals("2002-12-09T05:06:07.008Z", test.toString());
206     }
207
208     //-----------------------------------------------------------------------
209
public void testAddDays_int1() {
210         MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8);
211         test.addDays(17);
212         assertEquals("2002-06-26T05:06:07.008+01:00", test.toString());
213     }
214
215     //-----------------------------------------------------------------------
216
public void testAddWeekyears_int1() {
217         MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8);
218         test.addWeekyears(-1);
219         assertEquals("2001-06-10T05:06:07.008+01:00", test.toString());
220     }
221
222     //-----------------------------------------------------------------------
223
public void testAddWeeks_int1() {
224         MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8);
225         test.addWeeks(-21);
226         assertEquals("2002-01-13T05:06:07.008Z", test.toString());
227     }
228
229     //-----------------------------------------------------------------------
230
public void testAddHours_int1() {
231         MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8);
232         test.addHours(13);
233         assertEquals("2002-06-09T18:06:07.008+01:00", test.toString());
234     }
235
236     //-----------------------------------------------------------------------
237
public void testAddMinutes_int1() {
238         MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8);
239         test.addMinutes(13);
240         assertEquals("2002-06-09T05:19:07.008+01:00", test.toString());
241     }
242
243     //-----------------------------------------------------------------------
244
public void testAddSeconds_int1() {
245         MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8);
246         test.addSeconds(13);
247         assertEquals("2002-06-09T05:06:20.008+01:00", test.toString());
248     }
249
250     //-----------------------------------------------------------------------
251
public void testAddMillis_int1() {
252         MutableDateTime test = new MutableDateTime(2002, 6, 9, 5, 6, 7, 8);
253         test.addMillis(13);
254         assertEquals("2002-06-09T05:06:07.021+01:00", test.toString());
255     }
256
257 }
258
Popular Tags