@Test public void shouldKeepNonDeletableSnapshots() { Filter filter = new KeepOneFilter(DateUtils.parseDate("2011-03-25"), DateUtils.parseDate("2011-08-25"), Calendar.MONTH, "month"); List<PurgeableAnalysisDto> toDelete = filter.filter(Arrays.asList( DbCleanerTestUtils.createAnalysisWithDate("u1", "2011-05-01"), // to be deleted DbCleanerTestUtils.createAnalysisWithDate("u2", "2011-05-02").setLast(true), DbCleanerTestUtils.createAnalysisWithDate("u3", "2011-05-19").setHasEvents(true).setLast(false), DbCleanerTestUtils.createAnalysisWithDate("u4", "2011-05-23") // to be deleted )); assertThat(toDelete).hasSize(2); assertThat(analysisUuids(toDelete)).contains("u1", "u4"); }
@Test public void shouldOnlyOneSnapshotPerInterval() { Filter filter = new KeepOneFilter(DateUtils.parseDate("2011-03-25"), DateUtils.parseDate("2011-08-25"), Calendar.MONTH, "month"); List<PurgeableAnalysisDto> toDelete = filter.filter(Arrays.asList( DbCleanerTestUtils.createAnalysisWithDate("u1", "2010-01-01"), // out of scope -> keep DbCleanerTestUtils.createAnalysisWithDate("u2", "2011-05-01"), // may -> keep DbCleanerTestUtils.createAnalysisWithDate("u3", "2011-05-02"), // may -> to be deleted DbCleanerTestUtils.createAnalysisWithDate("u4", "2011-05-19"), // may -> to be deleted DbCleanerTestUtils.createAnalysisWithDate("u5", "2011-06-01"), // june -> keep DbCleanerTestUtils.createAnalysisWithDate("u6", "2012-01-01") // out of scope -> keep )); assertThat(toDelete).hasSize(2); assertThat(analysisUuids(toDelete)).containsOnly("u2", "u3"); }