]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5007 add test (to be fixed and enabled soon)
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Fri, 23 May 2014 16:19:26 +0000 (18:19 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Fri, 23 May 2014 16:19:31 +0000 (18:19 +0200)
sonar-core/src/main/java/org/sonar/core/template/LoadedTemplateDao.java
sonar-core/src/main/java/org/sonar/core/template/LoadedTemplateMapper.java
sonar-core/src/main/resources/org/sonar/core/template/LoadedTemplateMapper.xml
sonar-server/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java
sonar-server/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesMediumTest.java

index fc47e1f751795d2d77cfb27b8470cdccc032eb7f..d786ef60b04f72a238ba6838e3588cf46c20a42a 100644 (file)
@@ -23,6 +23,7 @@ import org.apache.ibatis.session.SqlSession;
 import org.sonar.api.BatchComponent;
 import org.sonar.core.persistence.DaoComponent;
 import org.sonar.api.ServerComponent;
+import org.sonar.core.persistence.DbSession;
 import org.sonar.core.persistence.MyBatis;
 
 public class LoadedTemplateDao implements DaoComponent, BatchComponent, ServerComponent {
@@ -61,4 +62,7 @@ public class LoadedTemplateDao implements DaoComponent, BatchComponent, ServerCo
     session.getMapper(LoadedTemplateMapper.class).insert(loadedTemplateDto);
   }
 
+  public void delete(DbSession session, String type, String key) {
+    session.getMapper(LoadedTemplateMapper.class).delete(type, key);
+  }
 }
index 81d29e3fae87d9d96466fb48129d5099d64c7bd1..a2446a2b32e0dcdb00074b85150c2a47e6f0dc40 100644 (file)
@@ -27,4 +27,5 @@ public interface LoadedTemplateMapper {
 
   void insert(LoadedTemplateDto template);
 
+  void delete(@Param("type") String type, @Param("key") String key);
 }
index e946a81ba991a2c2269fda4353c97db3ac8f54b8..5e0f57f200d0170b4971d2ba73f01619fcf76f2c 100644 (file)
@@ -20,4 +20,7 @@
     VALUES (#{key}, #{type})
   </insert>
 
+  <delete id="delete" parameterType="map">
+    delete from loaded_templates where kee = #{key} AND template_type = #{type}
+  </delete>
 </mapper>
index 93ac34b56212f33d708a7257577dbf1d32a3b626..4995e17ec6effab8a34a21600d9ede9f2c2e47c3 100644 (file)
@@ -239,7 +239,7 @@ public class RegisterQualityProfiles implements ServerComponent {
       .countByTypeAndKey(LoadedTemplateDto.QUALITY_PROFILE_TYPE, templateKey(key), session) == 0;
   }
 
-  private static String templateKey(QualityProfileKey key) {
+  static String templateKey(QualityProfileKey key) {
     return StringUtils.lowerCase(key.lang()) + ":" + key.name();
   }
 }
index 6088d8a7dc261f56e694b389923b2e9b656ccebf..f2dc4e8cf2351367e72e3e1fb0621386b1b06a8d 100644 (file)
@@ -21,6 +21,7 @@
 package org.sonar.server.qualityprofile;
 
 import org.junit.After;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.sonar.api.profiles.ProfileDefinition;
 import org.sonar.api.profiles.RulesProfile;
@@ -40,6 +41,7 @@ import org.sonar.core.qualityprofile.db.ActiveRuleKey;
 import org.sonar.core.qualityprofile.db.ActiveRuleParamDto;
 import org.sonar.core.qualityprofile.db.QualityProfileDao;
 import org.sonar.core.qualityprofile.db.QualityProfileKey;
+import org.sonar.core.template.LoadedTemplateDto;
 import org.sonar.server.db.DbClient;
 import org.sonar.server.platform.Platform;
 import org.sonar.server.qualityprofile.persistence.ActiveRuleDao;
@@ -155,6 +157,27 @@ public class RegisterQualityProfilesMediumTest {
     verifyProperty("sonar.profile.xoo", "two");
   }
 
+  /**
+   * Probably for db migration
+   */
+  @Test
+  @Ignore
+  public void clean_up_profiles_if_missing_loaded_template() throws Exception {
+    tester = new ServerTester().addComponents(XooRulesDefinition.class, XooProfileDefinition.class);
+    tester.start();
+
+    dbSession = dbClient().openSession(false);
+    String templateKey = RegisterQualityProfiles.templateKey(QualityProfileKey.of("Basic", "xoo"));
+    dbClient().loadedTemplateDao().delete(dbSession, LoadedTemplateDto.QUALITY_PROFILE_TYPE, templateKey);
+    dbSession.commit();
+    assertThat(dbClient().loadedTemplateDao().countByTypeAndKey(LoadedTemplateDto.QUALITY_PROFILE_TYPE, templateKey, dbSession)).isEqualTo(0);
+    dbSession.close();
+
+    tester.get(Platform.class).restart();
+
+    // do not fail
+  }
+
   private void verifyProperty(String key, String value) {
     PropertyDto prop = dbClient().propertiesDao().selectGlobalProperty(key);
     assertThat(prop).isNotNull();