private IndexField toIndexField(String sort) {
if (IssueQuery.SORT_BY_ASSIGNEE.equals(sort)) {
return IssueNormalizer.IssueField.ASSIGNEE;
+ } else if (IssueQuery.SORT_BY_STATUS.equals(sort)) {
+ return IssueNormalizer.IssueField.STATUS;
} else if (IssueQuery.SORT_BY_SEVERITY.equals(sort)) {
return IssueNormalizer.IssueField.SEVERITY_VALUE;
} else if (IssueQuery.SORT_BY_CREATION_DATE.equals(sort)) {
import org.sonar.server.platform.BackendCleanup;
import org.sonar.server.rule.RuleTesting;
import org.sonar.server.rule.db.RuleDao;
-import org.sonar.server.search.FacetValue;
-import org.sonar.server.search.IndexDefinition;
-import org.sonar.server.search.QueryContext;
-import org.sonar.server.search.Result;
-import org.sonar.server.search.SearchClient;
+import org.sonar.server.search.*;
import org.sonar.server.tester.ServerTester;
import org.sonar.server.user.MockUserSession;
assertThat(result.getHits()).hasSize(500);
}
+ @Test
+ public void sort_by_status() throws Exception {
+ db.issueDao().insert(session,
+ IssueTesting.newDto(rule, file, project).setStatus(Issue.STATUS_OPEN),
+ IssueTesting.newDto(rule, file, project).setStatus(Issue.STATUS_CLOSED),
+ IssueTesting.newDto(rule, file, project).setStatus(Issue.STATUS_REOPENED)
+ );
+ session.commit();
+
+ IssueQuery.Builder query = IssueQuery.builder().sort(IssueQuery.SORT_BY_STATUS).asc(true);
+ Result<Issue> result = index.search(query.build(), new QueryContext());
+ assertThat(result.getHits().get(0).status()).isEqualTo(Issue.STATUS_CLOSED);
+ assertThat(result.getHits().get(1).status()).isEqualTo(Issue.STATUS_OPEN);
+ assertThat(result.getHits().get(2).status()).isEqualTo(Issue.STATUS_REOPENED);
+
+ query = IssueQuery.builder().sort(IssueQuery.SORT_BY_STATUS).asc(false);
+ result = index.search(query.build(), new QueryContext());
+ assertThat(result.getHits().get(0).status()).isEqualTo(Issue.STATUS_REOPENED);
+ assertThat(result.getHits().get(1).status()).isEqualTo(Issue.STATUS_OPEN);
+ assertThat(result.getHits().get(2).status()).isEqualTo(Issue.STATUS_CLOSED);
+ }
+
@Test
public void sort_by_severity() throws Exception {
db.issueDao().insert(session,