@Test
public void shouldGroupByIntervals() {
List<PurgeableAnalysisDto> snapshots = Arrays.asList(
DbCleanerTestUtils.createAnalysisWithDate("u1", "2011-04-03"),
DbCleanerTestUtils.createAnalysisWithDate("u2", "2011-05-01"),
DbCleanerTestUtils.createAnalysisWithDate("u3", "2011-05-19"),
DbCleanerTestUtils.createAnalysisWithDate("u4", "2011-06-02"),
DbCleanerTestUtils.createAnalysisWithDate("u5", "2011-06-20"),
DbCleanerTestUtils.createAnalysisWithDate("u6", "2012-06-29")
);
List<Interval> intervals = Interval.group(snapshots, DateUtils.parseDate("2010-01-01"), DateUtils.parseDate("2011-12-31"), Calendar.MONTH);
assertThat(intervals.size()).isEqualTo(3);
assertThat(intervals.get(0).count()).isEqualTo(1);
assertThat(calendarField(intervals.get(0), Calendar.MONTH)).isEqualTo((Calendar.APRIL));
assertThat(intervals.get(1).count()).isEqualTo(2);
assertThat(calendarField(intervals.get(1), Calendar.MONTH)).isEqualTo((Calendar.MAY));
assertThat(intervals.get(2).count()).isEqualTo(2);
assertThat(calendarField(intervals.get(2), Calendar.MONTH)).isEqualTo((Calendar.JUNE));
}