Skip to content

Commit

Permalink
SONAR-12499 - Increase the size of security standard facets returned …
Browse files Browse the repository at this point in the history
…in issue search
  • Loading branch information
leo-geoffroy-sonarsource authored and sonartech committed Apr 1, 2022
1 parent 113b243 commit 965034a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
import org.sonar.server.es.StickyFacetBuilder;
import org.sonar.server.es.newindex.DefaultIndexSettings;
import org.sonar.server.es.textsearch.JavaTokenizer;
import org.sonar.server.security.SecurityStandards;

import static com.google.common.base.Preconditions.checkArgument;
import static java.lang.Boolean.FALSE;
Expand Down Expand Up @@ -506,7 +507,7 @@ FACET_DEFAULT_SIZE, filterSecurityCategories(),
Collection<String> categories = query.getSonarsourceSecurity();
aggregations.put(FACET_SONARSOURCE_SECURITY,
stickyFacetBuilder.buildStickyFacet(FIELD_RULE_SONARSOURCE_SECURITY, FACET_SONARSOURCE_SECURITY,
FACET_DEFAULT_SIZE, filterSecurityCategories(),
SecurityStandards.SQCategory.values().length, filterSecurityCategories(),
(categories == null) ? (new String[0]) : categories.toArray()));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,15 @@

import com.google.common.collect.ImmutableList;
import com.google.common.collect.Sets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import org.assertj.core.api.Assertions;
import org.junit.Rule;
import org.junit.Test;
import org.sonar.api.impl.utils.AlwaysIncreasingSystem2;
Expand All @@ -40,6 +45,7 @@
import org.sonar.server.es.SearchIdResult;
import org.sonar.server.es.SearchOptions;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
import org.sonar.server.security.SecurityStandards;

import static com.google.common.collect.ImmutableSet.of;
import static java.util.Arrays.asList;
Expand Down Expand Up @@ -505,6 +511,25 @@ public void search_by_security_sonarsource_return_vulnerabilities_and_hotspots_o
assertThat(results.getUuids()).containsOnly(rule1.getUuid(), rule3.getUuid());
}

@Test
public void search_by_security_sonarsource_return_complete_list_of_facets() {

List<RuleDefinitionDto> rules = new ArrayList<>();

//Creation of one rule for each standard security category defined (except other)
for (Map.Entry<SecurityStandards.SQCategory, Set<String>> sqCategorySetEntry : SecurityStandards.CWES_BY_SQ_CATEGORY.entrySet()) {
rules.add(createRule(setSecurityStandards(of("cwe:" + sqCategorySetEntry.getValue().iterator().next())), r -> r.setType(SECURITY_HOTSPOT)));
}
index();

RuleQuery query = new RuleQuery();
SearchIdResult<String> results = underTest.search(query, new SearchOptions().addFacets("sonarsourceSecurity"));

assertThat(results.getFacets().get("sonarsourceSecurity"))
.as("It should have as many facets returned as there are rules defined, and it is not truncated")
.hasSize(rules.size());
}

@Test
public void compare_to_another_profile() {
String xoo = "xoo";
Expand Down

0 comments on commit 965034a

Please sign in to comment.