@Test public void testFacetWithParametrizedQuery() { FacetPage<ProductBean> facetPage = repo.findAllFacetQueryPopularity(3, new PageRequest(0, 10)); Assert.assertEquals(0, facetPage.getFacetFields().size()); Page<FacetQueryEntry> facets = facetPage.getFacetQueryResult(); Assert.assertEquals(1, facets.getContent().size()); Assert.assertEquals("popularity:[* TO 3]", facets.getContent().get(0).getValue()); Assert.assertEquals(3, facets.getContent().get(0).getValueCount()); }
@Test public void testFacetOnSingleField() { FacetPage<ProductBean> facetPage = repo.findAllFacetOnPopularity(new PageRequest(0, 10)); Assert.assertEquals(1, facetPage.getFacetFields().size()); Page<FacetFieldEntry> page = facetPage.getFacetResultPage(facetPage.getFacetFields().iterator().next()); Assert.assertEquals(3, page.getContent().size()); for (FacetFieldEntry entry : page) { Assert.assertEquals("popularity", entry.getField().getName()); } }
@Test public void testFacetWithDynamicPrefix() { FacetPage<ProductBean> facetPage = repo.findAllFacetOnNameWithDynamicPrefix("pro", new PageRequest(0, 10)); Assert.assertEquals(1, facetPage.getFacetFields().size()); Page<FacetFieldEntry> page = facetPage.getFacetResultPage("name"); Assert.assertEquals(1, page.getContent().size()); Assert.assertEquals("name", page.getContent().get(0).getField().getName()); Assert.assertEquals("product", page.getContent().get(0).getValue()); Assert.assertEquals(1, page.getContent().get(0).getValueCount()); }
@Test public void testFacetOnMulipleQueries() { FacetPage<ProductBean> facetPage = repo.findAllFacetQueryAvailableTrueAndAvailableFalse(new PageRequest(0, 10)); Assert.assertEquals(0, facetPage.getFacetFields().size()); Page<FacetQueryEntry> facets = facetPage.getFacetQueryResult(); Assert.assertEquals(2, facets.getContent().size()); Assert.assertEquals("inStock:true", facets.getContent().get(0).getValue()); Assert.assertEquals(3, facets.getContent().get(0).getValueCount()); Assert.assertEquals("inStock:false", facets.getContent().get(1).getValue()); Assert.assertEquals(1, facets.getContent().get(1).getValueCount()); }
@Test public void testFacetQuery() { FacetPage<Product> facetPage = repo.findProductCategoryFacets(new PageRequest(0, 100)); Assert.assertEquals(repo.findAllProducts().size(), facetPage.getNumberOfElements()); Page<FacetFieldEntry> page = facetPage.getFacetResultPage(SolrProductField.CATEGORY); Assert.assertEquals(INITIAL_CATEGORY_COUNT, page.getNumberOfElements()); for (FacetFieldEntry entry : page) { Assert.assertEquals(SolrProductField.CATEGORY.getName(), entry.getField().getName()); Assert.assertEquals(repo.findByCategory(entry.getValue()).size(), entry.getValueCount()); } }
@Test public void testFacetOnMultipleFields() { FacetPage<ProductBean> facetPage = repo.findAllFacetOnPopularityAndAvailable(new PageRequest(0, 10)); Assert.assertEquals(2, facetPage.getFacetFields().size()); Page<FacetFieldEntry> popularityPage = facetPage.getFacetResultPage(new SimpleField("popularity")); Assert.assertEquals(3, popularityPage.getContent().size()); for (FacetFieldEntry entry : popularityPage) { Assert.assertEquals("popularity", entry.getField().getName()); } Page<FacetFieldEntry> availablePage = facetPage.getFacetResultPage(new SimpleField("inStock")); Assert.assertEquals(2, availablePage.getContent().size()); for (FacetFieldEntry entry : availablePage) { Assert.assertEquals("inStock", entry.getField().getName()); } }