@Test public void end_period_over_weekend_and_start_in_weekend() { Date start = asDate("04/01/2014 23:30:01"); Date end = asDate("17/01/2014 23:30:01"); assertEquals(end, generalCalendar.calculate(start, 10)); assertEquals(10, generalCalendar.countDays(start, end)); assertEquals(9, generalCalendar.countDays(start, asDate("17/01/2014 23:30:00"))); assertEquals(10, generalCalendar.countDays(start, asDate("17/01/2014 23:30:02"))); }
@Test public void zero_period() { Date start = asDate("22/07/2014 10:50:31"); assertEquals(start, generalCalendar.calculate(start, 0)); assertEquals(0, generalCalendar.countDays(start, start)); assertEquals(0, generalCalendar.countDays(start, asDate("23/07/2014 10:50:30"))); assertEquals(1, generalCalendar.countDays(start, asDate("23/07/2014 10:50:31"))); assertEquals(-1, generalCalendar.countDays(asDate("23/07/2014 10:50:32"), start)); }
@Test public void end_period_over_weekend() { Date start = asDate("22/07/2014 10:50:31"); Date end = asDate("05/08/2014 10:50:31"); assertEquals(end, generalCalendar.calculate(start, 10)); assertEquals(10, generalCalendar.countDays(start, end)); assertEquals(9, generalCalendar.countDays(start, asDate("05/08/2014 10:50:30"))); assertEquals(10, generalCalendar.countDays(start, asDate("05/08/2014 10:50:32"))); assertEquals(10, generalCalendar.countDays(start, asDate("06/08/2014 10:50:30"))); }
@Test public void end_period_over_weekend_and_period_contain_holiday() { ImmutableSet<Date> holidays = ImmutableSet.of(asDay("06/01/2014")); BusinessCalendarDueDateCalculator calendar = new BusinessCalendarDueDateCalculator(emptyDates, holidays); Date start = asDate("04/01/2014 23:30:01"); Date end = asDate("20/01/2014 23:30:01"); assertEquals(end, calendar.calculate(start, 10)); assertEquals(10, calendar.countDays(start, end)); assertEquals(9, calendar.countDays(start, asDate("20/01/2014 23:30:00"))); assertEquals(10, calendar.countDays(start, asDate("20/01/2014 23:30:02"))); }
@Test(expected = IllegalArgumentException.class) public void duration_must_more_than_zero() { generalCalendar.calculate(new Date(), -1); }
@Test(expected = IllegalArgumentException.class) public void date_must_not_null() { generalCalendar.calculate(null, 0); }