aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core/src/test
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2013-04-19 10:22:37 +0200
committerSimon Brandhof <simon.brandhof@gmail.com>2013-04-19 13:39:38 +0200
commitcf15961943c5ba81132e6f3cb45c96ed2dbb3bb4 (patch)
treee148ed8d8feb7db5dd6c0d60bc3a8c96bbb86e62 /sonar-core/src/test
parent3efb07528d4eb835a61faf35f3f02f2e3edc974d (diff)
downloadsonarqube-cf15961943c5ba81132e6f3cb45c96ed2dbb3bb4.tar.gz
sonarqube-cf15961943c5ba81132e6f3cb45c96ed2dbb3bb4.zip
SONAR-3755 improve support of issue attributes + SQL loading of RULES/PROJECTS through joins
Diffstat (limited to 'sonar-core/src/test')
-rw-r--r--sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueFinderTest.java45
-rw-r--r--sonar-core/src/test/java/org/sonar/core/issue/IssueDaoTest.java123
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/select.xml167
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/shared.xml244
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_all.xml77
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_component_root.xml (renamed from sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/select-with-component-children.xml)39
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_date_creation.xml27
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_id.xml47
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_key.xml27
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_query.xml27
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_rules.xml77
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_open_issues.xml (renamed from sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/select-open-issues.xml)28
12 files changed, 488 insertions, 440 deletions
diff --git a/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueFinderTest.java b/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueFinderTest.java
index 92ab7e30021..54b52850807 100644
--- a/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueFinderTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueFinderTest.java
@@ -27,22 +27,14 @@ import org.mockito.stubbing.Answer;
import org.sonar.api.issue.Issue;
import org.sonar.api.issue.IssueFinder;
import org.sonar.api.issue.IssueQuery;
-import org.sonar.api.rules.Rule;
-import org.sonar.api.rules.RuleFinder;
import org.sonar.core.persistence.MyBatis;
-import org.sonar.core.resource.ResourceDao;
-import org.sonar.core.resource.ResourceDto;
import org.sonar.core.user.AuthorizationDao;
import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
import static org.fest.assertions.Assertions.assertThat;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anySet;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -51,18 +43,14 @@ public class DefaultIssueFinderTest {
MyBatis mybatis;
DefaultIssueFinder finder;
IssueDao issueDao;
- ResourceDao resourceDao;
- RuleFinder ruleFinder;
AuthorizationDao authorizationDao;
@Before
public void before() {
mybatis = mock(MyBatis.class);
issueDao = mock(IssueDao.class);
- resourceDao = mock(ResourceDao.class);
- ruleFinder = mock(RuleFinder.class);
authorizationDao = mock(AuthorizationDao.class);
- finder = new DefaultIssueFinder(mybatis, issueDao, resourceDao, authorizationDao, ruleFinder);
+ finder = new DefaultIssueFinder(mybatis, issueDao, authorizationDao);
}
@Test
@@ -70,33 +58,36 @@ public class DefaultIssueFinderTest {
grantAccessRights();
IssueQuery issueQuery = mock(IssueQuery.class);
- IssueDto issue1 = new IssueDto().setId(1L).setRuleId(50).setResourceId(123);
- IssueDto issue2 = new IssueDto().setId(2L).setRuleId(50).setResourceId(123);
+ IssueDto issue1 = new IssueDto().setId(1L).setRuleId(50).setResourceId(123)
+ .setComponentKey_unit_test_only("Action.java")
+ .setRuleRepo_unit_test_only("squid")
+ .setRule_unit_test_only("AvoidCycle");
+ IssueDto issue2 = new IssueDto().setId(2L).setRuleId(50).setResourceId(123)
+ .setComponentKey_unit_test_only("Action.java")
+ .setRuleRepo_unit_test_only("squid")
+ .setRule_unit_test_only("AvoidCycle");
List<IssueDto> dtoList = newArrayList(issue1, issue2);
when(issueDao.select(eq(issueQuery), any(SqlSession.class))).thenReturn(dtoList);
- Rule rule = Rule.create("repo", "key");
- rule.setId(50);
- when(ruleFinder.findById(anyInt())).thenReturn(rule);
- when(resourceDao.getResource(anyInt())).thenReturn(new ResourceDto().setKey("componentKey").setId(123L));
IssueFinder.Results results = finder.find(issueQuery, null);
assertThat(results.issues()).hasSize(2);
Issue issue = results.issues().iterator().next();
- assertThat(issue.componentKey()).isEqualTo("componentKey");
- assertThat(issue.ruleKey().toString()).isEqualTo("repo:key");
+ assertThat(issue.componentKey()).isEqualTo("Action.java");
+ assertThat(issue.ruleKey().toString()).isEqualTo("squid:AvoidCycle");
}
@Test
public void should_find_by_key() {
- IssueDto issueDto = new IssueDto().setId(1L).setRuleId(1).setResourceId(1);
+ IssueDto issueDto = new IssueDto().setId(1L).setRuleId(1).setResourceId(1)
+ .setComponentKey_unit_test_only("Action.java")
+ .setRuleRepo_unit_test_only("squid")
+ .setRule_unit_test_only("AvoidCycle");
when(issueDao.selectByKey("ABCDE")).thenReturn(issueDto);
- when(ruleFinder.findById(anyInt())).thenReturn(Rule.create("squid", "NullDeref"));
- when(resourceDao.getResource(anyInt())).thenReturn(new ResourceDto().setKey("org/struts/Action.java"));
Issue issue = finder.findByKey("ABCDE");
assertThat(issue).isNotNull();
- assertThat(issue.componentKey()).isEqualTo("org/struts/Action.java");
- assertThat(issue.ruleKey().toString()).isEqualTo("squid:NullDeref");
+ assertThat(issue.componentKey()).isEqualTo("Action.java");
+ assertThat(issue.ruleKey().toString()).isEqualTo("squid:AvoidCycle");
}
private void grantAccessRights() {
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 03b296ac13e..59f909a68d9 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
@@ -73,7 +73,7 @@ public class IssueDaoTest extends AbstractDaoTestCase {
@Test
public void update() {
- setupData("update");
+ setupData("shared", "update");
Collection<IssueDto> issues = newArrayList(dao.selectById(100L));
IssueDto issue = issues.iterator().next();
issue.setLine(1000);
@@ -94,12 +94,11 @@ public class IssueDaoTest extends AbstractDaoTestCase {
}
@Test
- public void should_find_issue_by_id() {
- setupData("shared");
-
+ public void should_select_by_id() {
+ setupData("shared", "should_select_by_id");
IssueDto issue = dao.selectById(100L);
assertThat(issue.getId()).isEqualTo(100L);
- assertThat(issue.getUuid()).isEqualTo("100");
+ assertThat(issue.getUuid()).isEqualTo("ABCDE");
assertThat(issue.getResourceId()).isEqualTo(400);
assertThat(issue.getRuleId()).isEqualTo(500);
assertThat(issue.getSeverity()).isEqualTo("BLOCKER");
@@ -108,102 +107,94 @@ public class IssueDaoTest extends AbstractDaoTestCase {
assertThat(issue.getTitle()).isNull();
assertThat(issue.getMessage()).isNull();
assertThat(issue.getLine()).isEqualTo(200);
- assertThat(issue.getCost()).isNull();
+ assertThat(issue.getCost()).isEqualTo(4.2);
assertThat(issue.getStatus()).isEqualTo("OPEN");
- assertThat(issue.getResolution()).isNull();
- assertThat(issue.getChecksum()).isNull();
- assertThat(issue.getAssigneeLogin()).isEqualTo("user");
+ assertThat(issue.getResolution()).isEqualTo("FIXED");
+ assertThat(issue.getChecksum()).isEqualTo("XXX");
assertThat(issue.getPersonId()).isNull();
- assertThat(issue.getUserLogin()).isNull();
- assertThat(issue.getData()).isNull();
- assertThat(issue.getCreatedAt()).isNull();
- assertThat(issue.getUpdatedAt()).isNull();
- assertThat(issue.getClosedAt()).isNull();
+ assertThat(issue.getUserLogin()).isEqualTo("arthur");
+ assertThat(issue.getAssigneeLogin()).isEqualTo("perceval");
+ assertThat(issue.getData()).isEqualTo("JIRA=FOO-1234");
+ assertThat(issue.getCreatedAt()).isNotNull();
+ assertThat(issue.getUpdatedAt()).isNotNull();
+ assertThat(issue.getClosedAt()).isNotNull();
}
@Test
- public void should_find_issue_by_key() {
- setupData("shared");
+ public void should_select_by_key() {
+ setupData("shared", "should_select_by_key");
- IssueDto issue = dao.selectByKey("100");
- assertThat(issue).isNotNull();
+ IssueDto issue = dao.selectByKey("ABCDE");
+ assertThat(issue.getUuid()).isEqualTo("ABCDE");
+ assertThat(issue.getId()).isEqualTo(100);
}
@Test
- public void should_select_by_parameter() {
- setupData("select");
-
- IssueQuery issueQuery = IssueQuery.builder().keys(newArrayList("100")).build();
- assertThat(dao.select(issueQuery)).hasSize(1);
-
- issueQuery = IssueQuery.builder().components(newArrayList("key")).build();
- assertThat(dao.select(issueQuery)).hasSize(2);
-
- issueQuery = IssueQuery.builder().resolutions(newArrayList("FALSE-POSITIVE")).build();
- assertThat(dao.select(issueQuery)).hasSize(1);
-
- issueQuery = IssueQuery.builder().statuses(newArrayList("OPEN")).build();
- assertThat(dao.select(issueQuery)).hasSize(2);
-
- issueQuery = IssueQuery.builder().severities(newArrayList("BLOCKER")).build();
- assertThat(dao.select(issueQuery)).hasSize(4);
-
- issueQuery = IssueQuery.builder().userLogins(newArrayList("user")).build();
- assertThat(dao.select(issueQuery)).hasSize(1);
-
- issueQuery = IssueQuery.builder().assigneeLogins(newArrayList("user")).build();
- assertThat(dao.select(issueQuery)).hasSize(5);
-
- issueQuery = IssueQuery.builder().userLogins(newArrayList("user")).statuses(newArrayList("OPEN")).build();
- assertThat(dao.select(issueQuery)).hasSize(1);
+ public void should_select_by_query() {
+ setupData("shared", "should_select_by_query");
+
+ IssueQuery query = IssueQuery.builder()
+ .keys(newArrayList("ABCDE"))
+ .userLogins(newArrayList("arthur", "otherguy"))
+ .assigneeLogins(newArrayList("perceval", "otherguy"))
+ .components(newArrayList("Action.java"))
+ .resolutions(newArrayList("FIXED"))
+ .severities(newArrayList("BLOCKER"))
+ .rules(newArrayList(RuleKey.of("squid", "AvoidCycle")))
+ .build();
+ assertThat(dao.select(query)).hasSize(1);
+ assertThat(dao.select(query).get(0).getId()).isEqualTo(100);
}
@Test
- public void should_find_issue_by_rules() {
- setupData("select");
+ public void should_select_by_rules() {
+ setupData("shared", "should_select_by_rules");
+
+ IssueQuery query = IssueQuery.builder().rules(newArrayList(RuleKey.of("squid", "AvoidCycle"))).build();
+ assertThat(dao.select(query)).hasSize(2);
- IssueQuery issueQuery = IssueQuery.builder().rules(newArrayList(RuleKey.of("squid", "AvoidCycle"))).build();
- assertThat(dao.select(issueQuery)).hasSize(4);
+ query = IssueQuery.builder().rules(newArrayList(RuleKey.of("squid", "AvoidCycle"), RuleKey.of("squid", "NullRef"))).build();
+ assertThat(dao.select(query)).hasSize(3);
- issueQuery = IssueQuery.builder().rules(newArrayList(RuleKey.of("squid", "Other"))).build();
- assertThat(dao.select(issueQuery)).isEmpty();
+ query = IssueQuery.builder().rules(newArrayList(RuleKey.of("squid", "Other"))).build();
+ assertThat(dao.select(query)).isEmpty();
}
@Test
- public void should_find_issue_by_date_creation() {
- setupData("select");
+ public void should_select_by_date_creation() {
+ setupData("shared", "should_select_by_date_creation");
- IssueQuery issueQuery = IssueQuery.builder().createdAfter(DateUtils.parseDate("2013-04-15")).build();
- assertThat(dao.select(issueQuery)).hasSize(1);
+ IssueQuery query = IssueQuery.builder().createdAfter(DateUtils.parseDate("2013-04-15")).build();
+ assertThat(dao.select(query)).hasSize(1);
- issueQuery = IssueQuery.builder().createdBefore(DateUtils.parseDate("2013-04-17")).build();
- assertThat(dao.select(issueQuery)).hasSize(2);
+ query = IssueQuery.builder().createdBefore(DateUtils.parseDate("2013-04-17")).build();
+ assertThat(dao.select(query)).hasSize(1);
}
@Test
- public void should_return_issues_from_component_root() {
- setupData("select-with-component-children");
+ public void should_select_by_component_root() {
+ setupData("shared", "should_select_by_component_root");
- IssueQuery issueQuery = IssueQuery.builder().componentRoots(newArrayList("key")).build();
- List<IssueDto> issues = newArrayList(dao.select(issueQuery));
+ IssueQuery query = IssueQuery.builder().componentRoots(newArrayList("struts")).build();
+ List<IssueDto> issues = newArrayList(dao.select(query));
assertThat(issues).hasSize(2);
assertThat(issues.get(0).getId()).isEqualTo(100);
assertThat(issues.get(1).getId()).isEqualTo(101);
}
@Test
- public void should_select_without_parameter_return_all_issues() {
- setupData("select");
+ public void should_select_all() {
+ setupData("shared", "should_select_all");
- IssueQuery issueQuery = IssueQuery.builder().build();
- assertThat(dao.select(issueQuery)).hasSize(5);
+ IssueQuery query = IssueQuery.builder().build();
+ assertThat(dao.select(query)).hasSize(3);
}
@Test
public void should_select_open_issues() {
- setupData("select-open-issues");
+ setupData("shared", "should_select_open_issues");
- assertThat(dao.selectOpenIssues(400)).hasSize(2);
+ assertThat(dao.selectOpenIssues(399)).hasSize(2);
}
}
diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/select.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/select.xml
deleted file mode 100644
index 31fb7d91297..00000000000
--- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/select.xml
+++ /dev/null
@@ -1,167 +0,0 @@
-<!--
- ~ Sonar, open source software quality management tool.
- ~ Copyright (C) 2008-2012 SonarSource
- ~ mailto:contact AT sonarsource DOT com
- ~
- ~ Sonar 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.
- ~
- ~ Sonar 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 Sonar; if not, write to the Free Software
- ~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
- -->
-
-<dataset>
-
- <!-- First resource -->
- <issues
- id="100"
- uuid="100"
- resource_id="400"
- rule_id="500"
- severity="BLOCKER"
- manual_severity="[false]"
- manual_issue="[false]"
- title="[null]"
- message="[null]"
- line="200"
- cost="[null]"
- status="OPEN"
- resolution="[null]"
- checksum="[null]"
- user_login="user"
- assignee_login="user"
- person_id="[null]"
- data="[null]"
- created_at="2013-04-16"
- updated_at="[null]"
- closed_at="[null]"
- />
-
- <issues
- id="101"
- uuid="101"
- resource_id="400"
- rule_id="505"
- severity="MAJOR"
- manual_severity="[false]"
- manual_issue="[false]"
- title="[null]"
- message="[null]"
- line="120"
- cost="[null]"
- status="CLOSED"
- resolution="FIXED"
- checksum="[null]"
- user_login="[null]"
- assignee_login="user"
- person_id="[null]"
- data="[null]"
- created_at="2013-04-10"
- updated_at="[null]"
- closed_at="[null]"
- />
-
-
- <!-- Second resource -->
- <issues
- id="102"
- uuid="102"
- resource_id="500"
- rule_id="500"
- severity="BLOCKER"
- manual_severity="[false]"
- manual_issue="[false]"
- title="[null]"
- message="[null]"
- line="200"
- cost="[null]"
- status="OPEN"
- resolution="FIXED"
- checksum="[null]"
- user_login="[null]"
- assignee_login="user"
- person_id="[null]"
- data="[null]"
- created_at="[null]"
- updated_at="[null]"
- closed_at="[null]"
- />
-
- <issues
- id="103"
- uuid="103"
- resource_id="500"
- rule_id="500"
- severity="BLOCKER"
- manual_severity="[false]"
- manual_issue="[false]"
- title="[null]"
- message="[null]"
- line="200"
- cost="[null]"
- status="REOPENED"
- resolution="FIXED"
- checksum="[null]"
- user_login="[null]"
- assignee_login="user"
- person_id="[null]"
- data="[null]"
- created_at="[null]"
- updated_at="[null]"
- closed_at="[null]"
- />
-
- <issues
- id="104"
- uuid="104"
- resource_id="500"
- rule_id="500"
- severity="BLOCKER"
- manual_severity="[false]"
- manual_issue="[false]"
- title="[null]"
- message="[null]"
- line="200"
- cost="[null]"
- status="[null]"
- resolution="FALSE-POSITIVE"
- checksum="[null]"
- user_login="[null]"
- assignee_login="user"
- person_id="[null]"
- data="[null]"
- created_at="[null]"
- updated_at="[null]"
- closed_at="[null]"
- />
-
- <projects
- id="400"
- kee="key"
- enabled="[true]"
- />
-
- <snapshots
- id="100"
- project_id="400"
- root_snapshot_id="[null]"
- path=""
- islast="[true]"
- />
-
-
- <rules
- id="500"
- plugin_name="squid"
- plugin_rule_key="AvoidCycle"
- />
-
-</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/shared.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/shared.xml
index 5b0a7f24ea0..7112b2b4980 100644
--- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/shared.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/shared.xml
@@ -20,127 +20,137 @@
<dataset>
- <!-- First resource -->
- <issues
- id="100"
- uuid="100"
- resource_id="400"
- rule_id="500"
- severity="BLOCKER"
- manual_severity="[false]"
- manual_issue="[false]"
- title="[null]"
- message="[null]"
- line="200"
- cost="[null]"
- status="OPEN"
- resolution="[null]"
- checksum="[null]"
- user_login="[null]"
- assignee_login="user"
- person_id="[null]"
- data="[null]"
- created_at="[null]"
- updated_at="[null]"
- closed_at="[null]"
- />
+ <projects id="399" kee="struts" root_id="[null]" />
+ <projects id="400" kee="Action.java" root_id="399" />
+ <projects id="401" kee="Filter.java" root_id="399"/>
+ <snapshots id="100" project_id="399" root_snapshot_id="[null]" path="" islast="[true]" />
+ <snapshots id="101" project_id="400" root_snapshot_id="100" path="100." islast="[true]" />
+ <snapshots id="102" project_id="401" root_snapshot_id="100" path="100." islast="[true]" />
- <issues
- id="101"
- uuid="101"
- resource_id="400"
- rule_id="505"
- severity="MAJOR"
- manual_severity="[false]"
- manual_issue="[false]"
- title="[null]"
- message="[null]"
- line="120"
- cost="[null]"
- status="CLOSED"
- resolution="FIXED"
- checksum="[null]"
- user_login="[null]"
- assignee_login="user"
- person_id="[null]"
- data="[null]"
- created_at="[null]"
- updated_at="[null]"
- closed_at="[null]"
- />
+ <rules id="500" plugin_rule_key="AvoidCycle" plugin_name="squid" />
+ <rules id="501" plugin_rule_key="NullRef" plugin_name="squid" />
+ <!--&lt;!&ndash; First resource &ndash;&gt;-->
+ <!--<issues-->
+ <!--id="100"-->
+ <!--uuid="100"-->
+ <!--resource_id="400"-->
+ <!--rule_id="500"-->
+ <!--severity="BLOCKER"-->
+ <!--manual_severity="[false]"-->
+ <!--manual_issue="[false]"-->
+ <!--title="[null]"-->
+ <!--message="[null]"-->
+ <!--line="200"-->
+ <!--cost="[null]"-->
+ <!--status="OPEN"-->
+ <!--resolution="[null]"-->
+ <!--checksum="[null]"-->
+ <!--user_login="[null]"-->
+ <!--assignee_login="user"-->
+ <!--person_id="[null]"-->
+ <!--data="[null]"-->
+ <!--created_at="[null]"-->
+ <!--updated_at="[null]"-->
+ <!--closed_at="[null]"-->
+ <!--/>-->
- <!-- Second resource -->
- <issues
- id="102"
- uuid="102"
- resource_id="401"
- rule_id="500"
- severity="BLOCKER"
- manual_severity="[false]"
- manual_issue="[false]"
- title="[null]"
- message="[null]"
- line="200"
- cost="[null]"
- status="OPEN"
- resolution="FIXED"
- checksum="[null]"
- user_login="[null]"
- assignee_login="user"
- person_id="[null]"
- data="[null]"
- created_at="[null]"
- updated_at="[null]"
- closed_at="[null]"
- />
+ <!--<issues-->
+ <!--id="101"-->
+ <!--uuid="101"-->
+ <!--resource_id="400"-->
+ <!--rule_id="501"-->
+ <!--severity="MAJOR"-->
+ <!--manual_severity="[false]"-->
+ <!--manual_issue="[false]"-->
+ <!--title="[null]"-->
+ <!--message="[null]"-->
+ <!--line="120"-->
+ <!--cost="[null]"-->
+ <!--status="CLOSED"-->
+ <!--resolution="FIXED"-->
+ <!--checksum="[null]"-->
+ <!--user_login="[null]"-->
+ <!--assignee_login="user"-->
+ <!--person_id="[null]"-->
+ <!--data="[null]"-->
+ <!--created_at="[null]"-->
+ <!--updated_at="[null]"-->
+ <!--closed_at="[null]"-->
+ <!--/>-->
- <issues
- id="103"
- uuid="103"
- resource_id="401"
- rule_id="500"
- severity="BLOCKER"
- manual_severity="[false]"
- manual_issue="[false]"
- title="[null]"
- message="[null]"
- line="200"
- cost="[null]"
- status="REOPENED"
- resolution="FIXED"
- checksum="[null]"
- user_login="[null]"
- assignee_login="user"
- person_id="[null]"
- data="[null]"
- created_at="[null]"
- updated_at="[null]"
- closed_at="[null]"
- />
- <issues
- id="104"
- uuid="104"
- resource_id="401"
- rule_id="500"
- severity="BLOCKER"
- manual_severity="[false]"
- manual_issue="[false]"
- title="[null]"
- message="[null]"
- line="200"
- cost="[null]"
- status="[null]"
- resolution="FALSE-POSITIVE"
- checksum="[null]"
- user_login="[null]"
- assignee_login="user"
- person_id="[null]"
- data="[null]"
- created_at="[null]"
- updated_at="[null]"
- closed_at="[null]"
- />
+ <!--&lt;!&ndash; Second resource &ndash;&gt;-->
+ <!--<issues-->
+ <!--id="102"-->
+ <!--uuid="102"-->
+ <!--resource_id="401"-->
+ <!--rule_id="500"-->
+ <!--severity="BLOCKER"-->
+ <!--manual_severity="[false]"-->
+ <!--manual_issue="[false]"-->
+ <!--title="[null]"-->
+ <!--message="[null]"-->
+ <!--line="200"-->
+ <!--cost="[null]"-->
+ <!--status="OPEN"-->
+ <!--resolution="FIXED"-->
+ <!--checksum="[null]"-->
+ <!--user_login="[null]"-->
+ <!--assignee_login="user"-->
+ <!--person_id="[null]"-->
+ <!--data="[null]"-->
+ <!--created_at="[null]"-->
+ <!--updated_at="[null]"-->
+ <!--closed_at="[null]"-->
+ <!--/>-->
+
+ <!--<issues-->
+ <!--id="103"-->
+ <!--uuid="103"-->
+ <!--resource_id="401"-->
+ <!--rule_id="500"-->
+ <!--severity="BLOCKER"-->
+ <!--manual_severity="[false]"-->
+ <!--manual_issue="[false]"-->
+ <!--title="[null]"-->
+ <!--message="[null]"-->
+ <!--line="200"-->
+ <!--cost="[null]"-->
+ <!--status="REOPENED"-->
+ <!--resolution="FIXED"-->
+ <!--checksum="[null]"-->
+ <!--user_login="[null]"-->
+ <!--assignee_login="user"-->
+ <!--person_id="[null]"-->
+ <!--data="[null]"-->
+ <!--created_at="[null]"-->
+ <!--updated_at="[null]"-->
+ <!--closed_at="[null]"-->
+ <!--/>-->
+
+ <!--<issues-->
+ <!--id="104"-->
+ <!--uuid="104"-->
+ <!--resource_id="401"-->
+ <!--rule_id="500"-->
+ <!--severity="BLOCKER"-->
+ <!--manual_severity="[false]"-->
+ <!--manual_issue="[false]"-->
+ <!--title="[null]"-->
+ <!--message="[null]"-->
+ <!--line="200"-->
+ <!--cost="[null]"-->
+ <!--status="[null]"-->
+ <!--resolution="FALSE-POSITIVE"-->
+ <!--checksum="[null]"-->
+ <!--user_login="[null]"-->
+ <!--assignee_login="user"-->
+ <!--person_id="[null]"-->
+ <!--data="[null]"-->
+ <!--created_at="[null]"-->
+ <!--updated_at="[null]"-->
+ <!--closed_at="[null]"-->
+ <!--/>-->
</dataset>
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
new file mode 100644
index 00000000000..39b6ef6681d
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_all.xml
@@ -0,0 +1,77 @@
+<dataset>
+
+ <!-- rule 500 -->
+ <issues
+ id="100"
+ uuid="ABCDE"
+ resource_id="400"
+ rule_id="500"
+ severity="BLOCKER"
+ manual_severity="[false]"
+ manual_issue="[false]"
+ title="[null]"
+ message="[null]"
+ line="200"
+ cost="4.2"
+ status="OPEN"
+ resolution="FIXED"
+ checksum="XXX"
+ user_login="arthur"
+ assignee_login="perceval"
+ person_id="[null]"
+ data="JIRA=FOO-1234"
+ created_at="2013-04-16"
+ updated_at="2013-04-16"
+ closed_at="2013-04-16"
+ />
+
+ <issues
+ id="101"
+ uuid="ABCDE"
+ resource_id="400"
+ rule_id="500"
+ severity="BLOCKER"
+ manual_severity="[false]"
+ manual_issue="[false]"
+ title="[null]"
+ message="[null]"
+ line="200"
+ cost="4.2"
+ status="OPEN"
+ resolution="FIXED"
+ checksum="XXX"
+ user_login="arthur"
+ assignee_login="perceval"
+ person_id="[null]"
+ data="JIRA=FOO-1234"
+ created_at="2013-04-16"
+ updated_at="2013-04-16"
+ closed_at="2013-04-16"
+ />
+
+
+ <!-- rule 501 -->
+ <issues
+ id="102"
+ uuid="ABCDE"
+ resource_id="400"
+ rule_id="501"
+ severity="BLOCKER"
+ manual_severity="[false]"
+ manual_issue="[false]"
+ title="[null]"
+ message="[null]"
+ line="200"
+ cost="4.2"
+ status="OPEN"
+ resolution="FIXED"
+ checksum="XXX"
+ user_login="arthur"
+ assignee_login="perceval"
+ person_id="[null]"
+ data="JIRA=FOO-1234"
+ created_at="2013-04-16"
+ updated_at="2013-04-16"
+ closed_at="2013-04-16"
+ />
+</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/select-with-component-children.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_component_root.xml
index 8a10dc8568e..a0d42686118 100644
--- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/select-with-component-children.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_component_root.xml
@@ -48,7 +48,7 @@
id="101"
uuid="101"
resource_id="401"
- rule_id="505"
+ rule_id="501"
severity="MAJOR"
manual_severity="[false]"
manual_issue="[false]"
@@ -69,42 +69,5 @@
/>
- <projects
- id="400"
- kee="key"
- enabled="[true]"
- />
-
- <snapshots
- id="100"
- project_id="400"
- root_snapshot_id="[null]"
- path=""
- islast="[false]"
- />
-
- <snapshots
- id="101"
- project_id="400"
- root_snapshot_id="[null]"
- path=""
- islast="[true]"
- />
-
-
- <projects
- id="401"
- kee="child"
- enabled="[true]"
- />
-
- <snapshots
- id="102"
- project_id="401"
- root_snapshot_id="101"
- path="101."
- islast="[true]"
- />
-
</dataset>
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
new file mode 100644
index 00000000000..4e3977640cf
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_date_creation.xml
@@ -0,0 +1,27 @@
+<dataset>
+
+ <issues
+ id="100"
+ uuid="ABCDE"
+ resource_id="400"
+ rule_id="500"
+ severity="BLOCKER"
+ manual_severity="[false]"
+ manual_issue="[false]"
+ title="[null]"
+ message="[null]"
+ line="200"
+ cost="4.2"
+ status="OPEN"
+ resolution="FIXED"
+ checksum="XXX"
+ user_login="arthur"
+ assignee_login="perceval"
+ person_id="[null]"
+ data="JIRA=FOO-1234"
+ created_at="2013-04-16"
+ updated_at="2013-04-16"
+ closed_at="2013-04-16"
+ />
+
+</dataset>
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
new file mode 100644
index 00000000000..2bd2c2ab619
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_id.xml
@@ -0,0 +1,47 @@
+<!--
+ ~ Sonar, open source software quality management tool.
+ ~ Copyright (C) 2008-2012 SonarSource
+ ~ mailto:contact AT sonarsource DOT com
+ ~
+ ~ Sonar 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.
+ ~
+ ~ Sonar 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 Sonar; if not, write to the Free Software
+ ~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
+ -->
+
+<dataset>
+
+ <issues
+ id="100"
+ uuid="ABCDE"
+ resource_id="400"
+ rule_id="500"
+ severity="BLOCKER"
+ manual_severity="[false]"
+ manual_issue="[false]"
+ title="[null]"
+ message="[null]"
+ line="200"
+ cost="4.2"
+ status="OPEN"
+ resolution="FIXED"
+ checksum="XXX"
+ user_login="arthur"
+ assignee_login="perceval"
+ person_id="[null]"
+ data="JIRA=FOO-1234"
+ created_at="2013-04-16"
+ updated_at="2013-04-16"
+ closed_at="2013-04-16"
+ />
+
+</dataset>
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
new file mode 100644
index 00000000000..4e3977640cf
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_key.xml
@@ -0,0 +1,27 @@
+<dataset>
+
+ <issues
+ id="100"
+ uuid="ABCDE"
+ resource_id="400"
+ rule_id="500"
+ severity="BLOCKER"
+ manual_severity="[false]"
+ manual_issue="[false]"
+ title="[null]"
+ message="[null]"
+ line="200"
+ cost="4.2"
+ status="OPEN"
+ resolution="FIXED"
+ checksum="XXX"
+ user_login="arthur"
+ assignee_login="perceval"
+ person_id="[null]"
+ data="JIRA=FOO-1234"
+ created_at="2013-04-16"
+ updated_at="2013-04-16"
+ closed_at="2013-04-16"
+ />
+
+</dataset>
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
new file mode 100644
index 00000000000..4e3977640cf
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_query.xml
@@ -0,0 +1,27 @@
+<dataset>
+
+ <issues
+ id="100"
+ uuid="ABCDE"
+ resource_id="400"
+ rule_id="500"
+ severity="BLOCKER"
+ manual_severity="[false]"
+ manual_issue="[false]"
+ title="[null]"
+ message="[null]"
+ line="200"
+ cost="4.2"
+ status="OPEN"
+ resolution="FIXED"
+ checksum="XXX"
+ user_login="arthur"
+ assignee_login="perceval"
+ person_id="[null]"
+ data="JIRA=FOO-1234"
+ created_at="2013-04-16"
+ updated_at="2013-04-16"
+ closed_at="2013-04-16"
+ />
+
+</dataset>
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
new file mode 100644
index 00000000000..39b6ef6681d
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_by_rules.xml
@@ -0,0 +1,77 @@
+<dataset>
+
+ <!-- rule 500 -->
+ <issues
+ id="100"
+ uuid="ABCDE"
+ resource_id="400"
+ rule_id="500"
+ severity="BLOCKER"
+ manual_severity="[false]"
+ manual_issue="[false]"
+ title="[null]"
+ message="[null]"
+ line="200"
+ cost="4.2"
+ status="OPEN"
+ resolution="FIXED"
+ checksum="XXX"
+ user_login="arthur"
+ assignee_login="perceval"
+ person_id="[null]"
+ data="JIRA=FOO-1234"
+ created_at="2013-04-16"
+ updated_at="2013-04-16"
+ closed_at="2013-04-16"
+ />
+
+ <issues
+ id="101"
+ uuid="ABCDE"
+ resource_id="400"
+ rule_id="500"
+ severity="BLOCKER"
+ manual_severity="[false]"
+ manual_issue="[false]"
+ title="[null]"
+ message="[null]"
+ line="200"
+ cost="4.2"
+ status="OPEN"
+ resolution="FIXED"
+ checksum="XXX"
+ user_login="arthur"
+ assignee_login="perceval"
+ person_id="[null]"
+ data="JIRA=FOO-1234"
+ created_at="2013-04-16"
+ updated_at="2013-04-16"
+ closed_at="2013-04-16"
+ />
+
+
+ <!-- rule 501 -->
+ <issues
+ id="102"
+ uuid="ABCDE"
+ resource_id="400"
+ rule_id="501"
+ severity="BLOCKER"
+ manual_severity="[false]"
+ manual_issue="[false]"
+ title="[null]"
+ message="[null]"
+ line="200"
+ cost="4.2"
+ status="OPEN"
+ resolution="FIXED"
+ checksum="XXX"
+ user_login="arthur"
+ assignee_login="perceval"
+ person_id="[null]"
+ data="JIRA=FOO-1234"
+ created_at="2013-04-16"
+ updated_at="2013-04-16"
+ closed_at="2013-04-16"
+ />
+</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/select-open-issues.xml b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_open_issues.xml
index eb4ad253c36..9f0f803543d 100644
--- a/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/select-open-issues.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/issue/IssueDaoTest/should_select_open_issues.xml
@@ -48,7 +48,7 @@
id="101"
uuid="101"
resource_id="401"
- rule_id="505"
+ rule_id="501"
severity="MAJOR"
manual_severity="[false]"
manual_issue="[false]"
@@ -71,8 +71,8 @@
<issues
id="102"
uuid="102"
- resource_id="402"
- rule_id="505"
+ resource_id="401"
+ rule_id="501"
severity="MAJOR"
manual_severity="[false]"
manual_issue="[false]"
@@ -91,26 +91,4 @@
updated_at="[null]"
closed_at="[null]"
/>
-
- <projects
- id="400"
- kee="key"
- root_id="[null]"
- enabled="[true]"
- />
-
- <projects
- id="401"
- kee="key2"
- root_id="400"
- enabled="[true]"
- />
-
- <projects
- id="402"
- kee="key3"
- root_id="400"
- enabled="[true]"
- />
-
</dataset>