.setType(OnePredefinedRuleExternalIssuePerLineSensor.TYPE)
.setScope(RuleScope.ALL)
.setHtmlDescription("Generates one external issue in each line")
- .setName("One external issue per line");
+ .setName("One external issue per line")
+ .setTags("riri", "fifi", "loulou");
repo.done();
}
if (issue.isNew()) {
// analyzer can provide some tags. They must be merged with rule tags
Rule rule = ruleRepository.getByKey(issue.ruleKey());
- if (!rule.isExternal()) {
- issue.setTags(union(issue.tags(), rule.getTags()));
- }
+ issue.setTags(union(issue.tags(), rule.getTags()));
}
}
}
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.sonar.db.rule.RuleTesting.XOO_X1;
+import static org.sonar.db.rule.RuleTesting.XOO_X2;
public class RuleTagsCopierTest {
DumbRule rule = new DumbRule(XOO_X1);
+ DumbRule externalRule = new DumbRule(XOO_X2).setIsExternal(true);
@org.junit.Rule
- public RuleRepositoryRule ruleRepository = new RuleRepositoryRule().add(rule);
+ public RuleRepositoryRule ruleRepository = new RuleRepositoryRule().add(rule).add(externalRule);
DefaultIssue issue = new DefaultIssue().setRuleKey(rule.getKey());
+ DefaultIssue externalIssue = new DefaultIssue().setRuleKey(externalRule.getKey());
RuleTagsCopier underTest = new RuleTagsCopier(ruleRepository);
@Test
assertThat(issue.tags()).containsExactly("bug", "performance");
}
+ @Test
+ public void copy_tags_if_new_external_issue() {
+ externalRule.setTags(Sets.newHashSet("es_lint", "java"));
+ externalIssue.setNew(true);
+
+ underTest.onIssue(mock(Component.class), externalIssue);
+
+ assertThat(externalIssue.tags()).containsExactly("es_lint", "java");
+ }
+
@Test
public void do_not_copy_tags_if_existing_issue() {
rule.setTags(Sets.newHashSet("bug", "performance"));