"properties",
"qprofile_changes",
"rules",
+ "rules_metadata",
"rules_parameters",
"rules_profiles",
"rule_repositories",
import org.sonar.core.util.Uuids;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.protobuf.DbIssues;
+import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
import static com.google.common.base.Preconditions.checkArgument;
return ruleKey;
}
- public IssueDto setRule(RuleDto rule) {
+ public IssueDto setRule(RuleDefinitionDto rule) {
Preconditions.checkNotNull(rule.getId(), "Rule must be persisted.");
this.ruleId = rule.getId();
this.ruleKey = rule.getRuleKey();
/**
* Should only be used to persist in E/S
* <p/>
- * Please use {@link #setRule(RuleDto)} instead
+ * Please use {@link #setRule(RuleDefinitionDto)} instead
*/
public IssueDto setLanguage(String language) {
this.language = language;
/**
* Should only be used to persist in E/S
* <p/>
- * Please use {@link #setRule(RuleDto)} instead
+ * Please use {@link #setRule(RuleDefinitionDto)} instead
*/
public IssueDto setRuleKey(String repo, String rule) {
this.ruleRepo = repo;
*/
package org.sonar.db.issue;
+import java.util.Date;
+import org.apache.commons.lang.math.RandomUtils;
import org.sonar.api.issue.Issue;
import org.sonar.api.rule.Severity;
import org.sonar.api.rules.RuleType;
import org.sonar.api.utils.DateUtils;
import org.sonar.core.util.Uuids;
import org.sonar.db.component.ComponentDto;
+import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
+import static com.google.common.collect.Sets.newHashSet;
+import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
+import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric;
+import static org.apache.commons.lang.math.RandomUtils.nextInt;
+
public class IssueTesting {
private IssueTesting() {
+ // only statics
+ }
+ public static IssueDto newIssue(RuleDefinitionDto rule, ComponentDto project, ComponentDto file) {
+ return new IssueDto()
+ .setKee("uuid_" + randomAlphabetic(5))
+ .setRule(rule)
+ .setType(RuleType.values()[nextInt(RuleType.values().length)])
+ .setProject(project)
+ .setComponent(file)
+ .setStatus(Issue.STATUS_OPEN)
+ .setResolution(null)
+ .setSeverity(Severity.ALL.get(nextInt(Severity.ALL.size())))
+ .setEffort((long) RandomUtils.nextInt(10))
+ .setAssignee("assignee_" + randomAlphabetic(5))
+ .setAuthorLogin("author_" + randomAlphabetic(5))
+ .setLine(nextInt(1_000))
+ .setMessage("message_" + randomAlphabetic(5))
+ .setChecksum("checksum_" + randomAlphabetic(5))
+ .setTags(newHashSet("tag_" + randomAlphanumeric(5), "tag_" + randomAlphanumeric(5)))
+ .setIssueCreationDate(new Date(System.currentTimeMillis() - 2_000))
+ .setIssueUpdateDate(new Date(System.currentTimeMillis() - 1_500))
+ .setCreatedAt(System.currentTimeMillis() - 1_000)
+ .setUpdatedAt(System.currentTimeMillis() - 500);
}
/**
- * Full IssueDto used to feed database with fake data. Tests must not rely on the
- * field contents declared here. They should override the fields they need to test,
- * for example:
- * <pre>
- * issueDao.insert(dbSession, IssueTesting.newDto(rule, file, project).setStatus(Issue.STATUS_RESOLVED).setResolution(Issue.RESOLUTION_FALSE_POSITIVE));
- * </pre>
+ * @deprecated use newIssue(...)
*/
+ @Deprecated
public static IssueDto newDto(RuleDto rule, ComponentDto file, ComponentDto project) {
return new IssueDto()
.setKee(Uuids.createFast())
- .setRule(rule)
+ .setRule(rule.getDefinition())
.setType(RuleType.CODE_SMELL)
.setComponent(file)
.setProject(project)
mapper(session).updateDefinition(dto);
}
- public void update(DbSession session, RuleMetadataDto dto) {
+ public void insertOrUpdate(DbSession session, RuleMetadataDto dto) {
if (mapper(session).countMetadata(dto) > 0) {
mapper(session).updateMetadata(dto);
} else {
IssueDto dto = new IssueDto();
dto.setComponent(new ComponentDto().setKey("struts:Action").setId(123L).setUuid("component-uuid"));
dto.setProject(new ComponentDto().setKey("struts").setId(100L).setUuid("project-uuid"));
- dto.setRule(RuleTesting.newDto(RuleKey.of("squid", "S001")).setId(200));
+ dto.setRule(RuleTesting.newRule(RuleKey.of("squid", "S001")).setId(200));
dto.setKee(key);
dto.setType(2);
dto.setLine(500);
import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.organization.OrganizationDto;
+import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
import static org.sonar.db.component.ComponentTesting.newFileDto;
import static org.sonar.db.issue.IssueTesting.newDto;
-import static org.sonar.db.rule.RuleTesting.newRuleDto;
public class IssueDbTester {
this.db = db;
}
+ public IssueDto insert(RuleDefinitionDto rule, ComponentDto project, ComponentDto file) {
+ IssueDto issue = IssueTesting.newIssue(rule, project, file);
+ return insertIssue(issue);
+ }
+
+ public IssueDto insert(RuleDefinitionDto rule, ComponentDto project, ComponentDto file, Consumer<IssueDto> populator) {
+ IssueDto issue = IssueTesting.newIssue(rule, project, file);
+ populator.accept(issue);
+ return insertIssue(issue);
+ }
+
public IssueDto insertIssue(IssueDto issueDto) {
db.getDbClient().issueDao().insert(db.getSession(), issueDto);
db.commit();
}
public IssueDto insertIssue(OrganizationDto organizationDto, Consumer<IssueDto> populateIssueDto) {
- RuleDto rule = db.rules().insertRule(newRuleDto());
+ RuleDto rule = db.rules().insertRule(organizationDto);
ComponentDto project = db.components().insertProject(organizationDto);
ComponentDto file = db.components().insertComponent(newFileDto(project));
IssueDto issueDto = newDto(rule, file, project);
import org.sonar.api.rules.RuleType;
import org.sonar.api.utils.Duration;
import org.sonar.core.issue.DefaultIssue;
-import org.sonar.db.rule.RuleDto;
+import org.sonar.db.rule.RuleDefinitionDto;
import static org.assertj.core.api.Assertions.assertThat;
public void set_rule() {
IssueDto dto = new IssueDto()
.setKee("100")
- .setRule(new RuleDto().setId(1).setRuleKey("AvoidCycle").setRepositoryKey("squid"))
+ .setRule(new RuleDefinitionDto().setId(1).setRuleKey("AvoidCycle").setRepositoryKey("squid"))
.setLanguage("xoo");
assertThat(dto.getRuleId()).isEqualTo(1);
dbClient.qualityProfileDao().insert(dbSession, profile1);
dbClient.qualityProfileDao().insert(dbSession, profile2);
- dbTester.rules().insertRule(rule1);
- dbTester.rules().insertRule(rule2);
- dbTester.rules().insertRule(rule3);
+ dbTester.rules().insert(rule1);
+ dbTester.rules().insert(rule2);
+ dbTester.rules().insert(rule3);
rule1Param1 = new RuleParamDto()
.setName("param1")
@Test
public void select_by_profile_ignore_removed_rules() throws Exception {
RuleDefinitionDto removedRule = RuleTesting.newDto(RuleKey.of("removed", "rule")).setStatus(RuleStatus.REMOVED).getDefinition();
- dbTester.rules().insertRule(removedRule);
+ dbTester.rules().insert(removedRule);
ActiveRuleDto activeRule = createFor(profile1, removedRule).setSeverity(BLOCKER);
underTest.insert(dbTester.getSession(), activeRule);
dbSession.commit();
dbTester.prepareDbUnit(getClass(), "update.xml");
String organizationUuid = "org-1";
- RuleMetadataDto ruleToUpdate = new RuleMetadataDto()
+ RuleMetadataDto metadataToUpdate = new RuleMetadataDto()
.setRuleId(1)
.setOrganizationUuid(organizationUuid)
.setNoteData("My note")
.setCreatedAt(3_500_000_000_000L)
.setUpdatedAt(4_000_000_000_000L);
- underTest.update(dbTester.getSession(), ruleToUpdate);
+ underTest.insertOrUpdate(dbTester.getSession(), metadataToUpdate);
dbTester.getSession().commit();
RuleDto ruleDto = underTest.selectOrFailByKey(dbTester.getSession(), organizationUuid, RuleKey.of("checkstyle", "AvoidNull"));
.setCreatedAt(6_500_000_000_000L)
.setUpdatedAt(7_000_000_000_000L);
- underTest.update(dbTester.getSession(), metadataV1);
+ underTest.insertOrUpdate(dbTester.getSession(), metadataV1);
dbTester.commit();
assertThat(dbTester.countRowsOfTable("RULES_METADATA")).isEqualTo(1);
assertThat(ruleDto.getCreatedAt()).isEqualTo(3_500_000_000_000L);
assertThat(ruleDto.getUpdatedAt()).isEqualTo(4_000_000_000_000L);
- underTest.update(dbTester.getSession(), metadataV2);
+ underTest.insertOrUpdate(dbTester.getSession(), metadataV2);
dbTester.commit();
ruleDto = underTest.selectOrFailByKey(dbTester.getSession(), organizationUuid, RuleKey.of("checkstyle", "AvoidNull"));
import java.util.Arrays;
import java.util.function.Consumer;
import org.apache.commons.lang.RandomStringUtils;
+import org.sonar.api.rule.RuleKey;
import org.sonar.api.server.rule.RuleParamType;
import org.sonar.db.DbTester;
import org.sonar.db.organization.OrganizationDto;
this.db = db;
}
- public RuleDefinitionDto insertRule(RuleDefinitionDto ruleDto) {
- RuleDao ruleDao = db.getDbClient().ruleDao();
- ruleDao.insert(db.getSession(), ruleDto);
+ public RuleDefinitionDto insert() {
+ return insert(RuleTesting.newRule());
+ }
+
+ public RuleDefinitionDto insert(RuleKey key) {
+ return insert(RuleTesting.newRule(key));
+ }
+
+ public RuleDefinitionDto insert(Consumer<RuleDefinitionDto> populater) {
+ RuleDefinitionDto rule = RuleTesting.newRule();
+ populater.accept(rule);
+ return insert(rule);
+ }
+
+ public RuleDefinitionDto insert(RuleKey key, Consumer<RuleDefinitionDto> populater) {
+ RuleDefinitionDto rule = RuleTesting.newRule(key);
+ populater.accept(rule);
+ return insert(rule);
+ }
+
+ public RuleDefinitionDto insert(RuleDefinitionDto rule) {
+ db.getDbClient().ruleDao().insert(db.getSession(), rule);
db.commit();
- return ruleDto;
+ return rule;
+ }
+
+ public RuleMetadataDto insertOrUpdateMetadata(RuleDefinitionDto rule, OrganizationDto organization) {
+ return insertOrUpdateMetadata(rule, organization, r -> {});
+ }
+
+ public RuleMetadataDto insertOrUpdateMetadata(RuleDefinitionDto rule, OrganizationDto organization, Consumer<RuleMetadataDto> populater) {
+ RuleMetadataDto dto = RuleTesting.newRuleMetadata(rule, organization);
+ populater.accept(dto);
+ return insertOrUpdateMetadata(dto);
+ }
+
+ public RuleMetadataDto insertOrUpdateMetadata(RuleMetadataDto metadata) {
+ db.getDbClient().ruleDao().insertOrUpdate(db.getSession(), metadata);
+ db.commit();
+ return metadata;
+ }
+
+ public RuleParamDto insertRuleParam(RuleDefinitionDto rule) {
+ return insertRuleParam(rule, p -> {});
+ }
+
+ public RuleParamDto insertRuleParam(RuleDefinitionDto rule, Consumer<RuleParamDto> populater) {
+ RuleParamDto param = RuleTesting.newRuleParam(rule);
+ populater.accept(param);
+ db.getDbClient().ruleDao().insertRuleParam(db.getSession(), rule, param);
+ db.commit();
+ return param;
}
public RuleDto insertRule(RuleDto ruleDto) {
db.commit();
RuleMetadataDto metadata = ruleDto.getMetadata();
if (metadata.getOrganizationUuid() != null) {
- ruleDao.update(db.getSession(), metadata.setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(db.getSession(), metadata.setRuleId(ruleDto.getId()));
db.commit();
}
return ruleDto;
import org.sonar.api.rule.RuleStatus;
import org.sonar.api.rule.Severity;
import org.sonar.api.rules.RuleType;
+import org.sonar.api.server.rule.RuleParamType;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDto.Format;
import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.collect.Sets.newHashSet;
import static java.util.Objects.requireNonNull;
+import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric;
+import static org.apache.commons.lang.math.RandomUtils.nextInt;
/**
* Utility class for tests involving rules
// only static helpers
}
+ public static RuleDefinitionDto newRule() {
+ return newRule(randomRuleKey());
+ }
+
+ public static RuleDefinitionDto newRule(RuleKey key) {
+ return new RuleDefinitionDto()
+ .setRepositoryKey(key.repository())
+ .setRuleKey(key.rule())
+ .setName("name_" + randomAlphanumeric(5))
+ .setDescription("description_" + randomAlphanumeric(5))
+ .setDescriptionFormat(Format.HTML)
+ .setType(RuleType.values()[nextInt(RuleType.values().length)])
+ .setStatus(RuleStatus.READY)
+ .setConfigKey("configKey_" + randomAlphanumeric(5))
+ .setSeverity(Severity.ALL.get(nextInt(Severity.ALL.size())))
+ .setIsTemplate(false)
+ .setSystemTags(newHashSet("tag_" + randomAlphanumeric(5), "tag_" + randomAlphanumeric(5)))
+ .setLanguage("lang_" + randomAlphanumeric(3))
+ .setGapDescription("gapDescription_" + randomAlphanumeric(5))
+ .setDefRemediationBaseEffort(nextInt(10) + "h")
+ .setDefRemediationGapMultiplier(nextInt(10) + "h")
+ .setDefRemediationFunction("LINEAR_OFFSET")
+ .setCreatedAt(System.currentTimeMillis())
+ .setUpdatedAt(System.currentTimeMillis());
+ }
+
+ public static RuleMetadataDto newRuleMetadata() {
+ return new RuleMetadataDto()
+ .setRuleId(nextInt(100_000))
+ .setOrganizationUuid("org_" + randomAlphanumeric(5))
+ .setRemediationBaseEffort(nextInt(10) + "h")
+ .setRemediationGapMultiplier(nextInt(10) + "h")
+ .setRemediationFunction("LINEAR_OFFSET")
+ .setTags(newHashSet("tag_" + randomAlphanumeric(5), "tag_" + randomAlphanumeric(5)))
+ .setNoteData("noteData_" + randomAlphanumeric(5))
+ .setNoteUserLogin("noteLogin_" + randomAlphanumeric(5))
+ .setNoteCreatedAt(System.currentTimeMillis() - 200)
+ .setNoteUpdatedAt(System.currentTimeMillis() - 150)
+ .setCreatedAt(System.currentTimeMillis() - 100)
+ .setUpdatedAt(System.currentTimeMillis() - 50);
+ }
+
+ public static RuleMetadataDto newRuleMetadata(RuleDefinitionDto rule, OrganizationDto organization) {
+ return newRuleMetadata()
+ .setRuleId(rule.getId())
+ .setOrganizationUuid(organization.getUuid());
+ }
+
+ public static RuleParamDto newRuleParam(RuleDefinitionDto rule) {
+ return new RuleParamDto()
+ .setRuleId(rule.getId())
+ .setName("name_" + randomAlphabetic(5))
+ .setDefaultValue("default_" + randomAlphabetic(5))
+ .setDescription("description_" + randomAlphabetic(5))
+ .setType(RuleParamType.STRING.type());
+ }
+
/**
- * Create a RuleDto representing the definition of the rule Xoo1 of language Xoo.
+ * @deprecated use newRule(...)
*/
+ @Deprecated
public static RuleDto newXooX1() {
return newDto(XOO_X1).setLanguage("xoo");
}
/**
- * Create a RuleDto representing the definition of the rule Xoo1 of language Xoo with some user defined fields.
+ * @deprecated use newRule(...)
*/
+ @Deprecated
public static RuleDto newXooX1(OrganizationDto organization) {
return newDto(XOO_X1, requireNonNull(organization, "organization can't be null")).setLanguage("xoo");
}
/**
- * Create a RuleDto representing the definition of the rule Xoo2 of language Xoo.
+ * @deprecated use newRule(...)
*/
+ @Deprecated
public static RuleDto newXooX2() {
return newDto(XOO_X2).setLanguage("xoo");
}
/**
- * Create a RuleDto representing the definition of the rule Xoo2 of language Xoo with some user defined fields.
+ * @deprecated use newRule(...)
*/
+ @Deprecated
public static RuleDto newXooX2(OrganizationDto organization) {
return newDto(XOO_X2, requireNonNull(organization, "organization can't be null")).setLanguage("xoo");
}
/**
- * Create a RuleDto representing the definition of the rule Xoo3 of language Xoo.
+ * @deprecated use newRule(...)
*/
+ @Deprecated
public static RuleDto newXooX3() {
return newDto(XOO_X3).setLanguage("xoo");
}
/**
- * Create a RuleDto representing the definition of the rule Xoo3 of language Xoo with some user defined fields.
+ * @deprecated use newRule(...)
*/
+ @Deprecated
public static RuleDto newXooX3(OrganizationDto organization) {
return newDto(XOO_X3, requireNonNull(organization, "organization can't be null")).setLanguage("xoo");
}
/**
- * Full RuleDto used to feed database with fake data. Tests must not rely on the
- * field contents declared here. They should override the fields they need to test,
- * for example:
- * <pre>
- * ruleDao.insert(dbSession, RuleTesting.newDto(key).setStatus(RuleStatus.BETA));
- * </pre>
+ * @deprecated use newRule(...)
*/
+ @Deprecated
public static RuleDto newDto(RuleKey ruleKey) {
return newDto(ruleKey, null);
}
+ /**
+ * @deprecated use newRule(...)
+ */
+ @Deprecated
public static RuleDto newDto(RuleKey ruleKey, @Nullable OrganizationDto organization) {
RuleDto res = new RuleDto()
.setRuleKey(ruleKey.rule())
return res;
}
+ /**
+ * @deprecated use newRule(...)
+ */
+ @Deprecated
public static RuleDto newRuleDto() {
return newDto(RuleKey.of(randomAlphanumeric(30), randomAlphanumeric(30)));
}
-
+ /**
+ * @deprecated use newRule(...)
+ */
+ @Deprecated
public static RuleDto newRuleDto(OrganizationDto organization) {
return newDto(RuleKey.of(randomAlphanumeric(30), randomAlphanumeric(30)), organization);
}
- /**
- * Creates a new rule to be used as a template for a custom rule.
- */
public static RuleDto newTemplateRule(RuleKey ruleKey) {
return newDto(ruleKey)
.setIsTemplate(true);
}
- /**
- * Creates a new rule to be used as a template for a custom rule with some user defined fields.
- */
public static RuleDto newTemplateRule(RuleKey ruleKey, OrganizationDto organization) {
return newDto(ruleKey, organization)
.setIsTemplate(true);
}
public static RuleKey randomRuleKey() {
- return RuleKey.of(randomAlphanumeric(5), randomAlphanumeric(5));
+ return RuleKey.of("repo_" + randomAlphanumeric(3), "rule_" + randomAlphanumeric(3));
}
}
.setTags(tags)
.setCreatedAt(system2.now())
.setUpdatedAt(system2.now());
- dbClient.ruleDao().update(dbSession, ruleMetadata);
+ dbClient.ruleDao().insertOrUpdate(dbSession, ruleMetadata);
}
for (RuleParamDto templateRuleParamDto : dbClient.ruleDao().selectRuleParamsByRuleKey(dbSession, templateRuleDto.getKey())) {
private void update(DbSession session, RuleDto rule) {
rule.setUpdatedAt(system.now());
dbClient.ruleDao().update(session, rule.getDefinition());
- dbClient.ruleDao().update(session, rule.getMetadata());
+ dbClient.ruleDao().insertOrUpdate(session, rule.getMetadata());
}
}
RuleDao ruleDao = tester.get(RuleDao.class);
ruleDao.insert(session, rule.getDefinition());
if (rule.getOrganizationUuid() != null) {
- ruleDao.update(session, rule.getMetadata().setRuleId(rule.getId()));
+ ruleDao.insertOrUpdate(session, rule.getMetadata().setRuleId(rule.getId()));
}
session.commit();
ruleIndexer.index(organization, rule.getKey());
// Index one active rule
RuleDefinitionDto rule = RuleTesting.newDto(RULE_KEY_1).getDefinition();
- dbTester.rules().insertRule(rule);
+ dbTester.rules().insert(rule);
QualityProfileDto profile = QualityProfileDto.createFor("qp")
.setOrganizationUuid(organization.getUuid())
.setLanguage("xoo")
// Index another active rule
RuleDefinitionDto rule2 = RuleTesting.newDto(RULE_KEY_2).getDefinition();
- dbTester.rules().insertRule(rule2);
+ dbTester.rules().insert(rule2);
ActiveRuleDto activeRule2 = ActiveRuleDto.createFor(profile, rule2).setSeverity(Severity.CRITICAL)
.setCreatedAt(now).setUpdatedAt(now);
dbTester.getDbClient().activeRuleDao().insert(dbTester.getSession(), activeRule2);
rule1.setTags(newHashSet("usertag1", "usertag2"));
rule1.setNoteData("user *note*");
rule1.setNoteUserLogin("marius");
- dbClient.ruleDao().update(dbTester.getSession(), rule1.getMetadata());
+ dbClient.ruleDao().insertOrUpdate(dbTester.getSession(), rule1.getMetadata());
dbTester.getSession().commit();
when(system.now()).thenReturn(DATE2.getTime());
.setCreatedAt(new Date().getTime())
.setUpdatedAt(new Date().getTime());
dao.insert(dbSession, templateRule.getDefinition());
- dao.update(dbSession, templateRule.getMetadata().setRuleId(templateRule.getId()));
+ dao.insertOrUpdate(dbSession, templateRule.getMetadata().setRuleId(templateRule.getId()));
RuleParamDto ruleParamDto = RuleParamDto.createFor(templateRule.getDefinition()).setName("regex").setType("STRING").setDescription("Reg ex").setDefaultValue(".*");
dao.insertRuleParam(dbSession, templateRule.getDefinition(), ruleParamDto);
dbSession.commit();
private void insertRule(RuleKey key, Set<String> tags, Set<String> systemTags) {
RuleDto ruleDto = RuleTesting.newDto(key, defaultOrganization).setTags(tags).setSystemTags(systemTags);
dao.insert(dbSession, ruleDto.getDefinition());
- dao.update(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ dao.insertOrUpdate(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
dbSession.commit();
ruleIndexer.index(defaultOrganization, ruleDto.getKey());
}
.setRemediationGapMultiplier("1d")
.setRemediationBaseEffort("5min");
ruleDao.insert(dbSession, ruleDto.getDefinition());
- ruleDao.update(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
dbSession.commit();
RuleUpdate update = RuleUpdate.createForPluginRule(RULE_KEY);
.setRemediationGapMultiplier("1d")
.setRemediationBaseEffort("5min");
ruleDao.insert(dbSession, ruleDto.getDefinition());
- ruleDao.update(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
dbSession.commit();
RuleUpdate update = RuleUpdate.createForPluginRule(RULE_KEY);
.setNoteData("my *note*")
.setNoteUserLogin("me");
ruleDao.insert(dbSession, ruleDto.getDefinition());
- ruleDao.update(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
dbSession.commit();
RuleUpdate update = RuleUpdate.createForPluginRule(RULE_KEY).setMarkdownNote(null);
.setTags(Sets.newHashSet("security"))
.setSystemTags(Sets.newHashSet("java8", "javadoc"));
ruleDao.insert(dbSession, ruleDto.getDefinition());
- ruleDao.update(dbSession, ruleDto.getMetadata());
+ ruleDao.insertOrUpdate(dbSession, ruleDto.getMetadata());
dbSession.commit();
RuleUpdate update = RuleUpdate.createForPluginRule(RULE_KEY).setTags(null);
.setRemediationGapMultiplier(null)
.setRemediationBaseEffort("1min");
ruleDao.insert(dbSession, ruleDto.getDefinition());
- ruleDao.update(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
dbSession.commit();
RuleUpdate update = RuleUpdate.createForPluginRule(RULE_KEY).setDebtRemediationFunction(null);
// Template rule
RuleDto templateRule = RuleTesting.newTemplateRule(RuleKey.of("java", "S001"), defaultOrganization);
ruleDao.insert(session, templateRule.getDefinition());
- ruleDao.update(session, templateRule.getMetadata().setRuleId(templateRule.getId()));
+ ruleDao.insertOrUpdate(session, templateRule.getMetadata().setRuleId(templateRule.getId()));
RuleParamDto param = RuleParamDto.createFor(templateRule.getDefinition()).setName("regex").setType("STRING").setDescription("Reg ex").setDefaultValue(".*");
ruleDao.insertRuleParam(session, templateRule.getDefinition(), param);
session.commit();
RuleDto rule = RuleTesting.newXooX1(defaultOrganization);
ruleDao.insert(session, rule.getDefinition());
- ruleDao.update(session, rule.getMetadata().setRuleId(rule.getId()));
+ ruleDao.insertOrUpdate(session, rule.getMetadata().setRuleId(rule.getId()));
ActiveRuleDto activeRuleDto = ActiveRuleDto.createFor(profile, rule.getDefinition()).setSeverity("BLOCKER");
tester.get(ActiveRuleDao.class).insert(session, activeRuleDto);
.setTags(ImmutableSet.of("hello", "world"))
.setSystemTags(Collections.<String>emptySet());
ruleDao.insert(session, rule.getDefinition());
- ruleDao.update(session, rule.getMetadata().setRuleId(rule.getId()));
+ ruleDao.insertOrUpdate(session, rule.getMetadata().setRuleId(rule.getId()));
RuleDto rule2 = RuleTesting.newXooX2(defaultOrganization)
.setTags(ImmutableSet.of("hello", "java"))
.setSystemTags(ImmutableSet.of("sys1"));
ruleDao.insert(session, rule2.getDefinition());
- ruleDao.update(session, rule2.getMetadata().setRuleId(rule2.getId()));
+ ruleDao.insertOrUpdate(session, rule2.getMetadata().setRuleId(rule2.getId()));
session.commit();
ruleIndexer.index(defaultOrganization, Stream.of(rule, rule2).map(RuleDto::getKey).collect(Collectors.toList()));
RuleDto rule1 = RuleTesting.newXooX1(defaultOrganizationDto)
.setType(RuleType.BUG);
insertRule(rule1.getDefinition());
- ruleDao.update(dbSession, rule1.getMetadata().setRuleId(rule1.getId()));
+ ruleDao.insertOrUpdate(dbSession, rule1.getMetadata().setRuleId(rule1.getId()));
RuleDto rule2 = RuleTesting.newXooX2(defaultOrganizationDto)
.setType(RuleType.VULNERABILITY);
insertRule(rule2.getDefinition());
- ruleDao.update(dbSession, rule2.getMetadata().setRuleId(rule2.getId()));
+ ruleDao.insertOrUpdate(dbSession, rule2.getMetadata().setRuleId(rule2.getId()));
dbSession.commit();
WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
.setRemediationGapMultiplier("2h")
.setRemediationBaseEffort("25min");
insertRule(ruleDto.getDefinition());
- ruleDao.update(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
dbSession.commit();
WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
.setRemediationGapMultiplier(null)
.setRemediationBaseEffort("5min");
insertRule(ruleDto.getDefinition());
- ruleDao.update(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
dbSession.commit();
WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
.setRemediationGapMultiplier("1h")
.setRemediationBaseEffort(null);
insertRule(ruleDto.getDefinition());
- ruleDao.update(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
dbSession.commit();
WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
tester.get(QualityProfileDao.class).insert(dbSession, profile);
RuleDto rule = RuleTesting.newXooX1(defaultOrganizationDto).setNoteData("this is *bold*");
insertRule(rule.getDefinition());
- ruleDao.update(dbSession, rule.getMetadata().setRuleId(rule.getId()));
+ ruleDao.insertOrUpdate(dbSession, rule.getMetadata().setRuleId(rule.getId()));
dbSession.commit();
.setRemediationGapMultiplier("2h")
.setRemediationBaseEffort("25min");
insertRule(ruleDto.getDefinition());
- ruleDao.update(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(dbSession, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
dbSession.commit();
WsTester.TestRequest request = tester.wsTester()
.setType(RuleType.BUG);
RuleDefinitionDto definition = ruleDto.getDefinition();
ruleDao.insert(session, definition);
- ruleDao.update(session, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(session, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
RuleParamDto param = RuleParamDto.createFor(definition).setName("regex").setType("STRING").setDescription("Reg *exp*").setDefaultValue(".*");
ruleDao.insertRuleParam(session, definition, param);
session.commit();
.setRemediationGapMultiplier(null)
.setRemediationBaseEffort(null);
ruleDao.insert(session, ruleDto.getDefinition());
- ruleDao.update(session, ruleDto.getMetadata());
+ ruleDao.insertOrUpdate(session, ruleDto.getMetadata());
session.commit();
session.clearCache();
.setRemediationGapMultiplier("5d")
.setRemediationBaseEffort("10h");
ruleDao.insert(session, ruleDto.getDefinition());
- ruleDao.update(session, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(session, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
session.commit();
session.clearCache();
.setRemediationGapMultiplier("5d")
.setRemediationBaseEffort("10h");
ruleDao.insert(session, ruleDto.getDefinition());
- ruleDao.update(session, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(session, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
session.commit();
session.clearCache();
.setRemediationGapMultiplier("5d")
.setRemediationBaseEffort("10h");
ruleDao.insert(session, ruleDto.getDefinition());
- ruleDao.update(session, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
+ ruleDao.insertOrUpdate(session, ruleDto.getMetadata().setRuleId(ruleDto.getId()));
session.commit();
WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "show")
.setRemediationGapMultiplier("15min")
.setRemediationBaseEffort("3h");
ruleDao.insert(session, rule.getDefinition());
- ruleDao.update(session, rule.getMetadata().setRuleId(rule.getId()));
+ ruleDao.insertOrUpdate(session, rule.getMetadata().setRuleId(rule.getId()));
session.commit();
WsTester.TestRequest request = wsTester.newPostRequest("api/rules", "update")
RuleDto templateRule = RuleTesting.newTemplateRule(RuleKey.of("java", "S001"), defaultOrganization);
RuleDefinitionDto definition = templateRule.getDefinition();
ruleDao.insert(session, definition);
- ruleDao.update(session, templateRule.getMetadata().setRuleId(templateRule.getId()));
+ ruleDao.insertOrUpdate(session, templateRule.getMetadata().setRuleId(templateRule.getId()));
RuleParamDto param = RuleParamDto.createFor(definition).setName("regex").setType("STRING").setDescription("Reg ex").setDefaultValue(".*");
ruleDao.insertRuleParam(session, definition, param);
session.commit();