@Test
  public void shouldGetAllPeriodsAfterAGivenPeriodAndADate() throws Exception {
    DateTime date1 = new DateTime();
    DateTime date2 = date1.minusMonths(1);
    DateTime date3 = date1.minusMonths(2);
    DateTime date4 = date1.minusMonths(3);
    DateTime date5 = date1.minusMonths(4);
    DateTime futureDate = date1.plusMonths(1);

    insertProcessingPeriod("Period 1", date5, date4);
    ProcessingPeriod period2 = insertProcessingPeriod("Period 2", date4.plusDays(1), date3);
    ProcessingPeriod period3 = insertProcessingPeriod("Period 3", date3.plusDays(1), date2);
    ProcessingPeriod period4 = insertProcessingPeriod("Period 4", date2.plusDays(1), date1);
    insertProcessingPeriod("Period 5", date1.plusDays(1), futureDate);

    List<ProcessingPeriod> relevantPeriods =
        mapper.getAllPeriodsAfterDateAndPeriod(
            schedule.getId(), period2.getId(), date3.toDate(), date1.toDate());

    assertThat(relevantPeriods.size(), is(2));
    assertThat(relevantPeriods.get(0).getId(), is(period3.getId()));
    assertThat(relevantPeriods.get(1).getId(), is(period4.getId()));
  }