KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > calendar > ui > calendar > MainCalendarControllerTest


1 package org.columba.calendar.ui.calendar;
2
3 import junit.framework.TestCase;
4
5 import com.miginfocom.util.dates.DateRange;
6
7 public class MainCalendarControllerTest extends TestCase {
8     
9     private DateRange resetClock(DateRange in) {
10         DateRange range = in;
11         range.setStartField(java.util.Calendar.HOUR_OF_DAY, 0);
12         range.setStartField(java.util.Calendar.MINUTE, 0);
13         range.setStartField(java.util.Calendar.SECOND, 0);
14         range.setStartField(java.util.Calendar.MILLISECOND, 0);
15         range.setEndField(java.util.Calendar.HOUR_OF_DAY, 23);
16         range.setEndField(java.util.Calendar.MINUTE, 59);
17         range.setEndField(java.util.Calendar.SECOND, 59);
18         range.setEndField(java.util.Calendar.MILLISECOND, 999);
19         return range;
20     }
21     
22     // FIXME missing full tests for leap year
23

24     // ************
25
// normal cases
26
// ************
27

28     public void testRollWithYearsNormalCaseDay() {
29         
30         DateRange range = new DateRange();
31         range.setStartField(java.util.Calendar.YEAR, 2007);
32         range.setStartField(java.util.Calendar.MONTH, 0);
33         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 1);
34         
35         range.setEndField(java.util.Calendar.YEAR, 2007);
36         range.setEndField(java.util.Calendar.MONTH, 0);
37         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 1);
38         range = resetClock(range);
39
40         MainCalendarController.rollWithYears(range, java.util.Calendar.DAY_OF_YEAR, 1);
41         
42         assertEquals(2007, range.getStartField(java.util.Calendar.YEAR));
43         assertEquals(0, range.getStartField(java.util.Calendar.MONTH));
44         assertEquals(2, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
45         
46         assertEquals(2007, range.getEndField(java.util.Calendar.YEAR));
47         assertEquals(0, range.getEndField(java.util.Calendar.MONTH));
48         assertEquals(2, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
49         
50     }
51
52     public void testRollWithYearsNormalCaseWeek() {
53         
54         DateRange range = new DateRange();
55         range.setStartField(java.util.Calendar.YEAR, 2007);
56         range.setStartField(java.util.Calendar.MONTH, 0);
57         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 1);
58         
59         range.setEndField(java.util.Calendar.YEAR, 2007);
60         range.setEndField(java.util.Calendar.MONTH, 0);
61         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 7);
62         
63         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, 1);
64         
65         assertEquals(2007, range.getStartField(java.util.Calendar.YEAR));
66         assertEquals(0, range.getStartField(java.util.Calendar.MONTH));
67         assertEquals(8, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
68         
69         assertEquals(2007, range.getEndField(java.util.Calendar.YEAR));
70         assertEquals(0, range.getEndField(java.util.Calendar.MONTH));
71         assertEquals(14, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
72         
73     }
74
75     public void testRollWithYearsNormalCaseDayNegative() {
76         
77         DateRange range = new DateRange();
78         range.setStartField(java.util.Calendar.YEAR, 2007);
79         range.setStartField(java.util.Calendar.MONTH, 0);
80         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 2);
81         
82         range.setEndField(java.util.Calendar.YEAR, 2007);
83         range.setEndField(java.util.Calendar.MONTH, 0);
84         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 2);
85         
86         MainCalendarController.rollWithYears(range, java.util.Calendar.DAY_OF_YEAR, -1);
87         
88         assertEquals(2007, range.getStartField(java.util.Calendar.YEAR));
89         assertEquals(0, range.getStartField(java.util.Calendar.MONTH));
90         assertEquals(1, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
91         
92         assertEquals(2007, range.getEndField(java.util.Calendar.YEAR));
93         assertEquals(0, range.getEndField(java.util.Calendar.MONTH));
94         assertEquals(1, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
95         
96     }
97
98     public void testRollWithYearsNormalCaseWeekNegative() {
99         
100         DateRange range = new DateRange();
101         range.setStartField(java.util.Calendar.YEAR, 2007);
102         range.setStartField(java.util.Calendar.MONTH, 0);
103         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 8);
104         
105         range.setEndField(java.util.Calendar.YEAR, 2007);
106         range.setEndField(java.util.Calendar.MONTH, 0);
107         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 14);
108         
109         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, -1);
110         
111         assertEquals(2007, range.getStartField(java.util.Calendar.YEAR));
112         assertEquals(0, range.getStartField(java.util.Calendar.MONTH));
113         assertEquals(1, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
114         
115         assertEquals(2007, range.getEndField(java.util.Calendar.YEAR));
116         assertEquals(0, range.getEndField(java.util.Calendar.MONTH));
117         assertEquals(7, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
118         
119     }
120     
121     // ***********
122
// edge values
123
// ***********
124

125     public void testRollWithYearsFirstDayCaseDayNegative() {
126         
127         DateRange range = new DateRange();
128         range.setStartField(java.util.Calendar.YEAR, 2007);
129         range.setStartField(java.util.Calendar.MONTH, 0);
130         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 1);
131         
132         range.setEndField(java.util.Calendar.YEAR, 2007);
133         range.setEndField(java.util.Calendar.MONTH, 0);
134         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 1);
135         
136         MainCalendarController.rollWithYears(range, java.util.Calendar.DAY_OF_YEAR, -1);
137         
138         assertEquals(2006, range.getStartField(java.util.Calendar.YEAR));
139         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
140         assertEquals(365, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
141         
142         assertEquals(2006, range.getEndField(java.util.Calendar.YEAR));
143         assertEquals(11, range.getEndField(java.util.Calendar.MONTH));
144         assertEquals(365, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
145         
146     }
147
148     public void testRollWithYearsLastDayCaseDay() {
149         
150         DateRange range = new DateRange();
151         range.setStartField(java.util.Calendar.YEAR, 2006);
152         range.setStartField(java.util.Calendar.MONTH, 11);
153         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 365);
154         
155         range.setEndField(java.util.Calendar.YEAR, 2006);
156         range.setEndField(java.util.Calendar.MONTH, 11);
157         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 365);
158         
159         MainCalendarController.rollWithYears(range, java.util.Calendar.DAY_OF_YEAR, 1);
160         
161         assertEquals(2007, range.getStartField(java.util.Calendar.YEAR));
162         assertEquals(0, range.getStartField(java.util.Calendar.MONTH));
163         assertEquals(1, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
164         
165         assertEquals(2007, range.getEndField(java.util.Calendar.YEAR));
166         assertEquals(0, range.getEndField(java.util.Calendar.MONTH));
167         assertEquals(1, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
168         
169     }
170
171     public void testRollWithYearsFirstDayCaseWeekNegative() {
172         
173         DateRange range = new DateRange();
174         range.setStartField(java.util.Calendar.YEAR, 2007);
175         range.setStartField(java.util.Calendar.MONTH, 0);
176         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 1);
177         
178         range.setEndField(java.util.Calendar.YEAR, 2007);
179         range.setEndField(java.util.Calendar.MONTH, 0);
180         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 7);
181         
182         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, -1);
183
184         assertEquals(2006, range.getStartField(java.util.Calendar.YEAR));
185         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
186         assertEquals(359, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
187         
188         assertEquals(2006, range.getEndField(java.util.Calendar.YEAR));
189         assertEquals(11, range.getEndField(java.util.Calendar.MONTH));
190         assertEquals(365, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
191         
192     }
193
194     public void testRollWithYearsLastDayCaseWeek() {
195
196         DateRange range = new DateRange();
197         range.setStartField(java.util.Calendar.YEAR, 2006);
198         range.setStartField(java.util.Calendar.MONTH, 11);
199         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 359);
200         
201         range.setEndField(java.util.Calendar.YEAR, 2006);
202         range.setEndField(java.util.Calendar.MONTH, 11);
203         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 365);
204         
205         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, 1);
206
207         assertEquals(2007, range.getStartField(java.util.Calendar.YEAR));
208         assertEquals(0, range.getStartField(java.util.Calendar.MONTH));
209         assertEquals(1, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
210         
211         assertEquals(2007, range.getEndField(java.util.Calendar.YEAR));
212         assertEquals(0, range.getEndField(java.util.Calendar.MONTH));
213         assertEquals(7, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
214         
215     }
216
217     // ******************
218
// more than one year
219
// ******************
220

221     public void testRollWithYearsFirstDayCaseDayNegativeMore() {
222         
223         DateRange range = new DateRange();
224         range.setStartField(java.util.Calendar.YEAR, 2007);
225         range.setStartField(java.util.Calendar.MONTH, 0);
226         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 1);
227         
228         range.setEndField(java.util.Calendar.YEAR, 2007);
229         range.setEndField(java.util.Calendar.MONTH, 0);
230         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 1);
231         
232         MainCalendarController.rollWithYears(range, java.util.Calendar.DAY_OF_YEAR, -366);
233         
234         assertEquals(2005, range.getStartField(java.util.Calendar.YEAR));
235         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
236         assertEquals(365, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
237         
238         assertEquals(2005, range.getEndField(java.util.Calendar.YEAR));
239         assertEquals(11, range.getEndField(java.util.Calendar.MONTH));
240         assertEquals(365, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
241         
242     }
243
244     public void testRollWithYearsLastDayCaseDayMore() {
245         
246         DateRange range = new DateRange();
247         range.setStartField(java.util.Calendar.YEAR, 2006);
248         range.setStartField(java.util.Calendar.MONTH, 11);
249         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 365);
250         
251         range.setEndField(java.util.Calendar.YEAR, 2006);
252         range.setEndField(java.util.Calendar.MONTH, 11);
253         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 365);
254         
255         MainCalendarController.rollWithYears(range, java.util.Calendar.DAY_OF_YEAR, 366);
256         
257         assertEquals(2008, range.getStartField(java.util.Calendar.YEAR));
258         assertEquals(0, range.getStartField(java.util.Calendar.MONTH));
259         assertEquals(1, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
260         
261         assertEquals(2008, range.getEndField(java.util.Calendar.YEAR));
262         assertEquals(0, range.getEndField(java.util.Calendar.MONTH));
263         assertEquals(1, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
264         
265     }
266
267     public void testRollWithYearsFirstDayCaseWeekNegativeMore() {
268         
269         DateRange range = new DateRange();
270         range.setStartField(java.util.Calendar.YEAR, 2007);
271         range.setStartField(java.util.Calendar.MONTH, 0);
272         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 1);
273         
274         range.setEndField(java.util.Calendar.YEAR, 2007);
275         range.setEndField(java.util.Calendar.MONTH, 0);
276         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 7);
277         
278         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, -54);
279
280         assertEquals(2005, range.getStartField(java.util.Calendar.YEAR));
281         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
282         assertEquals(353, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
283         
284         assertEquals(2005, range.getEndField(java.util.Calendar.YEAR));
285         assertEquals(11, range.getEndField(java.util.Calendar.MONTH));
286         assertEquals(359, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
287         
288     }
289
290     public void testRollWithYearsLastDayCaseWeekMore() {
291
292         DateRange range = new DateRange();
293         range.setStartField(java.util.Calendar.YEAR, 2006);
294         range.setStartField(java.util.Calendar.MONTH, 11);
295         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 359);
296         
297         range.setEndField(java.util.Calendar.YEAR, 2006);
298         range.setEndField(java.util.Calendar.MONTH, 11);
299         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 365);
300         
301         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, 53);
302
303         assertEquals(2007, range.getStartField(java.util.Calendar.YEAR));
304         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
305         assertEquals(365, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
306         
307         assertEquals(2008, range.getEndField(java.util.Calendar.YEAR));
308         assertEquals(0, range.getEndField(java.util.Calendar.MONTH));
309         assertEquals(6, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
310         
311     }
312     
313     public void testROllWithYearsViewToday() {
314
315         DateRange range = new DateRange();
316         range.setStartField(java.util.Calendar.YEAR, 2011);
317         range.setStartField(java.util.Calendar.MONTH, 1);
318         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 37);
319         
320         range.setEndField(java.util.Calendar.YEAR, 2011);
321         range.setEndField(java.util.Calendar.MONTH, 2);
322         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 85);
323         
324         MainCalendarController.rollWithYears(range, java.util.Calendar.DAY_OF_YEAR, -1510);
325
326         assertEquals(2006, range.getStartField(java.util.Calendar.YEAR));
327         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
328         assertEquals(352, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
329         
330         assertEquals(2007, range.getEndField(java.util.Calendar.YEAR));
331         assertEquals(1, range.getEndField(java.util.Calendar.MONTH));
332         assertEquals(35, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
333         
334     }
335     
336     public void testPlusYears() {
337         
338         DateRange range = new DateRange();
339         range.setStartField(java.util.Calendar.YEAR, 2005);
340         range.setStartField(java.util.Calendar.MONTH, 11);
341         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 351);
342         
343         range.setEndField(java.util.Calendar.YEAR, 2005);
344         range.setEndField(java.util.Calendar.MONTH, 11);
345         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 361);
346         
347         MainCalendarController.rollWithYears(range, java.util.Calendar.DAY_OF_YEAR, 379);
348
349         assertEquals(2006, range.getStartField(java.util.Calendar.YEAR));
350         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
351         assertEquals(365, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
352         
353         assertEquals(2007, range.getEndField(java.util.Calendar.YEAR));
354         assertEquals(0, range.getEndField(java.util.Calendar.MONTH));
355         assertEquals(10, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
356         
357     }
358     
359     // ***************
360
// MONTH VIEW TEST
361
// ***************
362

363     public void testRollWithYearsLastDayCaseMonth() {
364
365         DateRange range = new DateRange();
366         range.setStartField(java.util.Calendar.YEAR, 2006);
367         range.setStartField(java.util.Calendar.MONTH, 10);
368         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 329);
369         
370         range.setEndField(java.util.Calendar.YEAR, 2006);
371         range.setEndField(java.util.Calendar.MONTH, 11);
372         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 365);
373         
374         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, 1);
375
376         assertEquals(2006, range.getStartField(java.util.Calendar.YEAR));
377         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
378         assertEquals(336, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
379         
380         assertEquals(2007, range.getEndField(java.util.Calendar.YEAR));
381         assertEquals(0, range.getEndField(java.util.Calendar.MONTH));
382         assertEquals(7, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
383         
384     }
385
386     public void testRollWithYearsLastDayCaseBack() {
387
388         DateRange range = new DateRange();
389         range.setStartField(java.util.Calendar.YEAR, 2006);
390         range.setStartField(java.util.Calendar.MONTH, 10);
391         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 334);
392         
393         range.setEndField(java.util.Calendar.YEAR, 2007);
394         range.setEndField(java.util.Calendar.MONTH, 0);
395         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 7);
396         
397         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, -1);
398
399         assertEquals(2006, range.getStartField(java.util.Calendar.YEAR));
400         assertEquals(10, range.getStartField(java.util.Calendar.MONTH));
401         assertEquals(327, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
402         
403         assertEquals(2006, range.getEndField(java.util.Calendar.YEAR));
404         assertEquals(11, range.getEndField(java.util.Calendar.MONTH));
405         assertEquals(365, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
406         
407     }
408
409     public void testRollWithYearsLastDayCaseForward() {
410
411         DateRange range = new DateRange();
412         range.setStartField(java.util.Calendar.YEAR, 2007);
413         range.setStartField(java.util.Calendar.MONTH, 11);
414         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 358);
415         
416         range.setEndField(java.util.Calendar.YEAR, 2008);
417         range.setEndField(java.util.Calendar.MONTH, 1);
418         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 33);
419         
420         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, 1);
421
422         assertEquals(2007, range.getStartField(java.util.Calendar.YEAR));
423         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
424         assertEquals(365, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
425         
426         assertEquals(2008, range.getEndField(java.util.Calendar.YEAR));
427         assertEquals(1, range.getEndField(java.util.Calendar.MONTH));
428         assertEquals(40, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
429         
430     }
431     
432     public void testRollWithYearsLastDayCaseForwardTwo() {
433
434         DateRange range = new DateRange();
435         range.setStartField(java.util.Calendar.YEAR, 2004);
436         range.setStartField(java.util.Calendar.MONTH, 11);
437         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 361);
438         
439         range.setEndField(java.util.Calendar.YEAR, 2005);
440         range.setEndField(java.util.Calendar.MONTH, 0);
441         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 29);
442         
443         range = resetClock(range);
444
445         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, 1);
446
447         assertEquals(2005, range.getStartField(java.util.Calendar.YEAR));
448         assertEquals(0, range.getStartField(java.util.Calendar.MONTH));
449         assertEquals(2, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
450         
451         assertEquals(2005, range.getEndField(java.util.Calendar.YEAR));
452         assertEquals(1, range.getEndField(java.util.Calendar.MONTH));
453         assertEquals(36, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
454         
455     }
456     
457     public void testRollWithYearsLastDayCaseBackTwo() {
458
459         DateRange range = new DateRange();
460         range.setStartField(java.util.Calendar.YEAR, 2005);
461         range.setStartField(java.util.Calendar.MONTH, 0);
462         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 2);
463         
464         range.setEndField(java.util.Calendar.YEAR, 2005);
465         range.setEndField(java.util.Calendar.MONTH, 1);
466         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 43);
467         
468         range = resetClock(range);
469
470         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, -1);
471
472         assertEquals(2004, range.getStartField(java.util.Calendar.YEAR));
473         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
474         assertEquals(361, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
475         
476         assertEquals(2005, range.getEndField(java.util.Calendar.YEAR));
477         assertEquals(1, range.getEndField(java.util.Calendar.MONTH));
478         assertEquals(36, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
479         
480     }
481
482     public void testRollWithYearsLastDayCaseForwardThree() {
483
484         DateRange range = new DateRange();
485         range.setStartField(java.util.Calendar.YEAR, 2007);
486         range.setStartField(java.util.Calendar.MONTH, 11);
487         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 357);
488         
489         range.setEndField(java.util.Calendar.YEAR, 2008);
490         range.setEndField(java.util.Calendar.MONTH, 1);
491         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 33);
492         
493         range = resetClock(range);
494
495         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, 1);
496
497         assertEquals(2007, range.getStartField(java.util.Calendar.YEAR));
498         assertEquals(11, range.getStartField(java.util.Calendar.MONTH));
499         assertEquals(364, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
500         
501         assertEquals(2008, range.getEndField(java.util.Calendar.YEAR));
502         assertEquals(1, range.getEndField(java.util.Calendar.MONTH));
503         assertEquals(40, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
504         
505     }
506
507     // new vis range = Start: Sep 23, 2007 12:00:00 AM (RAW:1.0, DST:-1.0) End: Nov 3, 2007 11:59:59 PM (RAW:1.0, DST:0.0) Time zone: null Locale: null
508
// new vis range = Start: Oct 1, 2007 12:00:00 AM (RAW:1.0, DST:-1.0) End: Nov 11, 2007 11:59:59 PM (RAW:1.0, DST:0.0) Time zone: null Locale: null
509
// should be
510
// new vis range = Start: Oct 1, 2007 12:00:00 AM (RAW:1.0, DST:-1.0) End: Nov 10, 2007 11:59:59 PM (RAW:1.0, DST:0.0) Time zone: null Locale: null
511
public void testRollWithYearsLastDayCaseForwardFour() {
512
513         DateRange range = new DateRange();
514         range.setStartField(java.util.Calendar.YEAR, 2007);
515         range.setStartField(java.util.Calendar.MONTH, 8);
516         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 266);
517         
518         range.setEndField(java.util.Calendar.YEAR, 2007);
519         range.setEndField(java.util.Calendar.MONTH, 10);
520         range.setEndField(java.util.Calendar.DAY_OF_YEAR, 307);
521         
522         range = resetClock(range);
523
524         MainCalendarController.rollWithYears(range, java.util.Calendar.WEEK_OF_YEAR, 1);
525
526         assertEquals(2007, range.getStartField(java.util.Calendar.YEAR));
527         assertEquals(8, range.getStartField(java.util.Calendar.MONTH));
528         assertEquals(273, range.getStartField(java.util.Calendar.DAY_OF_YEAR));
529         
530         assertEquals(2007, range.getEndField(java.util.Calendar.YEAR));
531         assertEquals(10, range.getEndField(java.util.Calendar.MONTH));
532         assertEquals(314, range.getEndField(java.util.Calendar.DAY_OF_YEAR));
533         
534     }
535
536     // java bugs
537
// http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4197699
538
//
539
// For JDK1.2.1_003, WEEK_OF_YEAR returns 1 instead of 53 for 12/31/1999 and also
540
// 1 instead of 54 for 12/31/2000, (It returns 1 for 1/1/1999 and 1/1/2000).
541

542     public void testWeekFiftyThree() {
543
544         DateRange range = new DateRange();
545         range.setStartField(java.util.Calendar.YEAR, 2004);
546         range.setStartField(java.util.Calendar.MONTH, 11);
547         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 365);
548         
549         assertEquals(53, MainCalendarController.getWeekOfYear(range.getStart()));
550
551     }
552     
553     public void testWeekFiftyFour() {
554         
555         int[] fiftythree = new int[] { 1970, 1976, 1987, 1992, 1998 };
556         
557         for (int i = 0; i < fiftythree.length; i++) {
558
559             DateRange range = new DateRange();
560             range.setStartField(java.util.Calendar.YEAR, fiftythree[i]);
561             range.setStartField(java.util.Calendar.MONTH, 11);
562             range.setStartField(java.util.Calendar.DAY_OF_YEAR, 365);
563             
564             assertEquals(53, MainCalendarController.getWeekOfYear(range.getStart()));
565
566         }
567         
568     }
569     
570     public void testNonFiftyThree() {
571         DateRange range = new DateRange();
572         range.setStartField(java.util.Calendar.YEAR, 2005);
573         range.setStartField(java.util.Calendar.MONTH, 0);
574         range.setStartField(java.util.Calendar.DAY_OF_YEAR, 2);
575         
576         assertEquals(1, MainCalendarController.getWeekOfYear(range.getStart()));
577     }
578
579 }
580
Popular Tags