From f4c7aee1c529e04181e7a90051a39b4ecee0c196 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Tue, 28 Oct 2014 14:57:42 +0100 Subject: [PATCH] SONAR-5718 Add component(Root)Uuids parameters to api/issues/search WS --- .../org/sonar/server/issue/IssueQuery.java | 8 ++--- .../sonar/server/issue/IssueQueryService.java | 34 ++++++++++++++++--- .../issue/filter/IssueFilterParameters.java | 4 ++- .../sonar/server/issue/index/IssueIndex.java | 30 ++++------------ .../sonar/server/issue/ws/SearchAction.java | 25 ++++++++++---- .../server/issue/IssueQueryServiceTest.java | 6 ++-- .../sonar/server/issue/IssueQueryTest.java | 20 +++++------ .../issue/index/IssueIndexMediumTest.java | 22 ++++++------ .../issue/ws/SearchActionMediumTest.java | 4 +-- .../display_facets.json | 4 +-- 10 files changed, 90 insertions(+), 67 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQuery.java b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQuery.java index e285b3c9e8b..7f8a5e28b73 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQuery.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQuery.java @@ -113,11 +113,11 @@ public class IssueQuery { return resolutions; } - public Collection components() { + public Collection componentUuids() { return components; } - public Collection componentRoots() { + public Collection componentRootUuids() { return componentRoots; } @@ -243,12 +243,12 @@ public class IssueQuery { return this; } - public Builder components(@Nullable Collection l) { + public Builder componentUuids(@Nullable Collection l) { this.components = l; return this; } - public Builder componentRoots(@Nullable Collection l) { + public Builder componentRootUuids(@Nullable Collection l) { this.componentRoots = l; return this; } diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQueryService.java b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQueryService.java index 5a335960427..a69321e8139 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQueryService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQueryService.java @@ -64,8 +64,6 @@ public class IssueQueryService implements ServerComponent { .statuses(RubyUtils.toStrings(params.get(IssueFilterParameters.STATUSES))) .resolutions(RubyUtils.toStrings(params.get(IssueFilterParameters.RESOLUTIONS))) .resolved(RubyUtils.toBoolean(params.get(IssueFilterParameters.RESOLVED))) - .components(componentUuids(session, RubyUtils.toStrings(params.get(IssueFilterParameters.COMPONENTS)))) - .componentRoots(componentUuids(session, RubyUtils.toStrings(params.get(IssueFilterParameters.COMPONENT_ROOTS)))) .rules(toRules(params.get(IssueFilterParameters.RULES))) .actionPlans(RubyUtils.toStrings(params.get(IssueFilterParameters.ACTION_PLANS))) .reporters(RubyUtils.toStrings(params.get(IssueFilterParameters.REPORTERS))) @@ -77,6 +75,10 @@ public class IssueQueryService implements ServerComponent { .createdAt(RubyUtils.toDate(params.get(IssueFilterParameters.CREATED_AT))) .createdAfter(RubyUtils.toDate(params.get(IssueFilterParameters.CREATED_AFTER))) .createdBefore(RubyUtils.toDate(params.get(IssueFilterParameters.CREATED_BEFORE))); + addComponentUuids(builder, session, + RubyUtils.toStrings(params.get(IssueFilterParameters.COMPONENT_UUIDS)), RubyUtils.toStrings(params.get(IssueFilterParameters.COMPONENTS))); + addComponentRootUuids(builder, session, + RubyUtils.toStrings(params.get(IssueFilterParameters.COMPONENT_ROOT_UUIDS)), RubyUtils.toStrings(params.get(IssueFilterParameters.COMPONENT_ROOTS))); String sort = (String) params.get(IssueFilterParameters.SORT); if (!Strings.isNullOrEmpty(sort)) { builder.sort(sort); @@ -98,8 +100,6 @@ public class IssueQueryService implements ServerComponent { .statuses(request.paramAsStrings(IssueFilterParameters.STATUSES)) .resolutions(request.paramAsStrings(IssueFilterParameters.RESOLUTIONS)) .resolved(request.paramAsBoolean(IssueFilterParameters.RESOLVED)) - .components(componentUuids(session, request.paramAsStrings(IssueFilterParameters.COMPONENTS))) - .componentRoots(componentUuids(session, request.paramAsStrings(IssueFilterParameters.COMPONENT_ROOTS))) .rules(stringsToRules(request.paramAsStrings(IssueFilterParameters.RULES))) .actionPlans(request.paramAsStrings(IssueFilterParameters.ACTION_PLANS)) .reporters(request.paramAsStrings(IssueFilterParameters.REPORTERS)) @@ -110,6 +110,10 @@ public class IssueQueryService implements ServerComponent { .createdAt(request.paramAsDateTime(IssueFilterParameters.CREATED_AT)) .createdAfter(request.paramAsDateTime(IssueFilterParameters.CREATED_AFTER)) .createdBefore(request.paramAsDateTime(IssueFilterParameters.CREATED_BEFORE)); + addComponentUuids(builder, session, + request.paramAsStrings(IssueFilterParameters.COMPONENT_UUIDS), request.paramAsStrings(IssueFilterParameters.COMPONENTS)); + addComponentRootUuids(builder, session, + request.paramAsStrings(IssueFilterParameters.COMPONENT_ROOT_UUIDS), request.paramAsStrings(IssueFilterParameters.COMPONENT_ROOTS)); String sort = request.param(SearchRequestHandler.PARAM_SORT); if (!Strings.isNullOrEmpty(sort)) { builder.sort(sort); @@ -122,6 +126,28 @@ public class IssueQueryService implements ServerComponent { } } + private void addComponentUuids(IssueQuery.Builder builder, DbSession session, @Nullable Collection componentUuids, @Nullable Collection components) { + if (componentUuids != null) { + if (components != null) { + throw new IllegalArgumentException("components and componentUuids cannot be set simultaneously"); + } + builder.componentUuids(componentUuids); + } else { + builder.componentUuids(componentUuids(session, components)); + } + } + + private void addComponentRootUuids(IssueQuery.Builder builder, DbSession session, @Nullable Collection componentRootUuids, @Nullable Collection componentRoots) { + if (componentRootUuids != null) { + if (componentRoots != null) { + throw new IllegalArgumentException("componentRoots and componentRootUuids cannot be set simultaneously"); + } + builder.componentRootUuids(componentRootUuids); + } else { + builder.componentRootUuids(componentUuids(session, componentRoots)); + } + } + private Collection componentUuids(DbSession session, @Nullable Collection componentKeys) { Collection componentUuids = newArrayList(); if (componentKeys != null) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/filter/IssueFilterParameters.java b/server/sonar-server/src/main/java/org/sonar/server/issue/filter/IssueFilterParameters.java index 57eb83f5c9e..1e3ec734057 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/filter/IssueFilterParameters.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/filter/IssueFilterParameters.java @@ -39,7 +39,9 @@ public class IssueFilterParameters { public static final String RESOLUTIONS = "resolutions"; public static final String RESOLVED = "resolved"; public static final String COMPONENTS = "components"; + public static final String COMPONENT_UUIDS = "componentUuids"; public static final String COMPONENT_ROOTS = "componentRoots"; + public static final String COMPONENT_ROOT_UUIDS = "componentRootUuids"; public static final String RULES = "rules"; public static final String ACTION_PLANS = "actionPlans"; public static final String REPORTERS = "reporters"; @@ -57,7 +59,7 @@ public class IssueFilterParameters { public static final String ASC = "asc"; public static final List ALL = ImmutableList.of(ISSUES, SEVERITIES, STATUSES, RESOLUTIONS, RESOLVED, COMPONENTS, COMPONENT_ROOTS, RULES, ACTION_PLANS, REPORTERS, - ASSIGNEES, LANGUAGES, ASSIGNED, PLANNED, HIDE_RULES, CREATED_AT, CREATED_AFTER, CREATED_BEFORE, PAGE_SIZE, PAGE_INDEX, SORT, ASC); + ASSIGNEES, LANGUAGES, ASSIGNED, PLANNED, HIDE_RULES, CREATED_AT, CREATED_AFTER, CREATED_BEFORE, PAGE_SIZE, PAGE_INDEX, SORT, ASC, COMPONENT_UUIDS, COMPONENT_ROOT_UUIDS); public static final List ALL_WITHOUT_PAGINATION = newArrayList(Iterables.filter(ALL, new Predicate() { @Override diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java index 0f31432e2c2..52a688695e5 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java @@ -30,12 +30,7 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.unit.TimeValue; -import org.elasticsearch.index.query.BoolFilterBuilder; -import org.elasticsearch.index.query.FilterBuilder; -import org.elasticsearch.index.query.FilterBuilders; -import org.elasticsearch.index.query.OrFilterBuilder; -import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.index.query.*; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder; @@ -49,22 +44,11 @@ import org.sonar.api.web.UserRole; import org.sonar.core.issue.db.IssueDto; import org.sonar.server.issue.IssueQuery; import org.sonar.server.issue.filter.IssueFilterParameters; -import org.sonar.server.search.BaseIndex; -import org.sonar.server.search.FacetValue; -import org.sonar.server.search.IndexDefinition; -import org.sonar.server.search.IndexField; -import org.sonar.server.search.QueryContext; -import org.sonar.server.search.Result; -import org.sonar.server.search.SearchClient; +import org.sonar.server.search.*; import javax.annotation.Nullable; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import static com.google.common.collect.Lists.newArrayList; @@ -268,8 +252,8 @@ public class IssueIndex extends BaseIndex { filters.put(IssueNormalizer.IssueField.KEY.field(), matchFilter(IssueNormalizer.IssueField.KEY, query.issueKeys())); filters.put(IssueNormalizer.IssueField.ACTION_PLAN.field(), matchFilter(IssueNormalizer.IssueField.ACTION_PLAN, query.actionPlans())); filters.put(IssueNormalizer.IssueField.ASSIGNEE.field(), matchFilter(IssueNormalizer.IssueField.ASSIGNEE, query.assignees())); - filters.put(IssueNormalizer.IssueField.MODULE_PATH.field(), matchFilter(IssueNormalizer.IssueField.MODULE_PATH, query.componentRoots())); - filters.put(IssueNormalizer.IssueField.COMPONENT.field(), matchFilter(IssueNormalizer.IssueField.COMPONENT, query.components())); + filters.put(IssueNormalizer.IssueField.MODULE_PATH.field(), matchFilter(IssueNormalizer.IssueField.MODULE_PATH, query.componentRootUuids())); + filters.put(IssueNormalizer.IssueField.COMPONENT.field(), matchFilter(IssueNormalizer.IssueField.COMPONENT, query.componentUuids())); filters.put(IssueNormalizer.IssueField.LANGUAGE.field(), matchFilter(IssueNormalizer.IssueField.LANGUAGE, query.languages())); filters.put(IssueNormalizer.IssueField.RESOLUTION.field(), matchFilter(IssueNormalizer.IssueField.RESOLUTION, query.resolutions())); filters.put(IssueNormalizer.IssueField.REPORTER.field(), matchFilter(IssueNormalizer.IssueField.REPORTER, query.reporters())); @@ -330,9 +314,9 @@ public class IssueIndex extends BaseIndex { addSimpleStickyFacetIfNeeded(query, options, filters, esQuery, esSearch, IssueFilterParameters.ACTION_PLANS, IssueNormalizer.IssueField.ACTION_PLAN.field(), query.actionPlans().toArray()); addSimpleStickyFacetIfNeeded(query, options, filters, esQuery, esSearch, - IssueFilterParameters.COMPONENT_ROOTS, IssueNormalizer.IssueField.PROJECT.field(), query.componentRoots().toArray()); + IssueFilterParameters.COMPONENT_ROOT_UUIDS, IssueNormalizer.IssueField.PROJECT.field(), query.componentRootUuids().toArray()); addSimpleStickyFacetIfNeeded(query, options, filters, esQuery, esSearch, - IssueFilterParameters.COMPONENTS, IssueNormalizer.IssueField.COMPONENT.field(), query.components().toArray()); + IssueFilterParameters.COMPONENT_UUIDS, IssueNormalizer.IssueField.COMPONENT.field(), query.componentUuids().toArray()); addSimpleStickyFacetIfNeeded(query, options, filters, esQuery, esSearch, IssueFilterParameters.LANGUAGES, IssueNormalizer.IssueField.LANGUAGE.field(), query.languages().toArray()); addSimpleStickyFacetIfNeeded(query, options, filters, esQuery, esSearch, diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java b/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java index c4c70a0b5f1..527989e8bd2 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java @@ -135,12 +135,23 @@ public class SearchAction extends SearchRequestHandler { action.createParam(IssueFilterParameters.COMPONENTS) .setDescription("To retrieve issues associated to a specific list of components (comma-separated list of component keys). " + "Note that if you set the value to a project key, only issues associated to this project are retrieved. " + - "Issues associated to its sub-components (such as files, packages, etc.) are not retrieved. See also componentRoots") + "Issues associated to its sub-components (such as files, packages, etc.) are not retrieved. See also componentRoots. " + + "If this parameter is set, componentUuids must not be set.") .setExampleValue("org.apache.struts:struts:org.apache.struts.Action"); action.createParam(IssueFilterParameters.COMPONENT_ROOTS) .setDescription("To retrieve issues associated to a specific list of components and their sub-components (comma-separated list of component keys). " + - "Views are not supported") + "Views are not supported. If this parameter is set, componentRootUuids must not be set.") .setExampleValue("org.apache.struts:struts"); + action.createParam(IssueFilterParameters.COMPONENT_UUIDS) + .setDescription("To retrieve issues associated to a specific list of components (comma-separated list of component UUIDs). " + + "Note that if you set the value to a project UUID, only issues associated to this project are retrieved. " + + "Issues associated to its sub-components (such as files, packages, etc.) are not retrieved. See also componentRootUuids. " + + "If this parameter is set, components must not be set.") + .setExampleValue("584a89f2-8037-4f7b-b82c-8b45d2d63fb2"); + action.createParam(IssueFilterParameters.COMPONENT_ROOT_UUIDS) + .setDescription("To retrieve issues associated to a specific list of components and their sub-components (comma-separated list of component UUIDs). " + + "Views are not supported. If this parameter is set, componentRoots must not be set.") + .setExampleValue("7d8749e8-3070-4903-9188-bdd82933bb92"); action.createParam(IssueFilterParameters.RULES) .setDescription("Comma-separated list of coding rule keys. Format is :") .setExampleValue("squid:AvoidCycles"); @@ -197,7 +208,7 @@ public class SearchAction extends SearchRequestHandler { @Override protected Result doSearch(IssueQuery query, QueryContext context) { - Collection components = query.components(); + Collection components = query.componentUuids(); if (components != null && components.size() == 1) { context.setShowFullResult(true); } @@ -218,10 +229,10 @@ public class SearchAction extends SearchRequestHandler { IssueFilterParameters.STATUSES, IssueFilterParameters.RESOLUTIONS, IssueFilterParameters.ACTION_PLANS, - IssueFilterParameters.COMPONENT_ROOTS, + IssueFilterParameters.COMPONENT_ROOT_UUIDS, IssueFilterParameters.RULES, IssueFilterParameters.ASSIGNEES, - IssueFilterParameters.COMPONENTS, + IssueFilterParameters.COMPONENT_UUIDS, IssueFilterParameters.LANGUAGES }); } @@ -263,8 +274,8 @@ public class SearchAction extends SearchRequestHandler { } } - collectFacetKeys(result, IssueFilterParameters.COMPONENT_ROOTS, projectUuids); - collectFacetKeys(result, IssueFilterParameters.COMPONENTS, componentUuids); + collectFacetKeys(result, IssueFilterParameters.COMPONENT_ROOT_UUIDS, projectUuids); + collectFacetKeys(result, IssueFilterParameters.COMPONENT_UUIDS, componentUuids); collectFacetKeys(result, IssueFilterParameters.ASSIGNEES, userLogins); DbSession session = dbClient.openSession(false); diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryServiceTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryServiceTest.java index ebb1bd872fe..3dbb7b73ebd 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryServiceTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryServiceTest.java @@ -92,8 +92,8 @@ public class IssueQueryServiceTest { assertThat(query.statuses()).containsOnly("CLOSED"); assertThat(query.resolutions()).containsOnly("FALSE-POSITIVE"); assertThat(query.resolved()).isTrue(); - assertThat(query.components()).containsOnly("ABCD"); - assertThat(query.componentRoots()).containsOnly("BCDE"); + assertThat(query.componentUuids()).containsOnly("ABCD"); + assertThat(query.componentRootUuids()).containsOnly("BCDE"); assertThat(query.reporters()).containsOnly("marilyn"); assertThat(query.assignees()).containsOnly("joanna"); assertThat(query.languages()).containsOnly("xoo"); @@ -113,7 +113,7 @@ public class IssueQueryServiceTest { map.put("components", newArrayList("unknown")); IssueQuery query = issueQueryService.createFromMap(map); - assertThat(query.components()).containsOnly(""); + assertThat(query.componentUuids()).containsOnly(""); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryTest.java index 55553d9b854..e06c6d3d4b7 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryTest.java @@ -39,8 +39,8 @@ public class IssueQueryTest { .severities(newArrayList(Severity.BLOCKER)) .statuses(Lists.newArrayList(Issue.STATUS_RESOLVED)) .resolutions(newArrayList(Issue.RESOLUTION_FALSE_POSITIVE)) - .components(newArrayList("org/struts/Action.java")) - .componentRoots(newArrayList("org.struts:core")) + .componentUuids(newArrayList("org/struts/Action.java")) + .componentRootUuids(newArrayList("org.struts:core")) .rules(newArrayList(RuleKey.of("squid", "AvoidCycle"))) .actionPlans(newArrayList("AP1", "AP2")) .reporters(newArrayList("crunky")) @@ -60,8 +60,8 @@ public class IssueQueryTest { assertThat(query.severities()).containsOnly(Severity.BLOCKER); assertThat(query.statuses()).containsOnly(Issue.STATUS_RESOLVED); assertThat(query.resolutions()).containsOnly(Issue.RESOLUTION_FALSE_POSITIVE); - assertThat(query.components()).containsOnly("org/struts/Action.java"); - assertThat(query.componentRoots()).containsOnly("org.struts:core"); + assertThat(query.componentUuids()).containsOnly("org/struts/Action.java"); + assertThat(query.componentRootUuids()).containsOnly("org.struts:core"); assertThat(query.reporters()).containsOnly("crunky"); assertThat(query.assignees()).containsOnly("gargantua"); assertThat(query.languages()).containsOnly("xoo"); @@ -108,8 +108,8 @@ public class IssueQueryTest { public void collection_params_should_not_be_null_but_empty() throws Exception { IssueQuery query = IssueQuery.builder() .issueKeys(null) - .components(null) - .componentRoots(null) + .componentUuids(null) + .componentRootUuids(null) .statuses(null) .actionPlans(null) .assignees(null) @@ -120,8 +120,8 @@ public class IssueQueryTest { .languages(null) .build(); assertThat(query.issueKeys()).isEmpty(); - assertThat(query.components()).isEmpty(); - assertThat(query.componentRoots()).isEmpty(); + assertThat(query.componentUuids()).isEmpty(); + assertThat(query.componentRootUuids()).isEmpty(); assertThat(query.statuses()).isEmpty(); assertThat(query.actionPlans()).isEmpty(); assertThat(query.assignees()).isEmpty(); @@ -136,8 +136,8 @@ public class IssueQueryTest { public void test_default_query() throws Exception { IssueQuery query = IssueQuery.builder().build(); assertThat(query.issueKeys()).isEmpty(); - assertThat(query.components()).isEmpty(); - assertThat(query.componentRoots()).isEmpty(); + assertThat(query.componentUuids()).isEmpty(); + assertThat(query.componentRootUuids()).isEmpty(); assertThat(query.statuses()).isEmpty(); assertThat(query.actionPlans()).isEmpty(); assertThat(query.assignees()).isEmpty(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java index 5f06084ab73..444ded51ca6 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java @@ -177,11 +177,11 @@ public class IssueIndexMediumTest { IssueTesting.newDto(rule, file, project)); session.commit(); - assertThat(index.search(IssueQuery.builder().componentRoots(newArrayList(file.uuid())).build(), new QueryContext()).getHits()).isEmpty(); - assertThat(index.search(IssueQuery.builder().componentRoots(newArrayList(module.uuid())).build(), new QueryContext()).getHits()).hasSize(1); - assertThat(index.search(IssueQuery.builder().componentRoots(newArrayList(subModule.uuid())).build(), new QueryContext()).getHits()).hasSize(1); - assertThat(index.search(IssueQuery.builder().componentRoots(newArrayList(project.uuid())).build(), new QueryContext()).getHits()).hasSize(1); - assertThat(index.search(IssueQuery.builder().componentRoots(newArrayList("unknown")).build(), new QueryContext()).getHits()).isEmpty(); + assertThat(index.search(IssueQuery.builder().componentRootUuids(newArrayList(file.uuid())).build(), new QueryContext()).getHits()).isEmpty(); + assertThat(index.search(IssueQuery.builder().componentRootUuids(newArrayList(module.uuid())).build(), new QueryContext()).getHits()).hasSize(1); + assertThat(index.search(IssueQuery.builder().componentRootUuids(newArrayList(subModule.uuid())).build(), new QueryContext()).getHits()).hasSize(1); + assertThat(index.search(IssueQuery.builder().componentRootUuids(newArrayList(project.uuid())).build(), new QueryContext()).getHits()).hasSize(1); + assertThat(index.search(IssueQuery.builder().componentRootUuids(newArrayList("unknown")).build(), new QueryContext()).getHits()).isEmpty(); } @Test @@ -195,10 +195,10 @@ public class IssueIndexMediumTest { IssueTesting.newDto(rule, file2, project)); session.commit(); - assertThat(index.search(IssueQuery.builder().components(newArrayList(file1.uuid(), file2.uuid())).build(), new QueryContext()).getHits()).hasSize(2); - assertThat(index.search(IssueQuery.builder().components(newArrayList(file1.uuid())).build(), new QueryContext()).getHits()).hasSize(1); - assertThat(index.search(IssueQuery.builder().components(newArrayList("unknown")).build(), new QueryContext()).getHits()).isEmpty(); - assertThat(index.search(IssueQuery.builder().components(newArrayList(project.uuid())).build(), new QueryContext()).getHits()).isEmpty(); + assertThat(index.search(IssueQuery.builder().componentUuids(newArrayList(file1.uuid(), file2.uuid())).build(), new QueryContext()).getHits()).hasSize(2); + assertThat(index.search(IssueQuery.builder().componentUuids(newArrayList(file1.uuid())).build(), new QueryContext()).getHits()).hasSize(1); + assertThat(index.search(IssueQuery.builder().componentUuids(newArrayList("unknown")).build(), new QueryContext()).getHits()).isEmpty(); + assertThat(index.search(IssueQuery.builder().componentUuids(newArrayList(project.uuid())).build(), new QueryContext()).getHits()).isEmpty(); } @Test @@ -635,7 +635,7 @@ public class IssueIndexMediumTest { assertThat(index.search(query.build(), new QueryContext()).getHits()).hasSize(0); MockUserSession.set().setUserGroups("sonar-users", "sonar-admins"); - assertThat(index.search(query.componentRoots(newArrayList(project3.key())).build(), new QueryContext()).getHits()).hasSize(0); + assertThat(index.search(query.componentRootUuids(newArrayList(project3.key())).build(), new QueryContext()).getHits()).hasSize(0); } @Test @@ -685,7 +685,7 @@ public class IssueIndexMediumTest { assertThat(index.search(query.build(), new QueryContext()).getHits()).hasSize(0); MockUserSession.set().setLogin("john"); - assertThat(index.search(query.componentRoots(newArrayList(project3.key())).build(), new QueryContext()).getHits()).hasSize(0); + assertThat(index.search(query.componentRootUuids(newArrayList(project3.key())).build(), new QueryContext()).getHits()).hasSize(0); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java index 19694bb1aab..b4d7537d0f0 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java @@ -128,7 +128,7 @@ public class SearchActionMediumTest { assertThat(show.isPost()).isFalse(); assertThat(show.isInternal()).isFalse(); assertThat(show.responseExampleAsString()).isNotEmpty(); - assertThat(show.params()).hasSize(26); + assertThat(show.params()).hasSize(28); } @Test @@ -347,7 +347,7 @@ public class SearchActionMediumTest { WsTester.Result result = wsTester.newGetRequest(IssuesWs.API_ENDPOINT, SearchAction.SEARCH_ACTION) .setParam("resolved", "false") - .setParam(SearchAction.PARAM_FACETS, "statuses,severities,resolutions,componentRoots,rules,components,assignees,languages") + .setParam(SearchAction.PARAM_FACETS, "statuses,severities,resolutions,componentRootUuids,rules,componentUuids,assignees,languages") .execute(); result.assertJson(this.getClass(), "display_facets.json", false); } diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionMediumTest/display_facets.json b/server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionMediumTest/display_facets.json index d49a4bd23fb..e0f4ef11229 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionMediumTest/display_facets.json +++ b/server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionMediumTest/display_facets.json @@ -40,7 +40,7 @@ ] }, { - "property": "componentRoots", + "property": "componentRootUuids", "values": [ { "val": "ABCD", @@ -58,7 +58,7 @@ ] }, { - "property": "components", + "property": "componentUuids", "values": [ { "val": "BCDE", -- 2.39.5