private static final Calendar MAY_20_2020 = newCalendar(2020, Calendar.MAY, 20, 1, 0, TIME_ZONE);
private static final Calendar SEPT_20_2020 = newCalendar(2020, Calendar.SEPTEMBER, 20, 1, 0, TIME_ZONE);
private static final Calendar DEC_10_2020 = newCalendar(2020, Calendar.DECEMBER, 1, 1, 0, TIME_ZONE);
+ private static final Calendar DEC_10_2021 = newCalendar(2021, Calendar.DECEMBER, 1, 1, 0, TIME_ZONE);
private static final double AMSTERDAM_LATITUDE = 52.367607;
private static final double SYDNEY_LATITUDE = -33.87;
@Test
public void testGetSeasonAmsterdam() {
- Season season = seasonCalc.getSeason(DEC_10_2020, AMSTERDAM_LATITUDE, true);
- assertNextSeason(season.getSpring(), JAN_20_2020, season);
- assertNextSeason(season.getSummer(), MAY_20_2020, season);
- assertNextSeason(season.getWinter(), SEPT_20_2020, season);
- assertNextSeason(season.getSpring(), DEC_10_2020, season);
+ final Season season = seasonCalc.getSeason(DEC_10_2020, AMSTERDAM_LATITUDE, true);
+
+ assertNextSeason(season.getSpring(), 2020, JAN_20_2020, season);
+ assertNextSeason(season.getSummer(), 2020, MAY_20_2020, season);
+ assertNextSeason(season.getWinter(), 2020, SEPT_20_2020, season);
+ assertNextSeason(seasonCalc.getSeason(DEC_10_2021, AMSTERDAM_LATITUDE, true).getSpring(), 2021, DEC_10_2020,
+ season);
}
@Test
public void testGetSeasonSydney() {
- Season season = seasonCalc.getSeason(DEC_10_2020, SYDNEY_LATITUDE, true);
- assertNextSeason(season.getAutumn(), JAN_20_2020, season);
- assertNextSeason(season.getWinter(), MAY_20_2020, season);
- assertNextSeason(season.getSummer(), SEPT_20_2020, season);
- assertNextSeason(season.getAutumn(), DEC_10_2020, season);
+ final Season season = seasonCalc.getSeason(DEC_10_2020, SYDNEY_LATITUDE, true);
+
+ assertNextSeason(season.getAutumn(), 2020, JAN_20_2020, season);
+ assertNextSeason(season.getWinter(), 2020, MAY_20_2020, season);
+ assertNextSeason(season.getSummer(), 2020, SEPT_20_2020, season);
+ assertNextSeason(seasonCalc.getSeason(DEC_10_2021, SYDNEY_LATITUDE, true).getAutumn(), 2021, DEC_10_2020,
+ season);
}
@Test
assertEquals(endOfDay, target2);
}
- private void assertNextSeason(Calendar expectedSeason, Calendar date, Season season) {
- assertEquals(expectedSeason, DateTimeUtils.getNext(date, season.getSpring(), season.getSummer(),
- season.getAutumn(), season.getWinter()));
+ private static void assertNextSeason(Calendar expectedSeason, int expectedYear, Calendar date, Season season) {
+ final Calendar nextSeason = DateTimeUtils.getNext(date, season.getSpring(), season.getSummer(),
+ season.getAutumn(), season.getWinter());
+ assertEquals(expectedSeason, nextSeason, "Should return the expected season name.");
+ assertEquals(expectedYear, nextSeason.get(Calendar.YEAR), "Should return the year matching the next season.");
}
private static Calendar newCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, TimeZone zone) {