private static boolean mergeSecurityStandards(RulesDefinition.Rule ruleDef, RuleDefinitionDto dto) { boolean changed = false; if (RuleStatus.REMOVED == ruleDef.status()) { dto.setSecurityStandards(emptySet()); changed = true; } else if (dto.getSecurityStandards().size() != ruleDef.securityStandards().size() || !dto.getSecurityStandards().containsAll(ruleDef.securityStandards())) { dto.setSecurityStandards(ruleDef.securityStandards()); changed = true; } return changed; }
@Test public void define_xoo_hotspot_rule() { RulesDefinition.Repository repo = context.repository("xoo"); assertThat(repo).isNotNull(); assertThat(repo.name()).isEqualTo("Xoo"); assertThat(repo.language()).isEqualTo("xoo"); assertThat(repo.rules()).hasSize(19); RulesDefinition.Rule rule = repo.rule(HotspotSensor.RULE_KEY); assertThat(rule.name()).isNotEmpty(); assertThat(rule.securityStandards()) .isNotEmpty() .containsExactlyInAnyOrder("cwe:1", "cwe:123", "cwe:863", "owaspTop10:a1", "owaspTop10:a3"); }
@Test public void define_rule_with_default_fields() { RulesDefinition.NewRepository newFindbugs = context.createRepository("findbugs", "java"); newFindbugs.createRule("NPE").setName("NPE").setHtmlDescription("NPE"); newFindbugs.done(); RulesDefinition.Rule rule = context.repository("findbugs").rule("NPE"); assertThat(rule.key()).isEqualTo("NPE"); assertThat(rule.severity()).isEqualTo(Severity.MAJOR); assertThat(rule.params()).isEmpty(); assertThat(rule.internalKey()).isNull(); assertThat(rule.status()).isEqualTo(RuleStatus.defaultStatus()); assertThat(rule.tags()).isEmpty(); assertThat(rule.securityStandards()).isEmpty(); assertThat(rule.debtRemediationFunction()).isNull(); }
assertThat(rule.markdownDescription()).isNull(); assertThat(rule.tags()).containsOnly("one", "two", "three", "four"); assertThat(rule.securityStandards()).containsOnly("cwe:1", "cwe:123", "cwe:2", "owaspTop10:a1", "owaspTop10:a3"); assertThat(rule.params()).isEmpty(); assertThat(rule.internalKey()).isEqualTo("/something");
assertThat(rule.markdownDescription()).isNull(); assertThat(rule.tags()).containsOnly("one", "two", "three", "four"); assertThat(rule.securityStandards()).containsOnly("cwe:1", "cwe:123", "cwe:2", "owaspTop10:a1", "owaspTop10:a3"); assertThat(rule.params()).isEmpty(); assertThat(rule.internalKey()).isEqualTo("/something");
.setGapDescription(ruleDef.gapDescription()) .setSystemTags(ruleDef.tags()) .setSecurityStandards(ruleDef.securityStandards()) .setType(RuleType.valueOf(ruleDef.type().name())) .setScope(toDtoScope(ruleDef.scope()))