diff options
author | Julien Lancelot <julien.lancelot@gmail.com> | 2013-04-23 13:58:37 +0200 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@gmail.com> | 2013-04-23 13:58:37 +0200 |
commit | 5846e6c2a88a0fa46d999689d9eb51ef0921ab94 (patch) | |
tree | 9bb91a8fabcabf8b547ae26c4ad44ff4a2c3cf2b /sonar-core/src | |
parent | c6f00c7d73b1b2b2c449470a74d0852ce4501244 (diff) | |
download | sonarqube-5846e6c2a88a0fa46d999689d9eb51ef0921ab94.tar.gz sonarqube-5846e6c2a88a0fa46d999689d9eb51ef0921ab94.zip |
SONAR-3755 Add methods in IssueFinder Results to get rule by issue and component by issue and remove title from Issue
Diffstat (limited to 'sonar-core/src')
28 files changed, 185 insertions, 106 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/component/ComponentDto.java b/sonar-core/src/main/java/org/sonar/core/component/ComponentDto.java new file mode 100644 index 00000000000..a886424f247 --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/component/ComponentDto.java @@ -0,0 +1,71 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2013 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.core.component; + +import org.sonar.api.component.Component; + +public class ComponentDto implements Component { + + private String key; + private String name; + private String longName; + private String qualifier; + + @Override + public String key() { + return key; + } + + public ComponentDto setKey(String key) { + this.key = key; + return this; + } + + @Override + public String name() { + return name; + } + + public ComponentDto setName(String name) { + this.name = name; + return this; + } + + @Override + public String longName() { + return longName; + } + + + public ComponentDto setLongName(String longName) { + this.longName = longName; + return this; + } + + @Override + public String qualifier() { + return qualifier; + } + + public ComponentDto setQualifier(String qualifier) { + this.qualifier = qualifier; + return this; + } +} diff --git a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java index 0fe18b0261e..629dd76f5ee 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java @@ -42,13 +42,11 @@ public class DefaultIssue implements Issue, Serializable { private static final Set<String> RESOLUTIONS = ImmutableSet.of(RESOLUTION_OPEN, RESOLUTION_FALSE_POSITIVE, RESOLUTION_FIXED); private static final Set<String> STATUSES = ImmutableSet.of(STATUS_OPEN, STATUS_CLOSED, STATUS_REOPENED, STATUS_RESOLVED); - private String key; private String componentKey; private RuleKey ruleKey; private String severity; private boolean manualSeverity = false; - private String title; private String description; private Integer line; private Double cost; @@ -111,15 +109,6 @@ public class DefaultIssue implements Issue, Serializable { return this; } - public String title() { - return title; - } - - public DefaultIssue setTitle(@Nullable String title) { - this.title = title; - return this; - } - public String description() { return description; } diff --git a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueBuilder.java b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueBuilder.java index b096f52ee82..51170faae43 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueBuilder.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueBuilder.java @@ -92,7 +92,6 @@ public class DefaultIssueBuilder implements Issuable.IssueBuilder { issue.setComponentKey(componentKey); issue.setRuleKey(ruleKey); issue.setDescription(description); - issue.setTitle(title); issue.setSeverity(severity); issue.setCost(cost); diff --git a/sonar-core/src/main/java/org/sonar/core/issue/IssueDto.java b/sonar-core/src/main/java/org/sonar/core/issue/IssueDto.java index 5d9f0a16ece..47554fe215c 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/IssueDto.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/IssueDto.java @@ -42,7 +42,6 @@ public final class IssueDto { private String severity; private boolean manualSeverity; private boolean manualIssue; - private String title; private String description; private Integer line; private Double cost; @@ -125,15 +124,6 @@ public final class IssueDto { return this; } - public String getTitle() { - return title; - } - - public IssueDto setTitle(String title) { - this.title = title; - return this; - } - public String getDescription() { return description; } @@ -310,7 +300,6 @@ public final class IssueDto { return new IssueDto() .setKey(issue.key()) .setLine(issue.line()) - .setTitle(issue.title()) .setDescription(issue.description()) .setCost(issue.cost()) .setResolution(issue.resolution()) @@ -336,7 +325,6 @@ public final class IssueDto { issue.setStatus(status); issue.setResolution(resolution); issue.setDescription(description); - issue.setTitle(title); issue.setCost(cost); issue.setLine(line); issue.setSeverity(severity); diff --git a/sonar-core/src/main/java/org/sonar/core/issue/UpdateIssueFields.java b/sonar-core/src/main/java/org/sonar/core/issue/UpdateIssueFields.java index ba6a26d7d12..b207567906a 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/UpdateIssueFields.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/UpdateIssueFields.java @@ -35,9 +35,6 @@ public class UpdateIssueFields { if (change.severity() != null) { issue.setSeverity(change.severity()); } - if (change.title() != null) { - issue.setTitle(change.title()); - } if (change.isAssigneeChanged()) { issue.setAssignee(change.assignee()); } diff --git a/sonar-core/src/main/java/org/sonar/core/issue/workflow/IssueWorkflow.java b/sonar-core/src/main/java/org/sonar/core/issue/workflow/IssueWorkflow.java index 455fba67ec3..b3444cf73d0 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/workflow/IssueWorkflow.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/workflow/IssueWorkflow.java @@ -101,9 +101,6 @@ public class IssueWorkflow implements BatchComponent, ServerComponent, Startable if (change.severity() != null) { issue.setSeverity(change.severity()); } - if (change.title() != null) { - issue.setTitle(change.title()); - } if (change.isAssigneeChanged()) { issue.setAssignee(change.assignee()); } diff --git a/sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java b/sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java index fbcba218fac..5e5d0f8d435 100644 --- a/sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java +++ b/sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java @@ -19,13 +19,17 @@ */ package org.sonar.core.resource; -import com.google.common.collect.Lists; import org.apache.ibatis.session.SqlSession; +import org.sonar.api.component.Component; +import org.sonar.core.component.ComponentDto; import org.sonar.core.persistence.MyBatis; +import java.util.Collection; import java.util.Date; import java.util.List; +import static com.google.common.collect.Lists.newArrayList; + public class ResourceDao { private MyBatis mybatis; @@ -95,7 +99,7 @@ public class ResourceDao { public List<ResourceDto> getDescendantProjects(long projectId, SqlSession session) { ResourceMapper mapper = session.getMapper(ResourceMapper.class); - List<ResourceDto> resources = Lists.newArrayList(); + List<ResourceDto> resources = newArrayList(); appendChildProjects(projectId, mapper, resources); return resources; } @@ -127,4 +131,26 @@ public class ResourceDao { } return this; } + + public Collection<Component> findByIds(Collection<Integer> ids) { + SqlSession session = mybatis.openSession(); + try { + Collection<ResourceDto> resources = session.getMapper(ResourceMapper.class).selectResourcesById(ids); + Collection<Component> components = newArrayList(); + for (ResourceDto resourceDto : resources) { + components.add(toComponent(resourceDto)); + } + return components; + } finally { + MyBatis.closeQuietly(session); + } + } + + public ComponentDto toComponent(ResourceDto resourceDto){ + return new ComponentDto() + .setKey(resourceDto.getKey()) + .setLongName(resourceDto.getLongName()) + .setName(resourceDto.getName()) + .setQualifier(resourceDto.getQualifier()); + } } diff --git a/sonar-core/src/main/java/org/sonar/core/resource/ResourceMapper.java b/sonar-core/src/main/java/org/sonar/core/resource/ResourceMapper.java index cf4d13374b5..a5a1e603f7b 100644 --- a/sonar-core/src/main/java/org/sonar/core/resource/ResourceMapper.java +++ b/sonar-core/src/main/java/org/sonar/core/resource/ResourceMapper.java @@ -19,8 +19,10 @@ */ package org.sonar.core.resource; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.session.ResultHandler; +import java.util.Collection; import java.util.List; public interface ResourceMapper { @@ -49,6 +51,11 @@ public interface ResourceMapper { */ void selectResources(ResourceQuery query, ResultHandler resultHandler); + /** + * @since3.6 + */ + List<ResourceDto> selectResourcesById(@Param("ids") Collection<Integer> ids); + void insert(ResourceDto resource); void update(ResourceDto resource); diff --git a/sonar-core/src/main/java/org/sonar/core/rule/DefaultRuleFinder.java b/sonar-core/src/main/java/org/sonar/core/rule/DefaultRuleFinder.java index 59cf5b21e11..50996b16219 100644 --- a/sonar-core/src/main/java/org/sonar/core/rule/DefaultRuleFinder.java +++ b/sonar-core/src/main/java/org/sonar/core/rule/DefaultRuleFinder.java @@ -48,7 +48,7 @@ public class DefaultRuleFinder implements RuleFinder { protected final Rule doFindById(int ruleId) { DatabaseSession session = sessionFactory.getSession(); - return (Rule) session.getSingleResult( + return session.getSingleResult( session.createQuery("FROM " + Rule.class.getSimpleName() + " r WHERE r.id=:id and r.status<>:status") .setParameter("id", ruleId) .setParameter("status", Rule.STATUS_REMOVED @@ -56,6 +56,15 @@ public class DefaultRuleFinder implements RuleFinder { null); } + public Collection<Rule> findByIds(Collection<Integer> ruleIds) { + DatabaseSession session = sessionFactory.getSession(); + StringBuilder hql = new StringBuilder().append("from ").append(Rule.class.getSimpleName()).append(" r where r.id in (:ids) and status<>:status "); + Query hqlQuery = session.createQuery(hql.toString()) + .setParameter("status", Rule.STATUS_REMOVED) + .setParameter("ids", ruleIds); + return hqlQuery.getResultList(); + } + public Rule findByKey(RuleKey key) { return findByKey(key.repository(), key.rule()); } @@ -66,7 +75,7 @@ public class DefaultRuleFinder implements RuleFinder { protected final Rule doFindByKey(String repositoryKey, String key) { DatabaseSession session = sessionFactory.getSession(); - return (Rule) session.getSingleResult( + return session.getSingleResult( session.createQuery("FROM " + Rule.class.getSimpleName() + " r WHERE r.key=:key and r.pluginName=:pluginName and r.status<>:status") .setParameter("key", key) .setParameter("pluginName", repositoryKey) @@ -77,8 +86,7 @@ public class DefaultRuleFinder implements RuleFinder { public final Rule find(RuleQuery query) { DatabaseSession session = sessionFactory.getSession(); - return (Rule) session.getSingleResult(createHqlQuery(session, query), null); - + return session.getSingleResult(createHqlQuery(session, query), null); } public final Collection<Rule> findAll(RuleQuery query) { diff --git a/sonar-core/src/main/resources/org/sonar/core/issue/IssueMapper.xml b/sonar-core/src/main/resources/org/sonar/core/issue/IssueMapper.xml index 76bb9d86b42..fe2181c4f6d 100644 --- a/sonar-core/src/main/resources/org/sonar/core/issue/IssueMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/issue/IssueMapper.xml @@ -12,7 +12,6 @@ i.severity as severity, i.manual_severity as manualSeverity, i.manual_issue as manualIssue, - i.title as title, i.description as description, i.line as line, i.cost as cost, @@ -32,9 +31,9 @@ </sql> <insert id="insert" parameterType="Issue" useGeneratedKeys="true" keyProperty="id"> - INSERT INTO issues (kee, resource_id, rule_id, severity, manual_severity, manual_issue, title, description, line, cost, status, + INSERT INTO issues (kee, resource_id, rule_id, severity, manual_severity, manual_issue, description, line, cost, status, resolution, checksum, user_login, assignee_login, author_login, attributes, created_at, updated_at, closed_at) - VALUES (#{kee}, #{resourceId}, #{ruleId}, #{severity}, #{manualSeverity}, #{manualIssue}, #{title}, #{description}, #{line}, #{cost}, #{status}, + VALUES (#{kee}, #{resourceId}, #{ruleId}, #{severity}, #{manualSeverity}, #{manualIssue}, #{description}, #{line}, #{cost}, #{status}, #{resolution}, #{checksum}, #{userLogin}, #{assignee}, #{authorLogin}, #{attributes}, #{createdAt}, #{updatedAt}, #{closedAt}) </insert> @@ -43,9 +42,9 @@ <selectKey order="BEFORE" resultType="Long" keyProperty="id"> select issues_seq.NEXTVAL from DUAL </selectKey> - INSERT INTO issues (id, kee, resource_id, rule_id, severity, manual_severity, manual_issue, title, description, line, cost, status, + INSERT INTO issues (id, kee, resource_id, rule_id, severity, manual_severity, manual_issue, description, line, cost, status, resolution, checksum, user_login, assignee_login, author_login, attributes, created_at, updated_at, closed_at) - VALUES (#{id}, #{kee}, #{resourceId}, #{ruleId}, #{severity}, #{manualSeverity}, #{manualIssue}, #{title}, #{description}, #{line}, #{cost}, #{status}, + VALUES (#{id}, #{kee}, #{resourceId}, #{ruleId}, #{severity}, #{manualSeverity}, #{manualIssue}, #{description}, #{line}, #{cost}, #{status}, #{resolution}, #{checksum}, #{userLogin}, #{assignee}, #{authorLogin}, #{attributes}, #{createdAt}, #{updatedAt}, #{closedAt}) </insert> @@ -56,8 +55,7 @@ severity=#{severity}, manual_severity=#{manualSeverity}, manual_issue=#{manualIssue}, - title=#{title}, - description=#{description}, + description=#{description}, line=#{line}, cost=#{cost}, status=#{status}, diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl index ceeca30bf22..805f80fe806 100644 --- a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl +++ b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl @@ -523,7 +523,6 @@ CREATE TABLE "ISSUES" ( "SEVERITY" VARCHAR(10), "MANUAL_SEVERITY" BOOLEAN NOT NULL, "MANUAL_ISSUE" BOOLEAN NOT NULL, - "TITLE" VARCHAR(500), "DESCRIPTION" VARCHAR(4000), "LINE" INTEGER, "COST" DOUBLE, diff --git a/sonar-core/src/main/resources/org/sonar/core/resource/ResourceMapper.xml b/sonar-core/src/main/resources/org/sonar/core/resource/ResourceMapper.xml index 3d14bcf1d62..24482461298 100644 --- a/sonar-core/src/main/resources/org/sonar/core/resource/ResourceMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/resource/ResourceMapper.xml @@ -75,6 +75,12 @@ select * from projects where id=#{id} </select> + <select id="selectResourcesById" parameterType="map" resultMap="resourceResultMap"> + select * from projects p where p.enabled=${_true} and p.id in + <foreach item="id" index="index" collection="ids" open="(" separator="," close=")">#{id} + </foreach> + </select> + <select id="selectSnapshot" parameterType="long" resultMap="snapshotResultMap"> select * from snapshots where id=#{id} </select> diff --git a/sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java b/sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java index 451998b31b7..ddd4d552e6d 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java @@ -83,7 +83,6 @@ public class IssueDaoTest extends AbstractDaoTestCase { issue.setAssignee("new_user"); issue.setManualSeverity(true); issue.setManualIssue(false); - issue.setTitle("NEW_TITLE"); issue.setCreatedAt(DateUtils.parseDate("2012-05-18")); issue.setUpdatedAt(DateUtils.parseDate("2012-07-01")); issue.setAttributes("big=bang"); @@ -104,7 +103,6 @@ public class IssueDaoTest extends AbstractDaoTestCase { assertThat(issue.getSeverity()).isEqualTo("BLOCKER"); assertThat(issue.isManualSeverity()).isFalse(); assertThat(issue.isManualIssue()).isFalse(); - assertThat(issue.getTitle()).isNull(); assertThat(issue.getDescription()).isNull(); assertThat(issue.getLine()).isEqualTo(200); assertThat(issue.getCost()).isEqualTo(4.2); diff --git a/sonar-core/src/test/java/org/sonar/core/issue/IssueDtoTest.java b/sonar-core/src/test/java/org/sonar/core/issue/IssueDtoTest.java index d7f5fcfce9c..b60d47d223b 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/IssueDtoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/IssueDtoTest.java @@ -63,7 +63,6 @@ public class IssueDtoTest { .setCost(15.0) .setLine(6) .setSeverity("BLOCKER") - .setTitle("title") .setDescription("message") .setManualSeverity(true) .setManualIssue(true) @@ -84,7 +83,6 @@ public class IssueDtoTest { assertThat(issue.cost()).isEqualTo(15.0); assertThat(issue.line()).isEqualTo(6); assertThat(issue.severity()).isEqualTo("BLOCKER"); - assertThat(issue.title()).isEqualTo("title"); assertThat(issue.description()).isEqualTo("message"); assertThat(issue.isManualSeverity()).isTrue(); assertThat(issue.manual()).isTrue(); diff --git a/sonar-core/src/test/java/org/sonar/core/issue/UpdateIssueFieldsTest.java b/sonar-core/src/test/java/org/sonar/core/issue/UpdateIssueFieldsTest.java index 4e17798bdb3..b211019fab3 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/UpdateIssueFieldsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/UpdateIssueFieldsTest.java @@ -20,7 +20,6 @@ package org.sonar.core.issue; import org.junit.Test; -import org.sonar.api.issue.Issue; import org.sonar.api.issue.IssueChange; import org.sonar.api.rule.Severity; @@ -42,7 +41,6 @@ public class UpdateIssueFieldsTest { .setCost(4.2) ); assertThat(issue.line()).isEqualTo(200); - assertThat(issue.title()).isEqualTo("new title"); assertThat(issue.description()).isEqualTo("new desc"); assertThat(issue.attribute("JIRA")).isEqualTo("FOO-123"); assertThat(issue.severity()).isEqualTo(Severity.CRITICAL); @@ -56,7 +54,6 @@ public class UpdateIssueFieldsTest { .setComponentKey("org/struts/Action.java") .setKey("ABCDE") .setLine(123) - .setTitle("the title") .setDescription("the desc") .setAssignee("karadoc") .setCost(4.2) @@ -77,6 +74,5 @@ public class UpdateIssueFieldsTest { assertThat(issue.cost()).isEqualTo(4.2); assertThat(issue.isManualSeverity()).isTrue(); assertThat(issue.description()).isEqualTo("the desc"); - assertThat(issue.title()).isEqualTo("the title"); } } diff --git a/sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java b/sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java index 530fac41c24..961467b4177 100644 --- a/sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java @@ -21,12 +21,15 @@ package org.sonar.core.resource; import org.junit.Before; import org.junit.Test; +import org.sonar.api.component.Component; import org.sonar.api.resources.Qualifiers; import org.sonar.api.resources.Scopes; import org.sonar.core.persistence.AbstractDaoTestCase; +import java.util.Collection; import java.util.List; +import static com.google.common.collect.Lists.newArrayList; import static org.fest.assertions.Assertions.assertThat; public class ResourceDaoTest extends AbstractDaoTestCase { @@ -90,13 +93,13 @@ public class ResourceDaoTest extends AbstractDaoTestCase { public void getResources_filter_by_qualifier() { setupData("fixture"); - List<ResourceDto> resources = dao.getResources(ResourceQuery.create().setQualifiers(new String[] {"TRK", "BRC"})); + List<ResourceDto> resources = dao.getResources(ResourceQuery.create().setQualifiers(new String[]{"TRK", "BRC"})); assertThat(resources).onProperty("qualifier").containsOnly("TRK", "BRC"); - resources = dao.getResources(ResourceQuery.create().setQualifiers(new String[] {"XXX"})); + resources = dao.getResources(ResourceQuery.create().setQualifiers(new String[]{"XXX"})); assertThat(resources).isEmpty(); - resources = dao.getResources(ResourceQuery.create().setQualifiers(new String[] {})); + resources = dao.getResources(ResourceQuery.create().setQualifiers(new String[]{})); assertThat(resources).hasSize(4); } @@ -125,13 +128,13 @@ public class ResourceDaoTest extends AbstractDaoTestCase { public void getResourceIds_filter_by_qualifier() { setupData("fixture"); - List<Long> ids = dao.getResourceIds(ResourceQuery.create().setQualifiers(new String[] {"TRK", "BRC"})); + List<Long> ids = dao.getResourceIds(ResourceQuery.create().setQualifiers(new String[]{"TRK", "BRC"})); assertThat(ids).containsOnly(1L, 2L); - ids = dao.getResourceIds(ResourceQuery.create().setQualifiers(new String[] {"XXX"})); + ids = dao.getResourceIds(ResourceQuery.create().setQualifiers(new String[]{"XXX"})); assertThat(ids).isEmpty(); - ids = dao.getResourceIds(ResourceQuery.create().setQualifiers(new String[] {})); + ids = dao.getResourceIds(ResourceQuery.create().setQualifiers(new String[]{})); assertThat(ids).hasSize(4); } @@ -144,13 +147,26 @@ public class ResourceDaoTest extends AbstractDaoTestCase { } @Test + public void should_find_components_by_resource_ids() { + setupData("fixture"); + + Collection<Component> results = dao.findByIds(newArrayList(1)); + assertThat(results).hasSize(1); + Component component = results.iterator().next(); + assertThat(component.key()).isNotNull(); + assertThat(component.name()).isNotNull(); + assertThat(component.longName()).isNotNull(); + assertThat(component.qualifier()).isNotNull(); + } + + @Test public void should_update() { setupData("update"); ResourceDto project = new ResourceDto() - .setKey("org.struts:struts").setScope(Scopes.PROJECT).setQualifier(Qualifiers.PROJECT) - .setName("Struts").setLongName("Apache Struts").setLanguage("java").setDescription("MVC Framework") - .setId(1L); + .setKey("org.struts:struts").setScope(Scopes.PROJECT).setQualifier(Qualifiers.PROJECT) + .setName("Struts").setLongName("Apache Struts").setLanguage("java").setDescription("MVC Framework") + .setId(1L); dao.insertOrUpdate(project); @@ -163,17 +179,17 @@ public class ResourceDaoTest extends AbstractDaoTestCase { setupData("insert"); ResourceDto file1 = new ResourceDto() - .setKey("org.struts:struts:org.struts.Action").setScope(Scopes.FILE).setQualifier(Qualifiers.FILE) - .setLanguage("java").setName("Action").setLongName("org.struts.Action"); + .setKey("org.struts:struts:org.struts.Action").setScope(Scopes.FILE).setQualifier(Qualifiers.FILE) + .setLanguage("java").setName("Action").setLongName("org.struts.Action"); ResourceDto file2 = new ResourceDto() - .setKey("org.struts:struts:org.struts.Filter").setScope(Scopes.FILE).setQualifier(Qualifiers.FILE) - .setLanguage("java").setName("Filter").setLongName("org.struts.Filter"); + .setKey("org.struts:struts:org.struts.Filter").setScope(Scopes.FILE).setQualifier(Qualifiers.FILE) + .setLanguage("java").setName("Filter").setLongName("org.struts.Filter"); dao.insertOrUpdate(file1, file2); assertThat(file1.getId()).isNotNull(); assertThat(file2.getId()).isNotNull(); - checkTables("insert", new String[] {"created_at"}, "projects"); + checkTables("insert", new String[]{"created_at"}, "projects"); // SONAR-3636 : created_at must be fed when inserting a new entry in the 'projects' table ResourceDto fileLoadedFromDB = dao.getResource(file1.getId()); diff --git a/sonar-core/src/test/java/org/sonar/core/rule/DefaultRuleFinderTest.java b/sonar-core/src/test/java/org/sonar/core/rule/DefaultRuleFinderTest.java index cc2c899007e..f2bdccae419 100644 --- a/sonar-core/src/test/java/org/sonar/core/rule/DefaultRuleFinderTest.java +++ b/sonar-core/src/test/java/org/sonar/core/rule/DefaultRuleFinderTest.java @@ -27,49 +27,53 @@ import org.sonar.jpa.test.AbstractDbUnitTestCase; import java.util.Collection; +import static com.google.common.collect.Lists.newArrayList; import static org.fest.assertions.Assertions.assertThat; -import static org.hamcrest.core.Is.is; -import static org.hamcrest.core.IsNull.nullValue; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThat; public class DefaultRuleFinderTest extends AbstractDbUnitTestCase { @Test - public void shouldFindById() { + public void should_find_by_id() { setupData("shared"); RuleFinder finder = new DefaultRuleFinder(getSessionFactory()); - assertThat(finder.findById(3).getConfigKey(), is("Checker/Treewalker/AnnotationUseStyleCheck")); + assertThat(finder.findById(3).getConfigKey()).isEqualTo("Checker/Treewalker/AnnotationUseStyleCheck"); } @Test - public void shouldNotFindDisabledRuleById() { + public void should_not_find_disabled_rule_by_id() { setupData("shared"); RuleFinder finder = new DefaultRuleFinder(getSessionFactory()); - assertThat(finder.findById(2), nullValue()); + assertThat(finder.findById(2)).isNull(); } @Test - public void shouldFindByKey() { + public void should_find_by_ids() { + setupData("shared"); + DefaultRuleFinder finder = new DefaultRuleFinder(getSessionFactory()); + // 2 is disabled + assertThat(finder.findByIds(newArrayList(2, 3))).hasSize(1); + } + + @Test + public void should_find_by_key() { setupData("shared"); RuleFinder finder = new DefaultRuleFinder(getSessionFactory()); Rule rule = finder.findByKey("checkstyle", "com.puppycrawl.tools.checkstyle.checks.header.HeaderCheck"); - assertNotNull(rule); - assertThat(rule.getKey(), is("com.puppycrawl.tools.checkstyle.checks.header.HeaderCheck")); - assertThat(rule.isEnabled(), is(true)); + assertThat(rule).isNotNull(); + assertThat(rule.getKey()).isEqualTo(("com.puppycrawl.tools.checkstyle.checks.header.HeaderCheck")); + assertThat(rule.isEnabled()).isTrue(); } @Test - public void findShouldReturnNullIfNoResults() { + public void find_should_return_null_if_no_results() { setupData("shared"); RuleFinder finder = new DefaultRuleFinder(getSessionFactory()); - assertNull(finder.findByKey("checkstyle", "unknown")); - assertNull(finder.find(RuleQuery.create().withRepositoryKey("checkstyle").withConfigKey("unknown"))); + assertThat(finder.findByKey("checkstyle", "unknown")).isNull(); + assertThat(finder.find(RuleQuery.create().withRepositoryKey("checkstyle").withConfigKey("unknown"))).isNull(); } @Test - public void findRepositoryRules() { + public void find_repository_rules() { setupData("shared"); RuleFinder finder = new DefaultRuleFinder(getSessionFactory()); Collection<Rule> rules = finder.findAll(RuleQuery.create().withRepositoryKey("checkstyle")); @@ -78,7 +82,7 @@ public class DefaultRuleFinderTest extends AbstractDbUnitTestCase { } @Test - public void findAllEnabled() { + public void find_all_enabled() { setupData("shared"); RuleFinder finder = new DefaultRuleFinder(getSessionFactory()); Collection<Rule> rules = finder.findAll(RuleQuery.create()); @@ -87,18 +91,18 @@ public class DefaultRuleFinderTest extends AbstractDbUnitTestCase { } @Test - public void doNotFindDisabledRules() { + public void do_not_find_disabled_rules() { setupData("shared"); RuleFinder finder = new DefaultRuleFinder(getSessionFactory()); Rule rule = finder.findByKey("checkstyle", "DisabledCheck"); - assertNull(rule); + assertThat(rule).isNull(); } @Test - public void doNotFindUnknownRules() { + public void do_not_find_unknown_rules() { setupData("shared"); RuleFinder finder = new DefaultRuleFinder(getSessionFactory()); Collection<Rule> rules = finder.findAll(RuleQuery.create().withRepositoryKey("unknown_repository")); - assertThat(rules.size(), is(0)); + assertThat(rules).isEmpty(); } } diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/insert-result.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/insert-result.xml index 36b63884e8d..5868688a27b 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/insert-result.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/insert-result.xml @@ -7,7 +7,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="the description" line="200" cost="10.0" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_all.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_all.xml index 31c11303b42..4a27dd7013c 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_all.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_all.xml @@ -9,7 +9,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="4.2" @@ -33,7 +32,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="4.2" @@ -59,7 +57,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="4.2" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_component_root.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_component_root.xml index 0d7e81eaa15..e9308bf33ae 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_component_root.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_component_root.xml @@ -8,7 +8,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="[null]" @@ -32,7 +31,6 @@ severity="MAJOR" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="120" cost="[null]" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_date_creation.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_date_creation.xml index 0be9f22976a..11fe9b857b8 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_date_creation.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_date_creation.xml @@ -8,7 +8,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="4.2" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_id.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_id.xml index ea7465b52c3..8c738fe5fc4 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_id.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_id.xml @@ -8,7 +8,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="4.2" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_key.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_key.xml index 0be9f22976a..11fe9b857b8 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_key.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_key.xml @@ -8,7 +8,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="4.2" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_query.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_query.xml index 0be9f22976a..11fe9b857b8 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_query.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_query.xml @@ -8,7 +8,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="4.2" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_rules.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_rules.xml index b4126a6a8e8..a1223eafc6e 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_rules.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_rules.xml @@ -9,7 +9,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="4.2" @@ -33,7 +32,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="4.2" @@ -59,7 +57,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="4.2" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_open_issues.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_open_issues.xml index 3457c423977..dbf79e29804 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_open_issues.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_open_issues.xml @@ -8,7 +8,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="[null]" @@ -32,7 +31,6 @@ severity="MAJOR" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="120" cost="[null]" @@ -56,7 +54,6 @@ severity="MAJOR" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="120" cost="[null]" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/update-result.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/update-result.xml index 7fa92d380bc..0574a4c9d88 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/update-result.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/update-result.xml @@ -8,7 +8,6 @@ severity="NEW_SEV" manual_severity="[true]" manual_issue="[false]" - title="NEW_TITLE" description="[null]" line="1000" cost="[null]" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/update.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/update.xml index b83b83c4670..d701d8d68c3 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/update.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/update.xml @@ -8,7 +8,6 @@ severity="BLOCKER" manual_severity="[false]" manual_issue="[false]" - title="[null]" description="[null]" line="200" cost="[null]" |