diff options
author | Julien Lancelot <julien.lancelot@gmail.com> | 2013-07-16 09:55:38 +0200 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@gmail.com> | 2013-07-16 09:55:38 +0200 |
commit | 92e6b1f28edf80cae4e9f20792b2e2791d22e7fa (patch) | |
tree | 5a7af676ff98af2d06830dbf2090d685d72592d6 | |
parent | 56dd29bd798b4a6f87c1f463e149d860a570bc04 (diff) | |
download | sonarqube-92e6b1f28edf80cae4e9f20792b2e2791d22e7fa.tar.gz sonarqube-92e6b1f28edf80cae4e9f20792b2e2791d22e7fa.zip |
Add some unit tests
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"); + } + } + } |