@Test public void shouldGetPropertyValue() { PropertiesConfiguration conf = new PropertiesConfiguration(); conf.setProperty("sonar.timemachine.period1", "5"); assertThat(PastSnapshotFinder.getPropertyValue(conf, 1), is("5")); assertThat(PastSnapshotFinder.getPropertyValue(conf, 999), nullValue()); }
@Test public void shouldNotFindByNumberOfDays() { PastSnapshot variationSnapshot = finder.find(null, 1, "30"); verify(finderByDays).findFromDays(null, 30); assertNull(variationSnapshot); }
@Test public void shouldGetDefaultPropertyValue() { PropertiesConfiguration conf = new PropertiesConfiguration(); conf.setProperty("sonar.timemachine.period1", "5"); assertThat( PastSnapshotFinder.getPropertyValue(conf, 2), is(CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_2)); }
@Test public void shouldNotFindVersion() { when(finderByVersion.findByVersion(null, "1.2")).thenReturn(null); PastSnapshot variationSnapshot = finder.find(null, 2, "1.2"); verify(finderByVersion).findByVersion(null, "1.2"); assertNull(variationSnapshot); }
@Test public void shouldNotFailIfUnknownFormat() { when(finderByPreviousAnalysis.findByPreviousAnalysis(null)) .thenReturn( new PastSnapshot( CoreProperties.TIMEMACHINE_MODE_PREVIOUS_ANALYSIS, new Snapshot())); // should not be called assertNull(finder.find(null, 2, "foooo")); }
@Test public void shouldNotFindByDate() throws ParseException { when(finderByDate.findByDate((Snapshot) anyObject(), (Date) anyObject())).thenReturn(null); PastSnapshot variationSnapshot = finder.find(null, 2, "2010-05-18"); verify(finderByDate).findByDate((Snapshot) anyObject(), (Date) anyObject()); assertNull(variationSnapshot); }
@Test public void shouldInitPastSnapshots() throws ParseException { PropertiesConfiguration conf = new PropertiesConfiguration(); PastSnapshotFinder pastSnapshotFinder = mock(PastSnapshotFinder.class); when(pastSnapshotFinder.find(null, conf, 1)) .thenReturn(new PastSnapshot("days", null, newSnapshot("2010-10-15"))); when(pastSnapshotFinder.find(null, conf, 3)) .thenReturn(new PastSnapshot("days", null, newSnapshot("2010-10-13"))); TimeMachineConfiguration timeMachineConfiguration = new TimeMachineConfiguration(conf, pastSnapshotFinder, null); verify(pastSnapshotFinder).find(null, conf, 1); verify(pastSnapshotFinder).find(null, conf, 2); verify(pastSnapshotFinder).find(null, conf, 3); assertThat(timeMachineConfiguration.getProjectPastSnapshots().size(), is(2)); }
@Test public void shouldNotFindPreviousAnalysis() { when(finderByPreviousAnalysis.findByPreviousAnalysis(null)).thenReturn(null); PastSnapshot variationSnapshot = finder.find(null, 2, CoreProperties.TIMEMACHINE_MODE_PREVIOUS_ANALYSIS); verify(finderByPreviousAnalysis).findByPreviousAnalysis(null); assertNull(variationSnapshot); }
@Test public void shouldFindByVersion() { when(finderByVersion.findByVersion(null, "1.2")) .thenReturn(new PastSnapshot("version", new Snapshot())); PastSnapshot variationSnapshot = finder.find(null, 2, "1.2"); verify(finderByVersion).findByVersion(null, "1.2"); assertThat(variationSnapshot.getIndex(), is(2)); assertThat(variationSnapshot.getMode(), is("version")); assertThat(variationSnapshot.getProjectSnapshot(), not(nullValue())); }
@Test public void shouldFindByNumberOfDays() { when(finderByDays.findFromDays(null, 30)) .thenReturn(new PastSnapshot("days", null).setModeParameter("30")); PastSnapshot variationSnapshot = finder.find(null, 1, "30"); verify(finderByDays).findFromDays(null, 30); assertNotNull(variationSnapshot); assertThat(variationSnapshot.getIndex(), is(1)); assertThat(variationSnapshot.getMode(), is("days")); assertThat(variationSnapshot.getModeParameter(), is("30")); }
@Test public void shouldFindByPreviousAnalysis() throws ParseException { final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); final Date date = format.parse("2010-05-18"); Snapshot snapshot = new Snapshot(); snapshot.setCreatedAt(date); when(finderByPreviousAnalysis.findByPreviousAnalysis(null)) .thenReturn(new PastSnapshot(CoreProperties.TIMEMACHINE_MODE_PREVIOUS_ANALYSIS, snapshot)); PastSnapshot variationSnapshot = finder.find(null, 2, CoreProperties.TIMEMACHINE_MODE_PREVIOUS_ANALYSIS); verify(finderByPreviousAnalysis).findByPreviousAnalysis(null); assertThat(variationSnapshot.getIndex(), is(2)); assertThat(variationSnapshot.getMode(), is(CoreProperties.TIMEMACHINE_MODE_PREVIOUS_ANALYSIS)); assertThat(variationSnapshot.getProjectSnapshot(), not(nullValue())); }
@Test public void shouldFindByDate() throws ParseException { final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); final Date date = format.parse("2010-05-18"); when(finderByDate.findByDate(null, date)).thenReturn(new PastSnapshot("date", new Snapshot())); PastSnapshot variationSnapshot = finder.find(null, 2, "2010-05-18"); verify(finderByDate) .findByDate( (Snapshot) anyObject(), argThat( new BaseMatcher<Date>() { public boolean matches(Object o) { return o.equals(date); } public void describeTo(Description description) {} })); assertThat(variationSnapshot.getIndex(), is(2)); assertThat(variationSnapshot.getMode(), is("date")); assertThat(variationSnapshot.getProjectSnapshot(), not(nullValue())); }