@Test public void group_count_by_permission_and_component_id() { GroupDto group1 = groupDb.insertGroup(); GroupDto group2 = groupDb.insertGroup(); GroupDto group3 = groupDb.insertGroup(); permissionDb.addProjectPermissionToGroup(ISSUE_ADMIN, group1.getId(), 42L); permissionDb.addProjectPermissionToGroup(ADMIN, group1.getId(), 123L); permissionDb.addProjectPermissionToGroup(ADMIN, group2.getId(), 123L); permissionDb.addProjectPermissionToGroup(ADMIN, group3.getId(), 123L); // anyone group permissionDb.addProjectPermissionToGroup(ADMIN, null, 123L); permissionDb.addProjectPermissionToGroup(USER, group1.getId(), 123L); permissionDb.addProjectPermissionToGroup(USER, group1.getId(), 456L); final List<CountByProjectAndPermissionDto> result = new ArrayList<>(); underTest.groupsCountByComponentIdAndPermission( dbSession, asList(123L, 456L, 789L), context -> result.add((CountByProjectAndPermissionDto) context.getResultObject())); assertThat(result).hasSize(3); assertThat(result).extracting("permission").containsOnly(ADMIN, USER); assertThat(result).extracting("componentId").containsOnly(123L, 456L); assertThat(result).extracting("count").containsOnly(4, 1); }