]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5007 - Added assertions for QualityProfile Registration
authorStephane Gamard <stephane.gamard@searchbox.com>
Fri, 23 May 2014 09:19:36 +0000 (11:19 +0200)
committerStephane Gamard <stephane.gamard@searchbox.com>
Fri, 23 May 2014 09:25:11 +0000 (11:25 +0200)
sonar-server/src/main/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDao.java
sonar-server/src/test/java/org/sonar/server/qualityprofile/ActiveRuleServiceMediumTest.java

index be56443888ec66cdd067d493a9d49e7b439d1960..1d525c512af51848bc727a8ad4fbad0f8dadc58f 100644 (file)
@@ -166,6 +166,14 @@ public class ActiveRuleDao extends BaseDao<ActiveRuleMapper, ActiveRuleDto, Acti
     this.enqueueDelete(activeRuleParam, activeRule.getKey(), session);
   }
 
+  public void removeParamByKeyAndName(ActiveRuleKey key, String param, DbSession session) {
+    //TODO SQL rewrite to delete by key
+    ActiveRuleDto activeRule = this.getByKey(key, session);
+    ActiveRuleParamDto activeRuleParam = mapper(session).selectParamByActiveRuleAndKey(activeRule.getId(), param);
+    Preconditions.checkArgument(activeRuleParam.getId() != null, "ActiveRuleParam does not exist");
+    mapper(session).deleteParameter(activeRuleParam.getId());
+  }
+
   public void updateParam(ActiveRuleDto activeRule, ActiveRuleParamDto activeRuleParam, DbSession session) {
     Preconditions.checkArgument(activeRule.getId() != null, "ActiveRule is not persisted");
     Preconditions.checkArgument(activeRuleParam.getId() != null, "ActiveRuleParam is not persisted");
@@ -212,6 +220,20 @@ public class ActiveRuleDao extends BaseDao<ActiveRuleMapper, ActiveRuleDto, Acti
    * Finder methods for ActiveRuleParams
    */
 
+  public List<ActiveRuleParamDto> findParamsByKey(ActiveRuleKey key, DbSession session) {
+    Preconditions.checkArgument(key != null, "ActiveRuleKey cannot be null");
+    ActiveRuleDto activeRule = this.getByKey(key,session);
+    return mapper(session).selectParamsByActiveRuleId(activeRule.getId());
+  }
+
+  public ActiveRuleParamDto getParamsByKeyAndName(ActiveRuleKey key, String name,  DbSession session) {
+    Preconditions.checkArgument(key != null, "ActiveRuleKey cannot be null");
+    Preconditions.checkArgument(name != null, "ParameterName cannot be null");
+    ActiveRuleDto activeRule = this.getByKey(key,session);
+    return mapper(session).selectParamByActiveRuleAndKey(activeRule.getId(), name);
+  }
+
+
   public List<ActiveRuleParamDto> findParamsByActiveRule(ActiveRuleDto dto, DbSession session) {
     Preconditions.checkArgument(dto.getId() != null, "ActiveRule is not persisted");
     return mapper(session).selectParamsByActiveRuleId(dto.getId());
index da6e03b5be06b02d41518311274211020e05e5fe..ab1000389115489c7f9c20a1eada640ee53b6e6e 100644 (file)
@@ -162,10 +162,16 @@ public class ActiveRuleServiceMediumTest {
   public void update_activation_but_new_parameter() throws Exception {
     // initial activation
     grantPermission();
-    RuleActivation activation = new RuleActivation(ActiveRuleKey.of(profileKey, RuleKey.of("xoo", "x1")));
+    ActiveRuleKey activeRuleKey = ActiveRuleKey.of(profileKey, RuleKey.of("xoo", "x1"));
+    RuleActivation activation = new RuleActivation(activeRuleKey);
     activation.setSeverity(Severity.BLOCKER);
     service.activate(activation);
-    // TODO delete activeruleparam max
+
+
+    assertThat(dbClient.activeRuleDao().getParamsByKeyAndName(activeRuleKey,"max",dbSession)).isNotNull();
+    dbClient.activeRuleDao().removeParamByKeyAndName(activeRuleKey,"max",dbSession);
+    dbSession.commit();
+    assertThat(dbClient.activeRuleDao().getParamsByKeyAndName(activeRuleKey,"max",dbSession)).isNull();
 
 
     // update