Procházet zdrojové kódy

SONAR-12499 - Increase the size of security standard facets returned in issue search

tags/9.4.0.54424
Léo Geoffroy před 2 roky
rodič
revize
965034a2fb

+ 2
- 1
server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndex.java Zobrazit soubor

import org.sonar.server.es.StickyFacetBuilder; import org.sonar.server.es.StickyFacetBuilder;
import org.sonar.server.es.newindex.DefaultIndexSettings; import org.sonar.server.es.newindex.DefaultIndexSettings;
import org.sonar.server.es.textsearch.JavaTokenizer; import org.sonar.server.es.textsearch.JavaTokenizer;
import org.sonar.server.security.SecurityStandards;


import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static java.lang.Boolean.FALSE; import static java.lang.Boolean.FALSE;
Collection<String> categories = query.getSonarsourceSecurity(); Collection<String> categories = query.getSonarsourceSecurity();
aggregations.put(FACET_SONARSOURCE_SECURITY, aggregations.put(FACET_SONARSOURCE_SECURITY,
stickyFacetBuilder.buildStickyFacet(FIELD_RULE_SONARSOURCE_SECURITY, 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())); (categories == null) ? (new String[0]) : categories.toArray()));
} }
} }

+ 25
- 0
server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexTest.java Zobrazit soubor



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


import static com.google.common.collect.ImmutableSet.of; import static com.google.common.collect.ImmutableSet.of;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
assertThat(results.getUuids()).containsOnly(rule1.getUuid(), rule3.getUuid()); 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 @Test
public void compare_to_another_profile() { public void compare_to_another_profile() {
String xoo = "xoo"; String xoo = "xoo";

Načítá se…
Zrušit
Uložit