use of org.sonar.plugins.java.api.CheckRegistrar in project sonar-java by SonarSource.
the class SonarComponentsTest method add_issue_or_parse_error.
@Test
public void add_issue_or_parse_error() throws Exception {
JavaCheck expectedCheck = new CustomCheck();
CheckRegistrar expectedRegistrar = getRegistrar(expectedCheck);
SensorContextTester context = SensorContextTester.create(new File(""));
DefaultFileSystem fileSystem = context.fileSystem();
File file = new File("file.java");
TestInputFileBuilder inputFile = new TestInputFileBuilder("", "file.java");
inputFile.setLines(45);
int[] linesOffset = new int[45];
linesOffset[35] = 12;
linesOffset[42] = 1;
inputFile.setOriginalLineOffsets(linesOffset);
inputFile.setLastValidOffset(420);
fileSystem.add(inputFile.build());
when(this.checks.ruleKey(any(JavaCheck.class))).thenReturn(mock(RuleKey.class));
SonarComponents sonarComponents = new SonarComponents(fileLinesContextFactory, fileSystem, null, null, checkFactory, new CheckRegistrar[] { expectedRegistrar });
sonarComponents.setSensorContext(context);
sonarComponents.addIssue(file, expectedCheck, -5, "message on wrong line", null);
sonarComponents.addIssue(file, expectedCheck, 42, "message on line", 1);
sonarComponents.addIssue(new File("."), expectedCheck, 42, "message on line", 1);
sonarComponents.addIssue(new File("unknown_file"), expectedCheck, 42, "message on line", 1);
sonarComponents.reportIssue(new AnalyzerMessage(expectedCheck, file, 35, "other message", 0));
assertThat(context.allIssues()).hasSize(3);
RecognitionException parseError = new RecognitionException(new LexerException("parse error"));
context.setRuntime(SonarRuntimeImpl.forSonarLint(V6_7));
assertThat(sonarComponents.reportAnalysisError(parseError, file)).isTrue();
context.setRuntime(SonarRuntimeImpl.forSonarQube(V6_7, SonarQubeSide.SCANNER));
assertThat(sonarComponents.reportAnalysisError(parseError, file)).isFalse();
}
use of org.sonar.plugins.java.api.CheckRegistrar in project sonar-java by SonarSource.
the class SonarComponentsTest method creation_of_custom_checks.
@Test
public void creation_of_custom_checks() {
JavaCheck expectedCheck = new CustomCheck();
CheckRegistrar expectedRegistrar = getRegistrar(expectedCheck);
when(this.checks.all()).thenReturn(Lists.newArrayList(expectedCheck)).thenReturn(new ArrayList<>());
SonarComponents sonarComponents = new SonarComponents(this.fileLinesContextFactory, null, null, null, this.checkFactory, new CheckRegistrar[] { expectedRegistrar });
sonarComponents.setSensorContext(context);
JavaCheck[] visitors = sonarComponents.checkClasses();
assertThat(visitors).hasSize(1);
assertThat(visitors[0]).isEqualTo(expectedCheck);
Collection<JavaCheck> testChecks = sonarComponents.testCheckClasses();
assertThat(testChecks).hasSize(0);
postTestExecutionChecks();
}
use of org.sonar.plugins.java.api.CheckRegistrar in project sonar-java by SonarSource.
the class SonarComponentsTest method no_issue_if_file_not_found.
@Test
public void no_issue_if_file_not_found() throws Exception {
JavaCheck expectedCheck = new CustomCheck();
CheckRegistrar expectedRegistrar = getRegistrar(expectedCheck);
DefaultFileSystem fileSystem = new DefaultFileSystem(new File(""));
File file = new File("file.java");
when(this.checks.ruleKey(any(JavaCheck.class))).thenReturn(mock(RuleKey.class));
SonarComponents sonarComponents = new SonarComponents(fileLinesContextFactory, fileSystem, null, null, checkFactory, new CheckRegistrar[] { expectedRegistrar });
sonarComponents.setSensorContext(context);
sonarComponents.addIssue(file, expectedCheck, 0, "message", null);
}
use of org.sonar.plugins.java.api.CheckRegistrar in project sonar-java by SonarSource.
the class SonarComponentsTest method no_issue_when_check_not_found.
@Test
public void no_issue_when_check_not_found() throws Exception {
JavaCheck expectedCheck = new CustomCheck();
CheckRegistrar expectedRegistrar = getRegistrar(expectedCheck);
Issuable issuable = mock(Issuable.class);
when(this.checks.ruleKey(any(JavaCheck.class))).thenReturn(null);
SonarComponents sonarComponents = new SonarComponents(fileLinesContextFactory, null, null, null, checkFactory, new CheckRegistrar[] { expectedRegistrar });
sonarComponents.setSensorContext(context);
sonarComponents.addIssue(new File(""), expectedCheck, 0, "message", null);
verify(issuable, never()).addIssue(any(Issue.class));
}
use of org.sonar.plugins.java.api.CheckRegistrar in project sonar-java by SonarSource.
the class SonarComponentsTest method creation_of_both_types_test_checks.
@Test
public void creation_of_both_types_test_checks() {
JavaCheck expectedCheck = new CustomCheck();
JavaCheck expectedTestCheck = new CustomTestCheck();
CheckRegistrar expectedRegistrar = registrarContext -> registrarContext.registerClassesForRepository(REPOSITORY_NAME, Lists.<Class<? extends JavaCheck>>newArrayList(CustomCheck.class), Lists.<Class<? extends JavaCheck>>newArrayList(CustomTestCheck.class));
when(this.checks.all()).thenReturn(Lists.newArrayList(expectedCheck)).thenReturn(Lists.newArrayList(expectedTestCheck));
SonarComponents sonarComponents = new SonarComponents(fileLinesContextFactory, null, null, null, checkFactory, new CheckRegistrar[] { expectedRegistrar });
sonarComponents.setSensorContext(context);
JavaCheck[] visitors = sonarComponents.checkClasses();
assertThat(visitors).hasSize(1);
assertThat(visitors[0]).isEqualTo(expectedCheck);
Collection<JavaCheck> testChecks = sonarComponents.testCheckClasses();
assertThat(testChecks).hasSize(1);
assertThat(testChecks.iterator().next()).isEqualTo(expectedTestCheck);
assertThat(sonarComponents.checks()).hasSize(2);
postTestExecutionChecks();
}
Aggregations