summaryrefslogtreecommitdiffstats
path: root/sonar-core/src
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@gmail.com>2013-04-23 13:58:37 +0200
committerJulien Lancelot <julien.lancelot@gmail.com>2013-04-23 13:58:37 +0200
commit5846e6c2a88a0fa46d999689d9eb51ef0921ab94 (patch)
tree9bb91a8fabcabf8b547ae26c4ad44ff4a2c3cf2b /sonar-core/src
parentc6f00c7d73b1b2b2c449470a74d0852ce4501244 (diff)
downloadsonarqube-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')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/component/ComponentDto.java71
-rw-r--r--sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java11
-rw-r--r--sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueBuilder.java1
-rw-r--r--sonar-core/src/main/java/org/sonar/core/issue/IssueDto.java12
-rw-r--r--sonar-core/src/main/java/org/sonar/core/issue/UpdateIssueFields.java3
-rw-r--r--sonar-core/src/main/java/org/sonar/core/issue/workflow/IssueWorkflow.java3
-rw-r--r--sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java30
-rw-r--r--sonar-core/src/main/java/org/sonar/core/resource/ResourceMapper.java7
-rw-r--r--sonar-core/src/main/java/org/sonar/core/rule/DefaultRuleFinder.java16
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/issue/IssueMapper.xml12
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl1
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/resource/ResourceMapper.xml6
-rw-r--r--sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java2
-rw-r--r--sonar-core/src/test/java/org/sonar/core/issue/IssueDtoTest.java2
-rw-r--r--sonar-core/src/test/java/org/sonar/core/issue/UpdateIssueFieldsTest.java4
-rw-r--r--sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java44
-rw-r--r--sonar-core/src/test/java/org/sonar/core/rule/DefaultRuleFinderTest.java48
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/insert-result.xml1
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_all.xml3
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_component_root.xml2
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_date_creation.xml1
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_id.xml1
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_key.xml1
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_query.xml1
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_rules.xml3
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_open_issues.xml3
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/update-result.xml1
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/update.xml1
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]"