@Test public void should_carry_on_after_error() { InputFile first = file("source.java"); InputFile second = file("UNKNOWN.java"); when(conf.getThreadCount()).thenReturn(1); fs.add(first); fs.add(second); when(context.getResource(any(org.sonar.api.resources.File.class))).thenReturn(file); when(blameVersionSelector.detect(file, first, context)).thenThrow(new RuntimeException("BUG")); when(blameVersionSelector.detect(file, second, context)).thenReturn(measureUpdate); scmActivitySensor.analyse(project, context); verify(measureUpdate).execute(timeMachine, context); }
@Test public void should_save_blame_when_file_changed() throws IOException { File file = file("source.java", "foo"); DefaultInputFile inputFile = new DefaultInputFile("source.java").setFile(file); inputFile.setStatus(InputFile.Status.CHANGED); inputFile.setLines(1); when(blameSensor.save(file, resource, 1)).thenReturn(saveBlame); MeasureUpdate update = blameVersionSelector.detect(resource, inputFile, context, true); assertThat(update).isSameAs(saveBlame); }
// SONARPLUGINS-3633 @Test public void should_save_blame_when_file_is_the_same_but_no_previous_measures_present() throws IOException { File file = file("source.java", "foo"); DefaultInputFile inputFile = new DefaultInputFile("source.java").setFile(file); inputFile.setStatus(InputFile.Status.SAME); inputFile.setLines(1); when(blameSensor.save(file, resource, 1)).thenReturn(saveBlame); MeasureUpdate update = blameVersionSelector.detect(resource, inputFile, context, false); assertThat(update).isSameAs(saveBlame); }
@Test public void should_copy_previous_measures_when_file_is_the_same_and_previous_measures_present() throws IOException { File file = file("source.java", "foo"); DefaultInputFile inputFile = new DefaultInputFile("source.java").setFile(file); inputFile.setStatus(InputFile.Status.SAME); inputFile.setLines(2); when(blameSensor.save(file, resource, 1)).thenReturn(saveBlame); MeasureUpdate update = blameVersionSelector.detect(resource, inputFile, context, true); assertThat(update).isInstanceOf(CopyPreviousMeasures.class); }
@Test public void should_execute_measure_update_for_known_files() { InputFile source = file("source.java"); InputFile test = file("UNKNOWN.java"); when(conf.getThreadCount()).thenReturn(1); fs.add(source); fs.add(test); when(blameVersionSelector.detect( any(org.sonar.api.resources.File.class), eq(source), eq(context))) .thenReturn(measureUpdate); when(context.getResource(any(org.sonar.api.resources.File.class))) .thenReturn(file) .thenReturn(null); scmActivitySensor.analyse(project, context); verify(measureUpdate, only()).execute(timeMachine, context); }