diff options
author | Jean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com> | 2013-10-07 11:38:14 +0200 |
---|---|---|
committer | Jean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com> | 2013-10-08 11:28:14 +0200 |
commit | 0172e610d805611319fc0451556b9b77fc29ffe8 (patch) | |
tree | ebae971dac959b97ac7774508ca40f43b1509d18 | |
parent | 62ef92603ae2ffc1403d42ddcc0cad7d252daa2c (diff) | |
download | sonarqube-0172e610d805611319fc0451556b9b77fc29ffe8.tar.gz sonarqube-0172e610d805611319fc0451556b9b77fc29ffe8.zip |
SONAR-4679 NoSonarFilter uses new IssueFilter API
-rw-r--r-- | sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java | 9 | ||||
-rw-r--r-- | sonar-plugin-api/src/test/java/org/sonar/api/issue/NoSonarFilterTest.java | 27 |
2 files changed, 29 insertions, 7 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java index 88c6724b720..388c63093d3 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java @@ -19,6 +19,8 @@ */ package org.sonar.api.issue; +import org.sonar.api.issue.batch.IssueFilterChain; + import com.google.common.collect.Maps; import org.apache.commons.lang.StringUtils; @@ -34,7 +36,7 @@ import java.util.Set; * * @since 3.6 */ -public class NoSonarFilter implements IssueFilter { +public class NoSonarFilter implements org.sonar.api.issue.batch.IssueFilter { private final Map<String, Set<Integer>> noSonarLinesByResource = Maps.newHashMap(); @@ -44,7 +46,7 @@ public class NoSonarFilter implements IssueFilter { } @Override - public boolean accept(Issue issue) { + public boolean accept(Issue issue, IssueFilterChain chain) { boolean accepted = true; if (issue.line() != null) { Set<Integer> noSonarLines = noSonarLinesByResource.get(issue.componentKey()); @@ -53,6 +55,9 @@ public class NoSonarFilter implements IssueFilter { accepted = true; } } + if (accepted) { + accepted = chain.accept(issue); + } return accepted; } } 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 63c506fb83e..ce44cb0f010 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 @@ -20,18 +20,30 @@ package org.sonar.api.issue; import com.google.common.collect.ImmutableSet; +import org.junit.Before; import org.junit.Test; +import org.sonar.api.issue.batch.IssueFilterChain; import org.sonar.api.rule.RuleKey; import java.util.Set; +import static org.mockito.Mockito.times; + +import static org.mockito.Mockito.verify; import static org.fest.assertions.Assertions.assertThat; +import static org.mockito.Matchers.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(Issue.class))).thenReturn(true); + } @Test public void should_ignore_lines_commented_with_nosonar() { @@ -43,14 +55,17 @@ public class NoSonarFilterTest { filter.addComponent("struts:org.apache.Action", noSonarLines); // issue on file - assertThat(filter.accept(issue)).isTrue(); + when(issue.line()).thenReturn(null); + assertThat(filter.accept(issue, chain)).isTrue(); // issue on lines when(issue.line()).thenReturn(31); - assertThat(filter.accept(issue)).isFalse(); + assertThat(filter.accept(issue, chain)).isFalse(); when(issue.line()).thenReturn(222); - assertThat(filter.accept(issue)).isTrue(); + assertThat(filter.accept(issue, chain)).isTrue(); + + verify(chain, times(2)).accept(issue); } @Test @@ -64,9 +79,11 @@ public class NoSonarFilterTest { filter.addComponent("struts:org.apache.Action", noSonarLines); when(issue.line()).thenReturn(31); - assertThat(filter.accept(issue)).isTrue(); + assertThat(filter.accept(issue, chain)).isTrue(); when(issue.line()).thenReturn(222); - assertThat(filter.accept(issue)).isTrue(); + assertThat(filter.accept(issue, chain)).isTrue(); + + verify(chain, times(2)).accept(issue); } } |