// 1 Facet with no filters at all
Map<String, Collection<FacetValue>> facets = index.search(new RuleQuery(), new QueryContext().setFacet(true)).getFacets();
assertThat(facets.keySet()).hasSize(3);
- assertThat(facets.get(RuleIndex.FACET_LANGUAGES)).hasSize(3);
- assertThat(facets.get(RuleIndex.FACET_REPOSITORIES)).hasSize(2);
- assertThat(facets.get(RuleIndex.FACET_TAGS)).hasSize(4 + numberOfSystemTags);
+ assertThat(facets.get(RuleIndex.FACET_LANGUAGES)).onProperty("key").containsOnly("cpp", "java", "cobol");
+ assertThat(facets.get(RuleIndex.FACET_REPOSITORIES)).onProperty("key").containsOnly("xoo", "foo");
+ assertThat(facets.get(RuleIndex.FACET_TAGS)).onProperty("key").containsOnly("systag1", "systag2", "T1", "T2", "T3", "T4");
// 2 Facet with a language filter
// -- lang facet should still have all language
, new QueryContext().setFacet(true));
assertThat(result.getHits()).hasSize(3);
assertThat(result.getFacets()).hasSize(3);
- assertThat(result.getFacets().get(RuleIndex.FACET_LANGUAGES)).hasSize(3);
+ assertThat(result.getFacets().get(RuleIndex.FACET_LANGUAGES)).onProperty("key").containsOnly("cpp", "java", "cobol");
// 3 facet with 2 filters
// -- lang facet for tag T2
, new QueryContext().setFacet(true));
assertThat(result.getHits()).hasSize(1);
assertThat(result.getFacets().keySet()).hasSize(3);
- assertThat(result.getFacets().get(RuleIndex.FACET_LANGUAGES)).hasSize(2); // java & cpp
- assertThat(result.getFacets().get(RuleIndex.FACET_REPOSITORIES)).hasSize(1); // foo
- assertThat(result.getFacets().get(RuleIndex.FACET_TAGS)).hasSize(2 + numberOfSystemTags); // T2 & T3 + SystemTags
+ assertThat(result.getFacets().get(RuleIndex.FACET_LANGUAGES)).onProperty("key").containsOnly("cpp", "java");
+ assertThat(result.getFacets().get(RuleIndex.FACET_REPOSITORIES)).onProperty("key").containsOnly("foo");
+ assertThat(result.getFacets().get(RuleIndex.FACET_TAGS)).onProperty("key").containsOnly("systag1", "systag2", "T2", "T3");
// 4 facet with 2 filters
// -- lang facet for tag T2
, new QueryContext().setFacet(true));
assertThat(result.getHits()).hasSize(2);
assertThat(result.getFacets().keySet()).hasSize(3);
- assertThat(result.getFacets().get(RuleIndex.FACET_LANGUAGES)).hasSize(2); // java & cpp
- assertThat(result.getFacets().get(RuleIndex.FACET_REPOSITORIES)).hasSize(2); // foo & xoo
- assertThat(result.getFacets().get(RuleIndex.FACET_TAGS)).hasSize(3 + numberOfSystemTags); // T1 & T2 & T3 + SystemTags
+ assertThat(result.getFacets().get(RuleIndex.FACET_LANGUAGES)).onProperty("key").containsOnly("cpp", "java");
+ assertThat(result.getFacets().get(RuleIndex.FACET_REPOSITORIES)).onProperty("key").containsOnly("foo", "xoo");
+ assertThat(result.getFacets().get(RuleIndex.FACET_TAGS)).onProperty("key").containsOnly("systag1", "systag2", "T1", "T2", "T3");
}
private static List<String> ruleKeys(List<Rule> rules) {