@Test public void create_ad_hoc_rule_from_scanner_report() { OrganizationDto organization = db.organizations().insert(); NewAdHocRule addHocRule = new NewAdHocRule(ScannerReport.AdHocRule.newBuilder() .setEngineId("eslint") .setRuleId("no-cond-assign") .setName("No condition assigned") .setDescription("A description") .setSeverity(Constants.Severity.BLOCKER) .setType(ScannerReport.IssueType.BUG) .build()); RuleDto rule = underTest.persistAndIndex(dbSession, addHocRule, organization); assertThat(rule).isNotNull(); assertThat(rule.isExternal()).isTrue(); assertThat(rule.isAdHoc()).isTrue(); assertThat(rule.getId()).isGreaterThan(0); assertThat(rule.getKey()).isEqualTo(RuleKey.of("external_eslint", "no-cond-assign")); assertThat(rule.getName()).isEqualTo("eslint:no-cond-assign"); assertThat(rule.getDescription()).isNull(); assertThat(rule.getSeverity()).isNull(); assertThat(rule.getType()).isEqualTo(0); assertThat(rule.getMetadata().getAdHocName()).isEqualTo("No condition assigned"); assertThat(rule.getMetadata().getAdHocDescription()).isEqualTo("A description"); assertThat(rule.getMetadata().getAdHocSeverity()).isEqualTo(Severity.BLOCKER); assertThat(rule.getMetadata().getAdHocType()).isEqualTo(RuleType.BUG.getDbConstant()); }
.setRuleId(rule.getKey().rule()) .setName(ruleMetadata.getAdHocName()) .setDescription(ruleMetadata.getAdHocDescription()) .setSeverity(Constants.Severity.valueOf(ruleMetadata.getAdHocSeverity())) .setType(ScannerReport.IssueType.forNumber(ruleMetadata.getAdHocType()))
.setRuleId("no-cond-assign") .setName("No condition assigned") .setDescription("A description") .setSeverity(Constants.Severity.BLOCKER) .setType(ScannerReport.IssueType.BUG) .setRuleId("no-cond-assign") .setName("No condition assigned updated") .setDescription("A description updated") .setSeverity(Constants.Severity.CRITICAL) .setType(ScannerReport.IssueType.CODE_SMELL)
@Override public void store(DefaultAdHocRule adHocRule) { ScannerReportWriter writer = reportPublisher.getWriter(); final ScannerReport.AdHocRule.Builder builder = ScannerReport.AdHocRule.newBuilder(); builder.setEngineId(adHocRule.engineId()); builder.setRuleId(adHocRule.ruleId()); builder.setName(adHocRule.name()); String description = adHocRule.description(); if (description != null) { builder.setDescription(description); } builder.setSeverity(Constants.Severity.valueOf(adHocRule.severity().name())); builder.setType(ScannerReport.IssueType.valueOf(adHocRule.type().name())); writer.appendAdHocRule(builder.build()); }
@Test public void write_adhoc_rule() { // write data ScannerReport.AdHocRule rule = ScannerReport.AdHocRule.newBuilder() .setEngineId("eslint") .setRuleId("123") .setName("Foo") .setDescription("Description") .setSeverity(Constants.Severity.BLOCKER) .setType(ScannerReport.IssueType.BUG) .build(); underTest.appendAdHocRule(rule); File file = underTest.getFileStructure().adHocRules(); assertThat(file).exists().isFile(); try (CloseableIterator<ScannerReport.AdHocRule> read = Protobuf.readStream(file, ScannerReport.AdHocRule.parser())) { assertThat(Iterators.size(read)).isEqualTo(1); } }
@Override public void store(DefaultAdHocRule adHocRule) { ScannerReportWriter writer = reportPublisher.getWriter(); final ScannerReport.AdHocRule.Builder builder = ScannerReport.AdHocRule.newBuilder(); builder.setEngineId(adHocRule.engineId()); builder.setRuleId(adHocRule.ruleId()); builder.setName(adHocRule.name()); String description = adHocRule.description(); if (description != null) { builder.setDescription(description); } builder.setSeverity(Constants.Severity.valueOf(adHocRule.severity().name())); builder.setType(ScannerReport.IssueType.valueOf(adHocRule.type().name())); writer.appendAdHocRule(builder.build()); }