@Test public void check_projects_facet_max_size() { RuleDefinitionDto rule = db.rules().insert(); IntStream.rangeClosed(1, 110) .forEach(i -> { ComponentDto project = db.components().insertPublicProject(); db.issues().insert(rule, project, project); }); indexPermissions(); indexIssues(); SearchWsResponse response = ws.newRequest() .setParam(FACETS, "projects") .executeProtobuf(SearchWsResponse.class); assertThat(response.getPaging().getTotal()).isEqualTo(110); assertThat(response.getFacets().getFacets(0).getValuesCount()).isEqualTo(100); }
@Test public void empty_search() { SearchWsResponse response = ws.newRequest().executeProtobuf(SearchWsResponse.class); assertThat(response) .extracting(SearchWsResponse::getIssuesList, r -> r.getPaging().getTotal()) .containsExactlyInAnyOrder(Collections.emptyList(), 0); }
@Test public void empty_search_with_unknown_branch() { SearchWsResponse response = ws.newRequest() .setParam("onComponentOnly", "true") .setParam("componentKeys", "foo") .setParam("branch", "bar") .executeProtobuf(SearchWsResponse.class); assertThat(response) .extracting(SearchWsResponse::getIssuesList, r -> r.getPaging().getTotal()) .containsExactlyInAnyOrder(Collections.emptyList(), 0); }
public ImmutableList<Issue> getAllIssuesFor(String resourceKey) { final ImmutableList.Builder<Issue> builder = ImmutableList.builder(); SearchWsRequest query = new SearchWsRequest(); query.setComponentRoots(singletonList(resourceKey)) .setResolved(false) .setPageSize(-1); IssuesService issuesService = sonarClient.issues(); SearchWsResponse response = issuesService.search(query); builder.addAll(response.getIssuesList()); Common.Paging paging = response.getPaging(); Integer total = paging.getTotal(); Integer pageSize = paging.getPageSize(); Integer pages = total / pageSize + (total % pageSize > 0 ? 1 : 0); for (int pageIndex = 2; pageIndex <= pages; pageIndex++) { final ProgressIndicator progressIndicator = ProgressManager.getInstance().getProgressIndicator(); if (progressIndicator.isCanceled()) break; final String pagesProgressMessage = String.format("%d / %d pages downloaded", pageIndex, pages); ProgressIndicatorUtil.setText(progressIndicator, pagesProgressMessage); ProgressIndicatorUtil.setFraction(progressIndicator, pageIndex * 1.0 / pages); query.setPage(pageIndex); builder.addAll(issuesService.search(query).getIssuesList()); } return builder.build(); } }