View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      https://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.lang3.time;
18  
19  import static org.apache.commons.lang3.LangAssertions.assertIllegalArgumentException;
20  import static org.apache.commons.lang3.LangAssertions.assertNullPointerException;
21  import static org.junit.jupiter.api.Assertions.assertEquals;
22  
23  import java.util.Calendar;
24  import java.util.Date;
25  
26  import org.apache.commons.lang3.AbstractLangTest;
27  import org.junit.jupiter.api.BeforeEach;
28  import org.junit.jupiter.api.Test;
29  
30  class DateUtilsFragmentTest extends AbstractLangTest {
31  
32      private static final Date MAX_DATE = new Date(Long.MAX_VALUE);
33      private static final int months = 7; // second final prime before 12
34      private static final int days = 23; // second final prime before 31 (and valid)
35      private static final int hours = 19; // second final prime before 24
36      private static final int minutes = 53; // second final prime before 60
37      private static final int seconds = 47; // third final prime before 60
38      private static final int millis = 991; // second final prime before 1000
39  
40      private Date aDate;
41      private Calendar aCalendar;
42  
43      @BeforeEach
44      public void setUp() {
45          aCalendar = Calendar.getInstance();
46          aCalendar.set(2005, months, days, hours, minutes, seconds);
47          aCalendar.set(Calendar.MILLISECOND, millis);
48          aDate = aCalendar.getTime();
49      }
50  
51      @Test
52      void testDateFragmentInLargerUnitWithCalendar() {
53          assertEquals(0, DateUtils.getFragmentInDays(aCalendar, Calendar.DATE));
54      }
55  
56      @Test
57      void testDateFragmentInLargerUnitWithDate() {
58          assertEquals(0, DateUtils.getFragmentInDays(aDate, Calendar.DATE));
59          assertEquals(0, DateUtils.getFragmentInDays(MAX_DATE, Calendar.DATE));
60      }
61  
62      @Test
63      void testDayOfYearFragmentInLargerUnitWithCalendar() {
64          assertEquals(0, DateUtils.getFragmentInDays(aCalendar, Calendar.DAY_OF_YEAR));
65      }
66  
67      @Test
68      void testDayOfYearFragmentInLargerUnitWithDate() {
69          assertEquals(0, DateUtils.getFragmentInDays(aDate, Calendar.DAY_OF_YEAR));
70          assertEquals(0, DateUtils.getFragmentInDays(MAX_DATE, Calendar.DAY_OF_YEAR));
71      }
72  
73      @Test
74      void testDaysOfMonthWithCalendar() {
75          assertEquals(days, DateUtils.getFragmentInDays(aCalendar, Calendar.MONTH));
76      }
77  
78      @Test
79      void testDaysOfMonthWithDate() {
80          final long testResult = DateUtils.getFragmentInDays(aDate, Calendar.MONTH);
81          final Calendar cal = Calendar.getInstance();
82          cal.setTime(aDate);
83          assertEquals(cal.get(Calendar.DAY_OF_MONTH), testResult);
84      }
85  
86      @Test
87      void testDaysOfYearWithCalendar() {
88          final long testResult = DateUtils.getFragmentInDays(aCalendar, Calendar.YEAR);
89          assertEquals(aCalendar.get(Calendar.DAY_OF_YEAR), testResult);
90      }
91  
92      @Test
93      void testDaysOfYearWithDate() {
94          final long testResult = DateUtils.getFragmentInDays(aDate, Calendar.YEAR);
95          final Calendar cal = Calendar.getInstance();
96          cal.setTime(aDate);
97          assertEquals(cal.get(Calendar.DAY_OF_YEAR), testResult);
98      }
99  
100     @Test
101     void testHourOfDayFragmentInLargerUnitWithCalendar() {
102         assertEquals(0, DateUtils.getFragmentInHours(aCalendar, Calendar.HOUR_OF_DAY));
103         assertEquals(0, DateUtils.getFragmentInDays(aCalendar, Calendar.HOUR_OF_DAY));
104     }
105 
106     @Test
107     void testHourOfDayFragmentInLargerUnitWithDate() {
108         assertEquals(0, DateUtils.getFragmentInHours(aDate, Calendar.HOUR_OF_DAY));
109         assertEquals(0, DateUtils.getFragmentInDays(aDate, Calendar.HOUR_OF_DAY));
110         assertEquals(0, DateUtils.getFragmentInHours(MAX_DATE, Calendar.HOUR_OF_DAY));
111         assertEquals(0, DateUtils.getFragmentInDays(MAX_DATE, Calendar.HOUR_OF_DAY));
112     }
113 
114     @Test
115     void testHoursOfDayWithCalendar() {
116         long testResult = DateUtils.getFragmentInHours(aCalendar, Calendar.DATE);
117         final long expectedValue = hours;
118         assertEquals(expectedValue, testResult);
119         testResult = DateUtils.getFragmentInHours(aCalendar, Calendar.DAY_OF_YEAR);
120         assertEquals(expectedValue, testResult);
121     }
122 
123     @Test
124     void testHoursOfDayWithDate() {
125         long testResult = DateUtils.getFragmentInHours(aDate, Calendar.DATE);
126         final long expectedValue = hours;
127         assertEquals(expectedValue, testResult);
128         testResult = DateUtils.getFragmentInHours(aDate, Calendar.DAY_OF_YEAR);
129         assertEquals(expectedValue, testResult);
130     }
131 
132     @Test
133     void testHoursOfMonthWithCalendar() {
134         final long testResult = DateUtils.getFragmentInHours(aCalendar, Calendar.MONTH);
135         assertEquals(hours + (days - 1) * DateUtils.MILLIS_PER_DAY / DateUtils.MILLIS_PER_HOUR, testResult);
136     }
137 
138     @Test
139     void testHoursOfMonthWithDate() {
140         final long testResult = DateUtils.getFragmentInHours(aDate, Calendar.MONTH);
141         assertEquals(hours + (days - 1) * DateUtils.MILLIS_PER_DAY / DateUtils.MILLIS_PER_HOUR, testResult);
142     }
143 
144     @Test
145     void testHoursOfYearWithCalendar() {
146         final long testResult = DateUtils.getFragmentInHours(aCalendar, Calendar.YEAR);
147         assertEquals(hours + (aCalendar.get(Calendar.DAY_OF_YEAR) - 1) * DateUtils.MILLIS_PER_DAY / DateUtils.MILLIS_PER_HOUR, testResult);
148     }
149 
150     @Test
151     void testHoursOfYearWithDate() {
152         final long testResult = DateUtils.getFragmentInHours(aDate, Calendar.YEAR);
153         final Calendar cal = Calendar.getInstance();
154         cal.setTime(aDate);
155         assertEquals(hours + (cal.get(Calendar.DAY_OF_YEAR) - 1) * DateUtils.MILLIS_PER_DAY / DateUtils.MILLIS_PER_HOUR, testResult);
156     }
157 
158     // Calendar.SECOND as useful fragment
159 
160     @Test
161     void testInvalidFragmentWithCalendar() {
162         assertIllegalArgumentException(() -> DateUtils.getFragmentInMilliseconds(aCalendar, 0));
163         assertIllegalArgumentException(() -> DateUtils.getFragmentInSeconds(aCalendar, 0));
164         assertIllegalArgumentException(() -> DateUtils.getFragmentInMinutes(aCalendar, 0));
165         assertIllegalArgumentException(() -> DateUtils.getFragmentInHours(aCalendar, 0));
166         assertIllegalArgumentException(() -> DateUtils.getFragmentInDays(aCalendar, 0));
167     }
168 
169     @Test
170     void testInvalidFragmentWithDate() {
171         assertIllegalArgumentException(() -> DateUtils.getFragmentInMilliseconds(aDate, 0));
172         assertIllegalArgumentException(() -> DateUtils.getFragmentInSeconds(aDate, 0));
173         assertIllegalArgumentException(() -> DateUtils.getFragmentInMinutes(aDate, 0));
174         assertIllegalArgumentException(() -> DateUtils.getFragmentInHours(aDate, 0));
175         assertIllegalArgumentException(() -> DateUtils.getFragmentInDays(aDate, 0));
176     }
177 
178     // Calendar.MINUTE as useful fragment
179 
180     @Test
181     void testMillisecondFragmentInLargerUnitWithCalendar() {
182         assertEquals(0, DateUtils.getFragmentInMilliseconds(aCalendar, Calendar.MILLISECOND));
183         assertEquals(0, DateUtils.getFragmentInSeconds(aCalendar, Calendar.MILLISECOND));
184         assertEquals(0, DateUtils.getFragmentInMinutes(aCalendar, Calendar.MILLISECOND));
185         assertEquals(0, DateUtils.getFragmentInHours(aCalendar, Calendar.MILLISECOND));
186         assertEquals(0, DateUtils.getFragmentInDays(aCalendar, Calendar.MILLISECOND));
187     }
188 
189     @Test
190     void testMillisecondFragmentInLargerUnitWithDate() {
191         assertEquals(0, DateUtils.getFragmentInMilliseconds(aDate, Calendar.MILLISECOND));
192         assertEquals(0, DateUtils.getFragmentInSeconds(aDate, Calendar.MILLISECOND));
193         assertEquals(0, DateUtils.getFragmentInMinutes(aDate, Calendar.MILLISECOND));
194         assertEquals(0, DateUtils.getFragmentInHours(aDate, Calendar.MILLISECOND));
195         assertEquals(0, DateUtils.getFragmentInDays(aDate, Calendar.MILLISECOND));
196     }
197 
198     @Test
199     void testMillisecondsOfDayWithCalendar() {
200         long testresult = DateUtils.getFragmentInMilliseconds(aCalendar, Calendar.DATE);
201         final long expectedValue = millis + seconds * DateUtils.MILLIS_PER_SECOND + minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR;
202         assertEquals(expectedValue, testresult);
203         testresult = DateUtils.getFragmentInMilliseconds(aCalendar, Calendar.DAY_OF_YEAR);
204         assertEquals(expectedValue, testresult);
205     }
206 
207     // Calendar.DATE and Calendar.DAY_OF_YEAR as useful fragment
208     @Test
209     void testMillisecondsOfDayWithDate() {
210         long testresult = DateUtils.getFragmentInMilliseconds(aDate, Calendar.DATE);
211         final long expectedValue = millis + seconds * DateUtils.MILLIS_PER_SECOND + minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR;
212         assertEquals(expectedValue, testresult);
213         testresult = DateUtils.getFragmentInMilliseconds(aDate, Calendar.DAY_OF_YEAR);
214         assertEquals(expectedValue, testresult);
215     }
216 
217     // Calendar.HOUR_OF_DAY as useful fragment
218 
219     @Test
220     void testMillisecondsOfHourWithCalendar() {
221         final long testResult = DateUtils.getFragmentInMilliseconds(aCalendar, Calendar.HOUR_OF_DAY);
222         assertEquals(millis + seconds * DateUtils.MILLIS_PER_SECOND + minutes * DateUtils.MILLIS_PER_MINUTE, testResult);
223     }
224 
225     @Test
226     void testMillisecondsOfHourWithDate() {
227         final long testResult = DateUtils.getFragmentInMilliseconds(aDate, Calendar.HOUR_OF_DAY);
228         assertEquals(millis + seconds * DateUtils.MILLIS_PER_SECOND + minutes * DateUtils.MILLIS_PER_MINUTE, testResult);
229     }
230 
231     @Test
232     void testMillisecondsOfMinuteWithCalender() {
233         final long testResult = DateUtils.getFragmentInMilliseconds(aCalendar, Calendar.MINUTE);
234         assertEquals(millis + seconds * DateUtils.MILLIS_PER_SECOND, testResult);
235     }
236 
237     @Test
238     void testMillisecondsOfMinuteWithDate() {
239         final long testResult = DateUtils.getFragmentInMilliseconds(aDate, Calendar.MINUTE);
240         assertEquals(millis + seconds * DateUtils.MILLIS_PER_SECOND, testResult);
241     }
242 
243     @Test
244     void testMillisecondsOfMonthWithCalendar() {
245         final long testResult = DateUtils.getFragmentInMilliseconds(aCalendar, Calendar.MONTH);
246         assertEquals(millis + seconds * DateUtils.MILLIS_PER_SECOND + minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR
247                 + (days - 1) * DateUtils.MILLIS_PER_DAY, testResult);
248     }
249 
250     // Calendar.MONTH as useful fragment
251     @Test
252     void testMillisecondsOfMonthWithDate() {
253         final long testResult = DateUtils.getFragmentInMilliseconds(aDate, Calendar.MONTH);
254         assertEquals(millis + seconds * DateUtils.MILLIS_PER_SECOND + minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR
255                 + (days - 1) * DateUtils.MILLIS_PER_DAY, testResult);
256     }
257 
258     @Test
259     void testMillisecondsOfSecondWithCalendar() {
260         final long testResult = DateUtils.getFragmentInMilliseconds(aCalendar, Calendar.SECOND);
261         assertEquals(millis, testResult);
262         assertEquals(aCalendar.get(Calendar.MILLISECOND), testResult);
263     }
264 
265     @Test
266     void testMillisecondsOfSecondWithDate() {
267         final long testResult = DateUtils.getFragmentInMilliseconds(aDate, Calendar.SECOND);
268         assertEquals(millis, testResult);
269     }
270 
271     @Test
272     void testMillisecondsOfYearWithCalendar() {
273         final long testResult = DateUtils.getFragmentInMilliseconds(aCalendar, Calendar.YEAR);
274         assertEquals(millis + seconds * DateUtils.MILLIS_PER_SECOND + minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR
275                 + (aCalendar.get(Calendar.DAY_OF_YEAR) - 1) * DateUtils.MILLIS_PER_DAY, testResult);
276     }
277 
278     // Calendar.YEAR as useful fragment
279     @Test
280     void testMillisecondsOfYearWithDate() {
281         final long testResult = DateUtils.getFragmentInMilliseconds(aDate, Calendar.YEAR);
282         final Calendar cal = Calendar.getInstance();
283         cal.setTime(aDate);
284         assertEquals(millis + seconds * DateUtils.MILLIS_PER_SECOND + minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR
285                 + (cal.get(Calendar.DAY_OF_YEAR) - 1) * DateUtils.MILLIS_PER_DAY, testResult);
286     }
287 
288     @Test
289     void testMinuteFragmentInLargerUnitWithCalendar() {
290         assertEquals(0, DateUtils.getFragmentInMinutes(aCalendar, Calendar.MINUTE));
291         assertEquals(0, DateUtils.getFragmentInHours(aCalendar, Calendar.MINUTE));
292         assertEquals(0, DateUtils.getFragmentInDays(aCalendar, Calendar.MINUTE));
293     }
294 
295     @Test
296     void testMinuteFragmentInLargerUnitWithDate() {
297         assertEquals(0, DateUtils.getFragmentInMinutes(aDate, Calendar.MINUTE));
298         assertEquals(0, DateUtils.getFragmentInHours(aDate, Calendar.MINUTE));
299         assertEquals(0, DateUtils.getFragmentInDays(aDate, Calendar.MINUTE));
300     }
301 
302     @Test
303     void testMinutesOfDayWithCalendar() {
304         long testResult = DateUtils.getFragmentInMinutes(aCalendar, Calendar.DATE);
305         final long expectedValue = minutes + hours * DateUtils.MILLIS_PER_HOUR / DateUtils.MILLIS_PER_MINUTE;
306         assertEquals(expectedValue, testResult);
307         testResult = DateUtils.getFragmentInMinutes(aCalendar, Calendar.DAY_OF_YEAR);
308         assertEquals(expectedValue, testResult);
309     }
310 
311     @Test
312     void testMinutesOfDayWithDate() {
313         long testResult = DateUtils.getFragmentInMinutes(aDate, Calendar.DATE);
314         final long expectedValue = minutes + hours * DateUtils.MILLIS_PER_HOUR / DateUtils.MILLIS_PER_MINUTE;
315         assertEquals(expectedValue, testResult);
316         testResult = DateUtils.getFragmentInMinutes(aDate, Calendar.DAY_OF_YEAR);
317         assertEquals(expectedValue, testResult);
318     }
319 
320     @Test
321     void testMinutesOfHourWithCalendar() {
322         final long testResult = DateUtils.getFragmentInMinutes(aCalendar, Calendar.HOUR_OF_DAY);
323         assertEquals(minutes, testResult);
324     }
325 
326     @Test
327     void testMinutesOfHourWithDate() {
328         final long testResult = DateUtils.getFragmentInMinutes(aDate, Calendar.HOUR_OF_DAY);
329         assertEquals(minutes, testResult);
330     }
331 
332     @Test
333     void testMinutesOfMonthWithCalendar() {
334         final long testResult = DateUtils.getFragmentInMinutes(aCalendar, Calendar.MONTH);
335         assertEquals(minutes + (hours * DateUtils.MILLIS_PER_HOUR + (days - 1) * DateUtils.MILLIS_PER_DAY) / DateUtils.MILLIS_PER_MINUTE, testResult);
336     }
337 
338     @Test
339     void testMinutesOfMonthWithDate() {
340         final long testResult = DateUtils.getFragmentInMinutes(aDate, Calendar.MONTH);
341         assertEquals(minutes + (hours * DateUtils.MILLIS_PER_HOUR + (days - 1) * DateUtils.MILLIS_PER_DAY) / DateUtils.MILLIS_PER_MINUTE, testResult);
342     }
343 
344     @Test
345     void testMinutesOfYearWithCalendar() {
346         final long testResult = DateUtils.getFragmentInMinutes(aCalendar, Calendar.YEAR);
347         assertEquals(minutes
348                 + (hours * DateUtils.MILLIS_PER_HOUR + (aCalendar.get(Calendar.DAY_OF_YEAR) - 1) * DateUtils.MILLIS_PER_DAY) / DateUtils.MILLIS_PER_MINUTE,
349                 testResult);
350     }
351 
352     @Test
353     void testMinutesOfYearWithDate() {
354         final long testResult = DateUtils.getFragmentInMinutes(aDate, Calendar.YEAR);
355         final Calendar cal = Calendar.getInstance();
356         cal.setTime(aDate);
357         assertEquals(
358                 minutes + (hours * DateUtils.MILLIS_PER_HOUR + (cal.get(Calendar.DAY_OF_YEAR) - 1) * DateUtils.MILLIS_PER_DAY) / DateUtils.MILLIS_PER_MINUTE,
359                 testResult);
360     }
361 
362     @Test
363     void testMinutesOfYearWithWrongOffsetBugWithCalendar() {
364         final Calendar c = Calendar.getInstance();
365         c.set(Calendar.MONTH, Calendar.JANUARY);
366         c.set(Calendar.DAY_OF_YEAR, 1);
367         c.set(Calendar.HOUR_OF_DAY, 0);
368         c.set(Calendar.MINUTE, 0);
369         c.set(Calendar.SECOND, 0);
370         c.set(Calendar.MILLISECOND, 0);
371         final long testResult = DateUtils.getFragmentInMinutes(c, Calendar.YEAR);
372         assertEquals(0, testResult);
373     }
374 
375     @Test
376     void testNullCalendar() {
377         assertNullPointerException(() -> DateUtils.getFragmentInMilliseconds((Calendar) null, Calendar.MILLISECOND));
378         assertNullPointerException(() -> DateUtils.getFragmentInSeconds((Calendar) null, Calendar.MILLISECOND));
379         assertNullPointerException(() -> DateUtils.getFragmentInMinutes((Calendar) null, Calendar.MILLISECOND));
380         assertNullPointerException(() -> DateUtils.getFragmentInHours((Calendar) null, Calendar.MILLISECOND));
381         assertNullPointerException(() -> DateUtils.getFragmentInDays((Calendar) null, Calendar.MILLISECOND));
382     }
383 
384     @Test
385     void testNullDate() {
386         assertNullPointerException(() -> DateUtils.getFragmentInMilliseconds((Date) null, Calendar.MILLISECOND));
387         assertNullPointerException(() -> DateUtils.getFragmentInSeconds((Date) null, Calendar.MILLISECOND));
388         assertNullPointerException(() -> DateUtils.getFragmentInMinutes((Date) null, Calendar.MILLISECOND));
389         assertNullPointerException(() -> DateUtils.getFragmentInHours((Date) null, Calendar.MILLISECOND));
390         assertNullPointerException(() -> DateUtils.getFragmentInDays((Date) null, Calendar.MILLISECOND));
391     }
392 
393     @Test
394     void testSecondFragmentInLargerUnitWithCalendar() {
395         assertEquals(0, DateUtils.getFragmentInSeconds(aCalendar, Calendar.SECOND));
396         assertEquals(0, DateUtils.getFragmentInMinutes(aCalendar, Calendar.SECOND));
397         assertEquals(0, DateUtils.getFragmentInHours(aCalendar, Calendar.SECOND));
398         assertEquals(0, DateUtils.getFragmentInDays(aCalendar, Calendar.SECOND));
399     }
400 
401     @Test
402     void testSecondFragmentInLargerUnitWithDate() {
403         assertEquals(0, DateUtils.getFragmentInSeconds(aDate, Calendar.SECOND));
404         assertEquals(0, DateUtils.getFragmentInMinutes(aDate, Calendar.SECOND));
405         assertEquals(0, DateUtils.getFragmentInHours(aDate, Calendar.SECOND));
406         assertEquals(0, DateUtils.getFragmentInDays(aDate, Calendar.SECOND));
407     }
408 
409     @Test
410     void testSecondsOfDayWithCalendar() {
411         long testresult = DateUtils.getFragmentInSeconds(aCalendar, Calendar.DATE);
412         final long expectedValue = seconds + (minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR) / DateUtils.MILLIS_PER_SECOND;
413         assertEquals(expectedValue, testresult);
414         testresult = DateUtils.getFragmentInSeconds(aCalendar, Calendar.DAY_OF_YEAR);
415         assertEquals(expectedValue, testresult);
416     }
417 
418     @Test
419     void testSecondsOfDayWithDate() {
420         long testresult = DateUtils.getFragmentInSeconds(aDate, Calendar.DATE);
421         final long expectedValue = seconds + (minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR) / DateUtils.MILLIS_PER_SECOND;
422         assertEquals(expectedValue, testresult);
423         testresult = DateUtils.getFragmentInSeconds(aDate, Calendar.DAY_OF_YEAR);
424         assertEquals(expectedValue, testresult);
425     }
426 
427     @Test
428     void testSecondsofHourWithCalendar() {
429         final long testResult = DateUtils.getFragmentInSeconds(aCalendar, Calendar.HOUR_OF_DAY);
430         assertEquals(seconds + minutes * DateUtils.MILLIS_PER_MINUTE / DateUtils.MILLIS_PER_SECOND, testResult);
431     }
432 
433     @Test
434     void testSecondsofHourWithDate() {
435         final long testResult = DateUtils.getFragmentInSeconds(aDate, Calendar.HOUR_OF_DAY);
436         assertEquals(seconds + minutes * DateUtils.MILLIS_PER_MINUTE / DateUtils.MILLIS_PER_SECOND, testResult);
437     }
438 
439     @Test
440     void testSecondsofMinuteWithCalendar() {
441         final long testResult = DateUtils.getFragmentInSeconds(aCalendar, Calendar.MINUTE);
442         assertEquals(seconds, testResult);
443         assertEquals(aCalendar.get(Calendar.SECOND), testResult);
444     }
445 
446     @Test
447     void testSecondsofMinuteWithDate() {
448         final long testResult = DateUtils.getFragmentInSeconds(aDate, Calendar.MINUTE);
449         assertEquals(seconds, testResult);
450     }
451 
452     @Test
453     void testSecondsOfMonthWithCalendar() {
454         final long testResult = DateUtils.getFragmentInSeconds(aCalendar, Calendar.MONTH);
455         assertEquals(seconds + (minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR + (days - 1) * DateUtils.MILLIS_PER_DAY)
456                 / DateUtils.MILLIS_PER_SECOND, testResult);
457     }
458 
459     @Test
460     void testSecondsOfMonthWithDate() {
461         final long testResult = DateUtils.getFragmentInSeconds(aDate, Calendar.MONTH);
462         assertEquals(seconds + (minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR + (days - 1) * DateUtils.MILLIS_PER_DAY)
463                 / DateUtils.MILLIS_PER_SECOND, testResult);
464     }
465 
466     @Test
467     void testSecondsOfYearWithCalendar() {
468         final long testResult = DateUtils.getFragmentInSeconds(aCalendar, Calendar.YEAR);
469         assertEquals(seconds + (minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR
470                 + (aCalendar.get(Calendar.DAY_OF_YEAR) - 1) * DateUtils.MILLIS_PER_DAY) / DateUtils.MILLIS_PER_SECOND, testResult);
471     }
472 
473     @Test
474     void testSecondsOfYearWithDate() {
475         final long testResult = DateUtils.getFragmentInSeconds(aDate, Calendar.YEAR);
476         final Calendar cal = Calendar.getInstance();
477         cal.setTime(aDate);
478         assertEquals(seconds
479                 + (minutes * DateUtils.MILLIS_PER_MINUTE + hours * DateUtils.MILLIS_PER_HOUR + (cal.get(Calendar.DAY_OF_YEAR) - 1) * DateUtils.MILLIS_PER_DAY)
480                         / DateUtils.MILLIS_PER_SECOND,
481                 testResult);
482     }
483 }