@Test public void facets_on_assignees() { ComponentDto project = newPrivateProjectDto(newOrganizationDto()); ComponentDto file = newFileDto(project, null); indexIssues( newDoc("I1", file).setAssigneeUuid("steph-uuid"), newDoc("I2", file).setAssigneeUuid("marcel-uuid"), newDoc("I3", file).setAssigneeUuid("marcel-uuid"), newDoc("I4", file).setAssigneeUuid(null)); assertThatFacetHasOnly(IssueQuery.builder(), "assignees", entry("steph-uuid", 1L), entry("marcel-uuid", 2L), entry("", 1L)); }
@Test public void facets_on_assignees_supports_dashes() { ComponentDto project = newPrivateProjectDto(newOrganizationDto()); ComponentDto file = newFileDto(project, null); indexIssues( newDoc("I1", file).setAssigneeUuid("j-b-uuid"), newDoc("I2", file).setAssigneeUuid("marcel-uuid"), newDoc("I3", file).setAssigneeUuid("marcel-uuid"), newDoc("I4", file).setAssigneeUuid(null)); assertThatFacetHasOnly(IssueQuery.builder().assigneeUuids(singletonList("j-b")), "assignees", entry("j-b-uuid", 1L), entry("marcel-uuid", 2L), entry("", 1L)); }
@Test public void filter_by_assignees() { ComponentDto project = newPrivateProjectDto(newOrganizationDto()); ComponentDto file = newFileDto(project, null); indexIssues( newDoc("I1", file).setAssigneeUuid("steph-uuid"), newDoc("I2", file).setAssigneeUuid("marcel-uuid"), newDoc("I3", file).setAssigneeUuid(null)); assertThatSearchReturnsOnly(IssueQuery.builder().assigneeUuids(singletonList("steph-uuid")), "I1"); assertThatSearchReturnsOnly(IssueQuery.builder().assigneeUuids(asList("steph-uuid", "marcel-uuid")), "I1", "I2"); assertThatSearchReturnsEmpty(IssueQuery.builder().assigneeUuids(singletonList("unknown"))); }
doc.setAssigneeUuid(rs.getString(2)); doc.setLine(DatabaseUtils.getInt(rs, 3)); doc.setResolution(rs.getString(4));
@Test public void facets_on_assignees_return_only_100_entries_plus_selected_values() { OrganizationDto organizationDto = newOrganizationDto(); ComponentDto project = newPrivateProjectDto(organizationDto); indexIssues(rangeClosed(1, 110).mapToObj(i -> newDoc(newFileDto(project, null)).setAssigneeUuid("a" + i)).toArray(IssueDoc[]::new)); IssueDoc issue1 = newDoc(newFileDto(project, null)).setAssigneeUuid("user1"); IssueDoc issue2 = newDoc(newFileDto(project, null)).setAssigneeUuid("user2"); indexIssues(issue1, issue2); assertThatFacetHasSize(IssueQuery.builder().build(), "assignees", 100); assertThatFacetHasSize(IssueQuery.builder().assigneeUuids(asList(issue1.assigneeUuid(), issue2.assigneeUuid())).build(), "assignees", 102); }
@Test public void filter_by_assigned() { ComponentDto project = newPrivateProjectDto(newOrganizationDto()); ComponentDto file = newFileDto(project, null); indexIssues( newDoc("I1", file).setAssigneeUuid("steph-uuid"), newDoc("I2", file).setAssigneeUuid(null), newDoc("I3", file).setAssigneeUuid(null)); assertThatSearchReturnsOnly(IssueQuery.builder().assigned(true), "I1"); assertThatSearchReturnsOnly(IssueQuery.builder().assigned(false), "I2", "I3"); assertThatSearchReturnsOnly(IssueQuery.builder().assigned(null), "I1", "I2", "I3"); }
@Test public void facets_on_assignees() { ComponentDto project = ComponentTesting.newPrivateProjectDto(newOrganizationDto()); ComponentDto file = ComponentTesting.newFileDto(project, null); indexIssues( IssueDocTesting.newDoc("I1", file).setAssigneeUuid("uuid-steph").setEffort(10L), IssueDocTesting.newDoc("I2", file).setAssigneeUuid("uuid-simon").setEffort(10L), IssueDocTesting.newDoc("I3", file).setAssigneeUuid("uuid-simon").setEffort(10L), IssueDocTesting.newDoc("I4", file).setAssigneeUuid(null).setEffort(10L)); Facets facets = new Facets(underTest.search(newQueryBuilder().build(), new SearchOptions().addFacets(asList("assignees"))), system2.getDefaultTimeZone()); assertThat(facets.getNames()).containsOnly("assignees", FACET_MODE_EFFORT); assertThat(facets.get("assignees")).containsOnly(entry("uuid-steph", 10L), entry("uuid-simon", 20L), entry("", 10L)); assertThat(facets.get(FACET_MODE_EFFORT)).containsOnly(entry("total", 40L)); }
@Test public void filter_by_authors() { ComponentDto project = newPrivateProjectDto(newOrganizationDto()); ComponentDto file = newFileDto(project, null); indexIssues( newDoc("I1", file).setAuthorLogin("steph"), newDoc("I2", file).setAuthorLogin("marcel"), newDoc("I3", file).setAssigneeUuid(null)); assertThatSearchReturnsOnly(IssueQuery.builder().authors(singletonList("steph")), "I1"); assertThatSearchReturnsOnly(IssueQuery.builder().authors(asList("steph", "marcel")), "I1", "I2"); assertThatSearchReturnsEmpty(IssueQuery.builder().authors(singletonList("unknown"))); }
doc.setAssigneeUuid(rs.getString(2)); doc.setLine(DatabaseUtils.getInt(rs, 3)); doc.setResolution(rs.getString(4));