aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@gmail.com>2013-07-16 09:55:38 +0200
committerJulien Lancelot <julien.lancelot@gmail.com>2013-07-16 09:55:38 +0200
commit92e6b1f28edf80cae4e9f20792b2e2791d22e7fa (patch)
tree5a7af676ff98af2d06830dbf2090d685d72592d6
parent56dd29bd798b4a6f87c1f463e149d860a570bc04 (diff)
downloadsonarqube-92e6b1f28edf80cae4e9f20792b2e2791d22e7fa.tar.gz
sonarqube-92e6b1f28edf80cae4e9f20792b2e2791d22e7fa.zip
Add some unit tests
-rw-r--r--sonar-server/src/main/java/org/sonar/server/issue/IssuesFinderSort.java2
-rw-r--r--sonar-server/src/test/java/org/sonar/server/component/ComponentsFinderSortTest.java62
-rw-r--r--sonar-server/src/test/java/org/sonar/server/component/DefaultRubyComponentServiceTest.java17
-rw-r--r--sonar-server/src/test/java/org/sonar/server/issue/IssuesFinderSortTest.java52
4 files changed, 129 insertions, 4 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/issue/IssuesFinderSort.java b/sonar-server/src/main/java/org/sonar/server/issue/IssuesFinderSort.java
index 786b5f25b68..ff8256c6117 100644
--- a/sonar-server/src/main/java/org/sonar/server/issue/IssuesFinderSort.java
+++ b/sonar-server/src/main/java/org/sonar/server/issue/IssuesFinderSort.java
@@ -70,7 +70,7 @@ class IssuesFinderSort {
if (IssueQuery.SORT_BY_CLOSE_DATE.equals(sort)) {
return new CloseDateSortIssueProcessor();
}
- throw new IllegalArgumentException("Cannot sort issues on field : " + sort);
+ throw new IllegalArgumentException("Cannot sort on field : " + sort);
}
abstract static class IssueProcessor {
diff --git a/sonar-server/src/test/java/org/sonar/server/component/ComponentsFinderSortTest.java b/sonar-server/src/test/java/org/sonar/server/component/ComponentsFinderSortTest.java
index 688009ccbd2..2d629afe37d 100644
--- a/sonar-server/src/test/java/org/sonar/server/component/ComponentsFinderSortTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/component/ComponentsFinderSortTest.java
@@ -28,11 +28,13 @@ import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
import static org.fest.assertions.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
public class ComponentsFinderSortTest {
@Test
- public void should_sort_by_name() {
+ public void should_sort_by_asc_name() {
List<? extends Component> dtoList = newArrayList(
new ComponentDto().setKey("org.codehaus.sonar").setName("Sonar"),
new ComponentDto().setKey("org.apache.tika:tika").setName("Apache Tika"),
@@ -41,9 +43,9 @@ public class ComponentsFinderSortTest {
);
ComponentQuery query = ComponentQuery.builder().sort(ComponentQuery.SORT_BY_NAME).asc(true).build();
- ComponentsFinderSort issuesFinderSort = new ComponentsFinderSort(dtoList, query);
+ ComponentsFinderSort finderSort = new ComponentsFinderSort(dtoList, query);
- List<Component> result = newArrayList(issuesFinderSort.sort());
+ List<Component> result = newArrayList(finderSort.sort());
assertThat(result).hasSize(4);
assertThat(result.get(0).name()).isEqualTo("Apache Tika");
@@ -52,4 +54,58 @@ public class ComponentsFinderSortTest {
assertThat(result.get(3).name()).isNull();
}
+ @Test
+ public void should_sort_by_desc_name() {
+ List<? extends Component> dtoList = newArrayList(
+ new ComponentDto().setKey("org.codehaus.sonar").setName("Sonar"),
+ new ComponentDto().setKey("org.apache.tika:tika").setName("Apache Tika"),
+ new ComponentDto().setKey("org.picocontainer:picocontainer-parent").setName("PicoContainer Parent"),
+ new ComponentDto().setKey("org.codehaus.sample")
+ );
+
+ ComponentQuery query = ComponentQuery.builder().sort(ComponentQuery.SORT_BY_NAME).asc(false).build();
+ ComponentsFinderSort finderSort = new ComponentsFinderSort(dtoList, query);
+
+ List<Component> result = newArrayList(finderSort.sort());
+
+ assertThat(result).hasSize(4);
+ assertThat(result.get(0).name()).isNull();
+ assertThat(result.get(1).name()).isEqualTo("Sonar");
+ assertThat(result.get(2).name()).isEqualTo("PicoContainer Parent");
+ assertThat(result.get(3).name()).isEqualTo("Apache Tika");
+ }
+
+ @Test
+ public void should_not_sort_with_null_sort() {
+ List<? extends Component> dtoList = newArrayList(
+ new ComponentDto().setKey("org.codehaus.sonar").setName("Sonar"),
+ new ComponentDto().setKey("org.apache.tika:tika").setName("Apache Tika"),
+ new ComponentDto().setKey("org.picocontainer:picocontainer-parent").setName("PicoContainer Parent"),
+ new ComponentDto().setKey("org.codehaus.sample")
+ );
+
+ ComponentQuery query = ComponentQuery.builder().sort(null).build();
+ ComponentsFinderSort finderSort = new ComponentsFinderSort(dtoList, query);
+
+ List<Component> result = newArrayList(finderSort.sort());
+
+ assertThat(result).hasSize(4);
+ assertThat(result.get(0).name()).isEqualTo("Sonar");
+ assertThat(result.get(1).name()).isEqualTo("Apache Tika");
+ assertThat(result.get(2).name()).isEqualTo("PicoContainer Parent");
+ assertThat(result.get(3).name()).isNull();
+ }
+
+ @Test
+ public void should_fail_to_sort_with_unknown_sort() {
+ ComponentQuery query = mock(ComponentQuery.class);
+ when(query.sort()).thenReturn("unknown");
+ ComponentsFinderSort finderSort = new ComponentsFinderSort(null, query);
+ try {
+ finderSort.sort();
+ } catch (Exception e) {
+ assertThat(e).isInstanceOf(IllegalArgumentException.class).hasMessage("Cannot sort on field : unknown");
+ }
+ }
+
}
diff --git a/sonar-server/src/test/java/org/sonar/server/component/DefaultRubyComponentServiceTest.java b/sonar-server/src/test/java/org/sonar/server/component/DefaultRubyComponentServiceTest.java
index 2a5cdb3051b..af5de1e4429 100644
--- a/sonar-server/src/test/java/org/sonar/server/component/DefaultRubyComponentServiceTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/component/DefaultRubyComponentServiceTest.java
@@ -89,4 +89,21 @@ public class DefaultRubyComponentServiceTest {
assertThat(query.sort()).isEqualTo(ComponentQuery.SORT_BY_NAME);
assertThat(query.asc()).isTrue();
}
+
+ @Test
+ public void should_create_query_with_default_paging_from_parameters() {
+ Map<String, Object> map = newHashMap();
+ map.put("keys", newArrayList("org.codehaus.sonar"));
+ map.put("names", newArrayList("Sonar"));
+ map.put("qualifiers", newArrayList("TRK"));
+
+ ComponentQuery query = DefaultRubyComponentService.toQuery(map);
+ assertThat(query.keys()).containsOnly("org.codehaus.sonar");
+ assertThat(query.names()).containsOnly("Sonar");
+ assertThat(query.qualifiers()).containsOnly("TRK");
+ assertThat(query.pageSize()).isEqualTo(100);
+ assertThat(query.pageIndex()).isEqualTo(1);
+ assertThat(query.sort()).isEqualTo(ComponentQuery.SORT_BY_NAME);
+ assertThat(query.asc()).isTrue();
+ }
}
diff --git a/sonar-server/src/test/java/org/sonar/server/issue/IssuesFinderSortTest.java b/sonar-server/src/test/java/org/sonar/server/issue/IssuesFinderSortTest.java
index 23601d03ed7..7cf32f96e7f 100644
--- a/sonar-server/src/test/java/org/sonar/server/issue/IssuesFinderSortTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/issue/IssuesFinderSortTest.java
@@ -31,6 +31,8 @@ import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
import static org.fest.assertions.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
public class IssuesFinderSortTest {
@@ -91,6 +93,24 @@ public class IssuesFinderSortTest {
}
@Test
+ public void should_sort_by_desc_severity() {
+ IssueDto issue1 = new IssueDto().setId(1L).setSeverity("INFO");
+ IssueDto issue2 = new IssueDto().setId(2L).setSeverity("BLOCKER");
+ IssueDto issue3 = new IssueDto().setId(3L).setSeverity("MAJOR");
+ List<IssueDto> dtoList = newArrayList(issue1, issue2, issue3);
+
+ IssueQuery query = IssueQuery.builder().sort(IssueQuery.SORT_BY_SEVERITY).asc(false).build();
+ IssuesFinderSort issuesFinderSort = new IssuesFinderSort(dtoList, query);
+
+ List<IssueDto> result = newArrayList(issuesFinderSort.sort());
+
+ Assertions.assertThat(result).hasSize(3);
+ Assertions.assertThat(result.get(0).getSeverity()).isEqualTo("BLOCKER");
+ Assertions.assertThat(result.get(1).getSeverity()).isEqualTo("MAJOR");
+ Assertions.assertThat(result.get(2).getSeverity()).isEqualTo("INFO");
+ }
+
+ @Test
public void should_sort_by_creation_date() {
Date date = new Date();
Date date1 = DateUtils.addDays(date, -3);
@@ -156,4 +176,36 @@ public class IssuesFinderSortTest {
Assertions.assertThat(result.get(2).getIssueCloseDate()).isEqualTo(date1);
}
+ @Test
+ public void should_not_sort_with_null_sort() {
+ IssueDto issue1 = new IssueDto().setId(1L).setAssignee("perceval");
+ IssueDto issue2 = new IssueDto().setId(2L).setAssignee("arthur");
+ IssueDto issue3 = new IssueDto().setId(3L).setAssignee("vincent");
+ IssueDto issue4 = new IssueDto().setId(4L).setAssignee(null);
+ List<IssueDto> dtoList = newArrayList(issue1, issue2, issue3, issue4);
+
+ IssueQuery query = IssueQuery.builder().sort(null).build();
+ IssuesFinderSort issuesFinderSort = new IssuesFinderSort(dtoList, query);
+
+ List<IssueDto> result = newArrayList(issuesFinderSort.sort());
+
+ assertThat(result).hasSize(4);
+ assertThat(result.get(0).getAssignee()).isEqualTo("perceval");
+ assertThat(result.get(1).getAssignee()).isEqualTo("arthur");
+ assertThat(result.get(2).getAssignee()).isEqualTo("vincent");
+ assertThat(result.get(3).getAssignee()).isNull();
+ }
+
+ @Test
+ public void should_fail_to_sort_with_unknown_sort() {
+ IssueQuery query = mock(IssueQuery.class);
+ when(query.sort()).thenReturn("unknown");
+ IssuesFinderSort issuesFinderSort = new IssuesFinderSort(null, query);
+ try {
+ issuesFinderSort.sort();
+ } catch (Exception e) {
+ assertThat(e).isInstanceOf(IllegalArgumentException.class).hasMessage("Cannot sort on field : unknown");
+ }
+ }
+
}