diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-03-18 14:58:27 +0100 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-03-18 14:58:53 +0100 |
commit | d8615a4edd4f958109de1b8dcd3caebb8958a55e (patch) | |
tree | 8e8fcd02fa92cb0b70752b93334c0a5c9277fc3d /sonar-core | |
parent | b447bcd53e30432c43b9808d10e576cc95764182 (diff) | |
download | sonarqube-d8615a4edd4f958109de1b8dcd3caebb8958a55e.tar.gz sonarqube-d8615a4edd4f958109de1b8dcd3caebb8958a55e.zip |
SONAR-5056 Add create profile
Diffstat (limited to 'sonar-core')
6 files changed, 97 insertions, 6 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java index 42ef216b738..0699b48354c 100644 --- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java +++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicDao.java @@ -39,7 +39,6 @@ public class CharacteristicDao implements BatchComponent, ServerComponent { /** * @return enabled root characteristics and characteristics - * */ public List<CharacteristicDto> selectEnabledCharacteristics() { SqlSession session = mybatis.openSession(); @@ -56,7 +55,6 @@ public class CharacteristicDao implements BatchComponent, ServerComponent { /** * @return all characteristics - * */ public List<CharacteristicDto> selectCharacteristics() { SqlSession session = mybatis.openSession(); @@ -76,14 +74,20 @@ public class CharacteristicDao implements BatchComponent, ServerComponent { */ public List<CharacteristicDto> selectEnabledRootCharacteristics() { SqlSession session = mybatis.openSession(); - CharacteristicMapper mapper = session.getMapper(CharacteristicMapper.class); try { - return mapper.selectEnabledRootCharacteristics(); + return selectEnabledRootCharacteristics(session); } finally { MyBatis.closeQuietly(session); } } + /** + * @return only enabled root characteristics, order by order + */ + public List<CharacteristicDto> selectEnabledRootCharacteristics(SqlSession session) { + return session.getMapper(CharacteristicMapper.class).selectEnabledRootCharacteristics(); + } + @CheckForNull public CharacteristicDto selectByKey(String key) { SqlSession session = mybatis.openSession(); @@ -106,6 +110,35 @@ public class CharacteristicDao implements BatchComponent, ServerComponent { } } + @CheckForNull + public CharacteristicDto selectByName(String name) { + SqlSession session = mybatis.openSession(); + try { + return selectByName(name, session); + } finally { + MyBatis.closeQuietly(session); + } + } + + @CheckForNull + public CharacteristicDto selectByName(String name, SqlSession session) { + return session.getMapper(CharacteristicMapper.class).selectByName(name); + } + + public int selectMaxCharacteristicOrder() { + SqlSession session = mybatis.openSession(); + try { + return selectMaxCharacteristicOrder(session); + } finally { + MyBatis.closeQuietly(session); + } + } + + public int selectMaxCharacteristicOrder(SqlSession session) { + Integer result = session.getMapper(CharacteristicMapper.class).selectMaxCharacteristicOrder(); + return result != null ? result : 0; + } + public void insert(CharacteristicDto dto, SqlSession session) { session.getMapper(CharacteristicMapper.class).insert(dto); } diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java index 8557c307c3e..b63e89ad456 100644 --- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java +++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java @@ -34,6 +34,10 @@ public interface CharacteristicMapper { CharacteristicDto selectById(int id); + CharacteristicDto selectByName(String name); + + Integer selectMaxCharacteristicOrder(); + void insert(CharacteristicDto characteristic); int update(CharacteristicDto characteristic); diff --git a/sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml b/sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml index 4cf3ea98e7f..d598985763c 100644 --- a/sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml @@ -56,6 +56,24 @@ </where> </select> + <select id="selectByName" parameterType="String" resultType="Characteristic"> + select <include refid="characteristicColumns"/> + from characteristics c + <where> + and c.name=#{name} + and c.enabled=${_true} + </where> + </select> + + <select id="selectMaxCharacteristicOrder" resultType="Integer"> + select max(c.characteristic_order) + from characteristics c + <where> + and c.parent_id is null + and c.enabled=${_true} + </where> + </select> + <insert id="insert" parameterType="Characteristic" keyColumn="id" useGeneratedKeys="true" keyProperty="id"> INSERT INTO characteristics (kee, name, parent_id, characteristic_order, enabled, created_at, updated_at) VALUES (#{kee}, #{name}, #{parentId}, #{characteristicOrder}, #{enabled}, current_timestamp, current_timestamp) diff --git a/sonar-core/src/test/java/org/sonar/core/technicaldebt/db/CharacteristicDaoTest.java b/sonar-core/src/test/java/org/sonar/core/technicaldebt/db/CharacteristicDaoTest.java index 1a3fa00574a..82f6dba1d01 100644 --- a/sonar-core/src/test/java/org/sonar/core/technicaldebt/db/CharacteristicDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/technicaldebt/db/CharacteristicDaoTest.java @@ -120,6 +120,15 @@ public class CharacteristicDaoTest extends AbstractDaoTestCase { } @Test + public void select_characteristic_by_name() { + setupData("shared"); + + assertThat(dao.selectByName("Portability")).isNotNull(); + assertThat(dao.selectByName("Compiler related portability")).isNotNull(); + assertThat(dao.selectByName("Unknown")).isNull(); + } + + @Test public void select_characteristic_by_id() { setupData("shared"); @@ -130,6 +139,20 @@ public class CharacteristicDaoTest extends AbstractDaoTestCase { } @Test + public void select_max_characteristic_order() { + setupData("shared"); + + assertThat(dao.selectMaxCharacteristicOrder()).isEqualTo(1); + } + + @Test + public void select_max_characteristic_order_when_characteristics_are_all_disabled() { + setupData("select_max_characteristic_order_when_characteristics_are_all_disabled"); + + assertThat(dao.selectMaxCharacteristicOrder()).isEqualTo(0); + } + + @Test public void insert_characteristic() throws Exception { CharacteristicDto dto = new CharacteristicDto() .setKey("COMPILER_RELATED_PORTABILITY") diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/select_max_characteristic_order_when_characteristics_are_all_disabled.xml b/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/select_max_characteristic_order_when_characteristics_are_all_disabled.xml new file mode 100644 index 00000000000..78e951519bd --- /dev/null +++ b/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/select_max_characteristic_order_when_characteristics_are_all_disabled.xml @@ -0,0 +1,13 @@ +<dataset> + + <!-- Disabled root characteristic --> + <characteristics id="1" kee="PORTABILITY" name="Portability" parent_id="[null]" characteristic_order="1" + enabled="[false]" + created_at="2013-11-20" updated_at="2013-11-22"/> + + <!-- Disabled root characteristic --> + <characteristics id="2" kee="DISABLED_ROOT_CHARACTERISTIC" name="Disabled root characteristic" parent_id="[null]" characteristic_order="2" + enabled="[false]" + created_at="2013-11-20" updated_at="2013-11-22"/> + +</dataset> diff --git a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/shared.xml b/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/shared.xml index e8c52c0a142..499959e3c3a 100644 --- a/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/shared.xml +++ b/sonar-core/src/test/resources/org/sonar/core/technicaldebt/db/CharacteristicDaoTest/shared.xml @@ -6,7 +6,7 @@ created_at="2013-11-20" updated_at="2013-11-22"/> <!-- Characteristic --> - <characteristics id="2" kee="COMPILER_RELATED_PORTABILITY" name="Compiler related portability" parent_id="1" root_id="1" characteristic_order="[null]" + <characteristics id="2" kee="COMPILER_RELATED_PORTABILITY" name="Compiler related portability" parent_id="1" rcharacteristic_order="[null]" enabled="[true]" created_at="2013-11-20" updated_at="2013-11-22"/> @@ -16,7 +16,7 @@ created_at="2013-11-20" updated_at="2013-11-22"/> <!-- Disabled characteristic --> - <characteristics id="5" kee="DISABLED_CHARACTERISTIC" name="Disabled characteristic" parent_id="4" root_id="4" characteristic_order="[null]" + <characteristics id="5" kee="DISABLED_CHARACTERISTIC" name="Disabled characteristic" parent_id="4" characteristic_order="[null]" enabled="[false]" created_at="2013-11-20" updated_at="2013-11-22"/> |