aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-plugin-api
diff options
context:
space:
mode:
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2013-10-07 11:38:14 +0200
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2013-10-08 11:28:14 +0200
commit0172e610d805611319fc0451556b9b77fc29ffe8 (patch)
treeebae971dac959b97ac7774508ca40f43b1509d18 /sonar-plugin-api
parent62ef92603ae2ffc1403d42ddcc0cad7d252daa2c (diff)
downloadsonarqube-0172e610d805611319fc0451556b9b77fc29ffe8.tar.gz
sonarqube-0172e610d805611319fc0451556b9b77fc29ffe8.zip
SONAR-4679 NoSonarFilter uses new IssueFilter API
Diffstat (limited to 'sonar-plugin-api')
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/issue/NoSonarFilter.java9
-rw-r--r--sonar-plugin-api/src/test/java/org/sonar/api/issue/NoSonarFilterTest.java27
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);
}
}