diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2018-11-13 15:38:22 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2019-01-16 09:42:59 +0100 |
commit | 4a659a05cf4ff177629e9cb78aa6a0721810ff61 (patch) | |
tree | 6f9a066e40db44cff8808f3d58285d2e7600fd8e /sonar-plugin-api/src/test | |
parent | 8bbac3c6e0023978a59814cd1e77fd0efcb6c265 (diff) | |
download | sonarqube-4a659a05cf4ff177629e9cb78aa6a0721810ff61.tar.gz sonarqube-4a659a05cf4ff177629e9cb78aa6a0721810ff61.zip |
SONAR-11465 NoSonarFilter moved to project level
Diffstat (limited to 'sonar-plugin-api/src/test')
-rw-r--r-- | sonar-plugin-api/src/test/java/org/sonar/api/issue/NoSonarFilterTest.java | 69 |
1 files changed, 10 insertions, 59 deletions
diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/issue/NoSonarFilterTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/issue/NoSonarFilterTest.java index 3e4435f489b..0665df11878 100644 --- a/sonar-plugin-api/src/test/java/org/sonar/api/issue/NoSonarFilterTest.java +++ b/sonar-plugin-api/src/test/java/org/sonar/api/issue/NoSonarFilterTest.java @@ -19,72 +19,23 @@ */ package org.sonar.api.issue; -import org.sonar.api.scan.issue.filter.FilterableIssue; - -import com.google.common.collect.ImmutableSet; -import org.junit.Before; +import java.util.Arrays; +import java.util.HashSet; import org.junit.Test; -import org.sonar.api.scan.issue.filter.IssueFilterChain; -import org.sonar.api.rule.RuleKey; - -import java.util.Set; +import org.sonar.api.batch.fs.internal.DefaultInputFile; +import org.sonar.api.batch.fs.internal.TestInputFileBuilder; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.isA; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; public class NoSonarFilterTest { - NoSonarFilter filter = new NoSonarFilter(); - IssueFilterChain chain = mock(IssueFilterChain.class); - - @Before - public void setupChain() { - when(chain.accept(isA(FilterableIssue.class))).thenReturn(true); - } - - @Test - public void should_ignore_lines_commented_with_nosonar() { - FilterableIssue issue = mock(FilterableIssue.class); - when(issue.componentKey()).thenReturn("struts:org.apache.Action"); - when(issue.ruleKey()).thenReturn(RuleKey.of("squid", "AvoidCycles")); - - Set<Integer> noSonarLines = ImmutableSet.of(31, 55); - filter.addComponent("struts:org.apache.Action", noSonarLines); - - // issue on file - when(issue.line()).thenReturn(null); - assertThat(filter.accept(issue, chain)).isTrue(); - - // issue on lines - when(issue.line()).thenReturn(31); - assertThat(filter.accept(issue, chain)).isFalse(); - - when(issue.line()).thenReturn(222); - assertThat(filter.accept(issue, chain)).isTrue(); - - verify(chain, times(2)).accept(issue); - } - @Test - public void should_accept_issues_on_no_sonar_rules() { - // The "No Sonar" rule logs violations on the lines that are flagged with "NOSONAR" !! - FilterableIssue issue = mock(FilterableIssue.class); - when(issue.componentKey()).thenReturn("struts:org.apache.Action"); - when(issue.ruleKey()).thenReturn(RuleKey.of("squid", "NoSonarCheck")); - - Set<Integer> noSonarLines = ImmutableSet.of(31, 55); - filter.addComponent("struts:org.apache.Action", noSonarLines); - - when(issue.line()).thenReturn(31); - assertThat(filter.accept(issue, chain)).isTrue(); - - when(issue.line()).thenReturn(222); - assertThat(filter.accept(issue, chain)).isTrue(); + public void should_store_nosonar_lines_on_inputfile() { + DefaultInputFile f = TestInputFileBuilder.create("module1", "myfile.java").build(); + new NoSonarFilter().noSonarInFile(f, new HashSet<>(Arrays.asList(1,4))); - verify(chain, times(2)).accept(issue); + assertThat(f.hasNoSonarAt(1)).isTrue(); + assertThat(f.hasNoSonarAt(2)).isFalse(); + assertThat(f.hasNoSonarAt(4)).isTrue(); } } |