Browse Source

SONAR-1772:

* Don't use existing rules config
* Add more tests
tags/2.6
Godin 13 years ago
parent
commit
2d84946fcb

+ 1
- 1
plugins/sonar-findbugs-plugin/src/main/java/org/sonar/plugins/findbugs/FindbugsNativeSensor.java View File

@@ -33,7 +33,7 @@ public class FindbugsNativeSensor implements Sensor {

public boolean shouldExecuteOnProject(Project project) {
return project.getFileSystem().hasJavaSourceFiles()
&& ( !profile.getActiveRulesByRepository(FindbugsConstants.REPOSITORY_KEY).isEmpty() || project.getReuseExistingRulesConfig())
&& !profile.getActiveRulesByRepository(FindbugsConstants.REPOSITORY_KEY).isEmpty()
&& project.getPom() != null && !StringUtils.equalsIgnoreCase(project.getPom().getPackaging(), "ear");
}


+ 28
- 0
plugins/sonar-findbugs-plugin/src/test/java/org/sonar/plugins/findbugs/FindbugsNativeSensorTest.java View File

@@ -49,6 +49,34 @@ public class FindbugsNativeSensorTest extends FindbugsTests {
assertFalse(analyser.shouldExecuteOnProject(project));
}

@Test
public void shouldExecuteFindbugsWhenNoReportProvided() throws Exception {
Project project = createProject();
FindbugsExecutor executor = mock(FindbugsExecutor.class);
SensorContext context = mock(SensorContext.class);
Configuration conf = mock(Configuration.class);
File xmlFile = new File(getClass().getResource("/org/sonar/plugins/findbugs/findbugsXml.xml").toURI());
when(project.getConfiguration()).thenReturn(conf);
when(executor.execute()).thenReturn(xmlFile);
when(context.getResource(any(Resource.class))).thenReturn(new JavaFile("org.sonar.MyClass"));

FindbugsNativeSensor analyser = new FindbugsNativeSensor(createRulesProfileWithActiveRules(), new FindbugsRuleFinder(), executor);
analyser.analyse(project, context);

verify(executor).execute();
verify(context, times(3)).saveViolation(any(Violation.class));

Violation wanted = new Violation(null, new JavaFile("org.sonar.commons.ZipUtils")).setMessage(
"Empty zip file entry created in org.sonar.commons.ZipUtils._zip(String, File, ZipOutputStream)").setLineId(107);

verify(context).saveViolation(argThat(new IsViolation(wanted)));

wanted = new Violation(null, new JavaFile("org.sonar.commons.resources.MeasuresDao")).setMessage(
"The class org.sonar.commons.resources.MeasuresDao$1 could be refactored into a named _static_ inner class").setLineId(56);

verify(context).saveViolation(argThat(new IsViolation(wanted)));
}

@Test
public void shouldReuseReport() throws Exception {
Project project = createProject();

Loading…
Cancel
Save