]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-7676 remove PropertyDao#deleteById and add deleteByQuery
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Fri, 9 Sep 2016 09:43:26 +0000 (11:43 +0200)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Fri, 9 Sep 2016 11:20:02 +0000 (13:20 +0200)
the later is used by Governance

sonar-db/src/main/java/org/sonar/db/property/PropertiesDao.java
sonar-db/src/main/java/org/sonar/db/property/PropertiesMapper.java
sonar-db/src/main/resources/org/sonar/db/property/PropertiesMapper.xml
sonar-db/src/test/java/org/sonar/db/property/PropertiesDaoTest.java

index 7af8439133122cf70cc965d34765a8721fca58fe..fb7718edcda2d0a65da8a70bdf52046d87b1aaae 100644 (file)
@@ -213,12 +213,19 @@ public class PropertiesDao implements Dao {
     }
   }
 
-  public int delete(DbSession dbSession, PropertyDto dto) {
-    return getMapper(dbSession).delete(dto.getKey(), dto.getUserId(), dto.getResourceId());
+  /**
+   * Delete either global, user, component or component per user properties.
+   * <p>Behaves in exactly the same way as {@link #selectByQuery(PropertyQuery, DbSession)} but deletes rather than
+   * selects</p>
+   *
+   * Used by Governance.
+   */
+  public int deleteByQuery(DbSession dbSession, PropertyQuery query) {
+    return getMapper(dbSession).deleteByQuery(query);
   }
 
-  public void deleteById(DbSession dbSession, long id) {
-    getMapper(dbSession).deleteById(id);
+  public int delete(DbSession dbSession, PropertyDto dto) {
+    return getMapper(dbSession).delete(dto.getKey(), dto.getUserId(), dto.getResourceId());
   }
 
   public void deleteProjectProperty(String key, Long projectId) {
index e438c73c8c907268d6949ac6cd0dc23303fd58c2..05ea17e97fc73b40dbe0ef6715fb74c5bba5dd33 100644 (file)
@@ -63,5 +63,7 @@ public interface PropertiesMapper {
 
   int deleteGlobalProperty(@Param("key") String key);
 
+  int deleteByQuery(@Param("query") PropertyQuery query);
+
   int renamePropertyKey(@Param("oldKey") String oldKey, @Param("newKey") String newKey);
 }
index 206195eab86838db65d9076605c6bf2a9f95fc72..d1fbc569e550a205d195730599c510101df4b2d4 100644 (file)
     </choose>
   </delete>
 
-  <delete id="deleteById" parameterType="long">
-    delete from properties
-    where
-      id=#{id}
-  </delete>
-
   <delete id="deleteProjectProperty" parameterType="map">
     delete from properties
     where
       and user_id is null
   </delete>
 
+  <delete id="deleteByQuery">
+    delete from properties
+    <where>
+      <if test="query.key() != null">
+        and prop_key=#{query.key}
+      </if>
+      <if test="query.componentId() != null">
+        and resource_id=#{query.componentId}
+      </if>
+      <if test="query.userId() != null">
+        and user_id=#{query.userId}
+      </if>
+    </where>
+  </delete>
+
   <update id="renamePropertyKey" parameterType="map">
     update properties set
       prop_key=#{newKey}
index e95511e8a3eab446bd00974275f3f6665ceceea7..fa6a9ee3fb9fa458a7aca0ce0149845a684a4d13 100644 (file)
@@ -679,55 +679,6 @@ public class PropertiesDaoTest {
     };
   }
 
-  @Test
-  @UseDataProvider("possibleValuesProvider")
-  public void deleteById(String value) throws SQLException {
-    long id1 = insertProperty("global.key", value, null, null);
-    long id2 = insertProperty("component.key", value, 10L, null);
-    long id3 = insertProperty("user.key", value, null, 100L);
-
-    underTest.deleteById(dbTester.getSession(), id1);
-    dbTester.getSession().commit();
-
-    assertThatPropertiesRow(id1)
-      .doesNotExist();
-    assertThatPropertiesRow(id2)
-      .hasKey("component.key");
-    assertThatPropertiesRow(id3)
-      .hasKey("user.key");
-
-    underTest.deleteById(dbTester.getSession(), id2);
-    dbTester.getSession().commit();
-
-    assertThatPropertiesRow(id2)
-      .doesNotExist();
-    assertThatPropertiesRow(id3)
-      .hasKey("user.key");
-
-    underTest.deleteById(dbTester.getSession(), id3);
-    dbTester.getSession().commit();
-
-    assertThatPropertiesRow(id3)
-      .doesNotExist();
-  }
-
-  @DataProvider
-  public static Object[][] possibleValuesProvider() {
-    return new Object[][] {
-      {null},
-      {""},
-      {"some value"},
-      {VALUE_SIZE_4000},
-      {VALUE_SIZE_4001}
-    };
-  }
-
-  @Test
-  public void deleteById_does_not_fail_if_row_with_specified_id_does_not_exist() {
-    underTest.deleteById(dbTester.getSession(), 12L);
-    dbTester.getSession().commit();
-  }
-
   @Test
   public void delete_project_property() throws SQLException {
     long projectId1 = insertProject("A").getId();