aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-03-21 18:30:49 +0100
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-03-23 17:54:56 +0100
commitc6700e387b98581d377fb5c35079ee769dcd67e0 (patch)
treeb1d32dda829768e9e8ad82061890cfc94f9afccc /server/sonar-db-dao
parentb86c846df90ff17e13877e24349a33ba0b756662 (diff)
downloadsonarqube-c6700e387b98581d377fb5c35079ee769dcd67e0.tar.gz
sonarqube-c6700e387b98581d377fb5c35079ee769dcd67e0.zip
SONAR-8867 add and use RuleDao#selectOrFailDefinitionByKey
and add organization uuid parameter to RuleDao#selectOrFailByKey
Diffstat (limited to 'server/sonar-db-dao')
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java10
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java44
2 files changed, 28 insertions, 26 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java
index 10fdbf5592d..c09ebe0687b 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java
@@ -42,7 +42,7 @@ public class RuleDao implements Dao {
return Optional.fromNullable(mapper(session).selectDefinitionByKey(key));
}
- public RuleDto selectOrFailByKey(DbSession session, RuleKey key) {
+ public RuleDto selectOrFailByKey(DbSession session, String organizationUuid, RuleKey key) {
RuleDto rule = mapper(session).selectByKey(key);
if (rule == null) {
throw new RowNotFoundException(String.format("Rule with key '%s' does not exist", key));
@@ -50,6 +50,14 @@ public class RuleDao implements Dao {
return rule;
}
+ public RuleDefinitionDto selectOrFailDefinitionByKey(DbSession session, RuleKey key) {
+ RuleDefinitionDto rule = mapper(session).selectDefinitionByKey(key);
+ if (rule == null) {
+ throw new RowNotFoundException(String.format("Rule with key '%s' does not exist", key));
+ }
+ return rule;
+ }
+
/**
* Retrieves a Rule by its id.
*
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
index 3af4537130e..e30565779a9 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
@@ -105,18 +105,28 @@ public class RuleDaoTest {
public void selectOrFailByKey() {
dbTester.prepareDbUnit(getClass(), "shared.xml");
- RuleDto rule = underTest.selectOrFailByKey(dbTester.getSession(), RuleKey.of("java", "S001"));
+ RuleDefinitionDto rule = underTest.selectOrFailDefinitionByKey(dbTester.getSession(), RuleKey.of("java", "S001"));
assertThat(rule.getId()).isEqualTo(1);
}
@Test
public void selectOrFailByKey_fails_if_rule_not_found() {
+ dbTester.prepareDbUnit(getClass(), "shared.xml");
+
thrown.expect(RowNotFoundException.class);
thrown.expectMessage("Rule with key 'NOT:FOUND' does not exist");
+ underTest.selectOrFailByKey(dbTester.getSession(), "org-1", RuleKey.of("NOT", "FOUND"));
+ }
+
+ @Test
+ public void selectOrFailDefinitionByKey_fails_if_rule_not_found() {
dbTester.prepareDbUnit(getClass(), "shared.xml");
- underTest.selectOrFailByKey(dbTester.getSession(), RuleKey.of("NOT", "FOUND"));
+ thrown.expect(RowNotFoundException.class);
+ thrown.expectMessage("Rule with key 'NOT:FOUND' does not exist");
+
+ underTest.selectOrFailDefinitionByKey(dbTester.getSession(), RuleKey.of("NOT", "FOUND"));
}
@Test
@@ -208,7 +218,7 @@ public class RuleDaoTest {
underTest.insert(dbTester.getSession(), newRule);
dbTester.getSession().commit();
- RuleDto ruleDto = underTest.selectOrFailByKey(dbTester.getSession(), RuleKey.of("plugin", "NewRuleKey"));
+ RuleDefinitionDto ruleDto = underTest.selectOrFailDefinitionByKey(dbTester.getSession(), RuleKey.of("plugin", "NewRuleKey"));
assertThat(ruleDto.getId()).isNotNull();
assertThat(ruleDto.getName()).isEqualTo("new name");
assertThat(ruleDto.getDescription()).isEqualTo("new description");
@@ -221,18 +231,10 @@ public class RuleDaoTest {
assertThat(ruleDto.getLanguage()).isEqualTo("dart");
assertThat(ruleDto.isTemplate()).isTrue();
assertThat(ruleDto.getTemplateId()).isEqualTo(3);
- assertThat(ruleDto.getNoteData()).isNull();
- assertThat(ruleDto.getNoteUserLogin()).isNull();
- assertThat(ruleDto.getNoteCreatedAt()).isNull();
- assertThat(ruleDto.getNoteUpdatedAt()).isNull();
- assertThat(ruleDto.getRemediationFunction()).isNull();
assertThat(ruleDto.getDefaultRemediationFunction()).isEqualTo("LINEAR_OFFSET");
- assertThat(ruleDto.getRemediationGapMultiplier()).isNull();
assertThat(ruleDto.getDefaultRemediationGapMultiplier()).isEqualTo("5d");
- assertThat(ruleDto.getRemediationBaseEffort()).isNull();
assertThat(ruleDto.getDefaultRemediationBaseEffort()).isEqualTo("10h");
assertThat(ruleDto.getGapDescription()).isEqualTo("squid.S115.effortToFix");
- assertThat(ruleDto.getTags()).isEmpty();
assertThat(ruleDto.getSystemTags()).containsOnly("systag1", "systag2");
assertThat(ruleDto.getType()).isEqualTo(RuleType.BUG.getDbConstant());
assertThat(ruleDto.getCreatedAt()).isEqualTo(1500000000000L);
@@ -267,7 +269,7 @@ public class RuleDaoTest {
underTest.update(dbTester.getSession(), ruleToUpdate);
dbTester.getSession().commit();
- RuleDto ruleDto = underTest.selectOrFailByKey(dbTester.getSession(), RuleKey.of("plugin", "NewRuleKey"));
+ RuleDefinitionDto ruleDto = underTest.selectOrFailDefinitionByKey(dbTester.getSession(), RuleKey.of("plugin", "NewRuleKey"));
assertThat(ruleDto.getName()).isEqualTo("new name");
assertThat(ruleDto.getDescription()).isEqualTo("new description");
assertThat(ruleDto.getDescriptionFormat()).isEqualTo(RuleDto.Format.MARKDOWN);
@@ -279,18 +281,10 @@ public class RuleDaoTest {
assertThat(ruleDto.getLanguage()).isEqualTo("dart");
assertThat(ruleDto.isTemplate()).isTrue();
assertThat(ruleDto.getTemplateId()).isEqualTo(3);
- assertThat(ruleDto.getNoteData()).isNull();
- assertThat(ruleDto.getNoteUserLogin()).isNull();
- assertThat(ruleDto.getNoteCreatedAt()).isNull();
- assertThat(ruleDto.getNoteUpdatedAt()).isNull();
- assertThat(ruleDto.getRemediationFunction()).isNull();
assertThat(ruleDto.getDefaultRemediationFunction()).isEqualTo("LINEAR_OFFSET");
- assertThat(ruleDto.getRemediationGapMultiplier()).isNull();
assertThat(ruleDto.getDefaultRemediationGapMultiplier()).isEqualTo("5d");
- assertThat(ruleDto.getRemediationBaseEffort()).isNull();
assertThat(ruleDto.getDefaultRemediationBaseEffort()).isEqualTo("10h");
assertThat(ruleDto.getGapDescription()).isEqualTo("squid.S115.effortToFix");
- assertThat(ruleDto.getTags()).isEmpty();
assertThat(ruleDto.getSystemTags()).containsOnly("systag1", "systag2");
assertThat(ruleDto.getType()).isEqualTo(RuleType.BUG.getDbConstant());
assertThat(ruleDto.getCreatedAt()).isEqualTo(1500000000000L);
@@ -301,8 +295,10 @@ public class RuleDaoTest {
public void update_RuleMetadataDto() {
dbTester.prepareDbUnit(getClass(), "update.xml");
+ String organizationUuid = "org-1";
RuleMetadataDto ruleToUpdate = new RuleMetadataDto()
.setRuleId(1)
+ .setOrganizationUuid(organizationUuid)
.setNoteData("My note")
.setNoteUserLogin("admin")
.setNoteCreatedAt(DateUtils.parseDate("2013-12-19"))
@@ -316,7 +312,7 @@ public class RuleDaoTest {
underTest.update(dbTester.getSession(), ruleToUpdate);
dbTester.getSession().commit();
- RuleDto ruleDto = underTest.selectOrFailByKey(dbTester.getSession(), RuleKey.of("checkstyle", "AvoidNull"));
+ RuleDto ruleDto = underTest.selectOrFailByKey(dbTester.getSession(), organizationUuid, RuleKey.of("checkstyle", "AvoidNull"));
assertThat(ruleDto.getName()).isEqualTo("Avoid Null");
assertThat(ruleDto.getDescription()).isEqualTo("Should avoid NULL");
assertThat(ruleDto.getDescriptionFormat()).isNull();
@@ -374,8 +370,7 @@ public class RuleDaoTest {
@Test
public void insert_parameter() {
dbTester.prepareDbUnit(getClass(), "insert_parameter.xml");
- RuleDefinitionDto rule1 = underTest.selectOrFailByKey(dbTester.getSession(), RuleKey.of("plugin", "NewRuleKey"))
- .getDefinition();
+ RuleDefinitionDto rule1 = underTest.selectOrFailDefinitionByKey(dbTester.getSession(), RuleKey.of("plugin", "NewRuleKey"));
RuleParamDto param = RuleParamDto.createFor(rule1)
.setName("max")
@@ -393,8 +388,7 @@ public class RuleDaoTest {
public void update_parameter() {
dbTester.prepareDbUnit(getClass(), "update_parameter.xml");
- RuleDefinitionDto rule1 = underTest.selectOrFailByKey(dbTester.getSession(), RuleKey.of("checkstyle", "AvoidNull"))
- .getDefinition();
+ RuleDefinitionDto rule1 = underTest.selectOrFailDefinitionByKey(dbTester.getSession(), RuleKey.of("checkstyle", "AvoidNull"));
List<RuleParamDto> params = underTest.selectRuleParamsByRuleKey(dbTester.getSession(), rule1.getKey());
assertThat(params).hasSize(1);