mirror of
https://github.com/Alfresco/SearchServices.git
synced 2026-09-16 18:12:56 +00:00
Adding test for grouping facets
This commit is contained in:
@@ -24,6 +24,7 @@ import java.util.List;
|
||||
import org.alfresco.utility.model.TestGroup;
|
||||
import org.alfresco.utility.testrail.ExecutionType;
|
||||
import org.alfresco.utility.testrail.annotation.TestRail;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
@@ -67,25 +68,20 @@ public class FacetedSearchTest extends AbstractSearchTest
|
||||
* "facetQueries": [
|
||||
* {
|
||||
* "count": 61,
|
||||
* "label": "small"
|
||||
* "label": "small",
|
||||
* "filterQuery": "content.size:[o TO 102400]"
|
||||
* },
|
||||
* {
|
||||
* "count": 0,
|
||||
* "label": "large"
|
||||
* "label": "large",
|
||||
* "filterQuery": "content.size:[o TO 102400]"
|
||||
* },
|
||||
* {
|
||||
* "count": 0,
|
||||
* "label": "medium"
|
||||
* "label": "medium",
|
||||
* "filterQuery": "content.size:[o TO 102400]"
|
||||
* }
|
||||
* ],
|
||||
* //Added below as part of SEARCH-374
|
||||
* "facetsFields": [
|
||||
* { "label": "woof",
|
||||
* "buckets": [
|
||||
* { "label": "CreatedThisYear", "count": 75, "filterQuery": "created:2017"},
|
||||
* { "label": "CreatedLastYear", "count": 75, "filterQuery": "created:2016"}
|
||||
* ]
|
||||
* }
|
||||
* ]
|
||||
* }
|
||||
* }}
|
||||
* @throws Exception
|
||||
@@ -122,6 +118,83 @@ public class FacetedSearchTest extends AbstractSearchTest
|
||||
response.getContext().getFacetQueries().get(2).assertThat().field("label").contains("medium")
|
||||
.and().field("count").isLessThan(1)
|
||||
.and().field("filterQuery").is("content.size:[102400 TO 1048576]");
|
||||
//We don't expect to see the FacetFields if group is being used.
|
||||
Assert.assertNull(response.getContext().getFacetsFields());
|
||||
Assert.assertNull(response.getContext().getFacetIntervals());
|
||||
}
|
||||
/**
|
||||
* * Perform a group by faceting, below test groups the facet by group name foo.
|
||||
* {
|
||||
* "query": {
|
||||
* "query": "cars",
|
||||
* "language": "afts"
|
||||
* },
|
||||
* "facetQueries": [
|
||||
* {"query": "content.size:[o TO 102400]", "label": "small","group":"foo"},
|
||||
* {"query": "content.size:[102400 TO 1048576]", "label": "medium","group":"foo"},
|
||||
* {"query": "content.size:[1048576 TO 16777216]", "label": "large","group":"foo"}
|
||||
* ],
|
||||
* "facetFields": {"facets": [{"field": "'content.size'"}]}
|
||||
* }
|
||||
*
|
||||
* Expected response
|
||||
* {"list": {
|
||||
* "entries": [... All the results],
|
||||
* "pagination": {
|
||||
* "maxItems": 100,
|
||||
* "hasMoreItems": false,
|
||||
* "totalItems": 61,
|
||||
* "count": 61,
|
||||
* "skipCount": 0
|
||||
* },
|
||||
* "context": {
|
||||
* "consistency": {"lastTxId": 512},
|
||||
* //Added below as part of SEARCH-374
|
||||
* "facetsFields": [
|
||||
* { "label": "foo",
|
||||
* "buckets": [
|
||||
* { "label": "small", "count": 61, "filterQuery": "content.size:[o TO 102400]"},
|
||||
* { "label": "large", "count": 0, "filterQuery": "content.size:[1048576 TO 16777216]"},
|
||||
* { "label": "medium", "count": 61, "filterQuery": "content.size:[102400 TO 1048576]"}
|
||||
* ]
|
||||
* }
|
||||
* }
|
||||
* }}
|
||||
* @throws Exception
|
||||
*/
|
||||
public void searchFacetGroup() throws Exception
|
||||
{
|
||||
SearchRequest query = new SearchRequest();
|
||||
RestRequestQueryModel queryReq = new RestRequestQueryModel();
|
||||
queryReq.setQuery("cars");
|
||||
query.setQuery(queryReq);
|
||||
|
||||
List<FacetQuery> facets = new ArrayList<FacetQuery>();
|
||||
facets.add(new FacetQuery("content.size:[0 TO 102400]", "small", "foo"));
|
||||
facets.add(new FacetQuery("content.size:[102400 TO 1048576]", "medium","foo"));
|
||||
facets.add(new FacetQuery("content.size:[1048576 TO 16777216]", "large","foo"));
|
||||
query.setFacetQueries(facets);
|
||||
|
||||
RestRequestFacetFieldsModel facetFields = new RestRequestFacetFieldsModel();
|
||||
List<Object> list = new ArrayList<Object>();
|
||||
list.add(new FacetFieldQuery("'content.size'"));
|
||||
facetFields.setFacets(list);
|
||||
|
||||
query.setFacetFields(facetFields);
|
||||
|
||||
SearchResponse response = query(query);
|
||||
//We don't expect to see the FacetQueries if group is being used.
|
||||
Assert.assertTrue(response.getContext().getFacetQueries().isEmpty());
|
||||
//Validate the facet field structure is correct.
|
||||
Assert.assertFalse(response.getContext().getFacetsFields().isEmpty());
|
||||
RestResultBucketsModel bucket = response.getContext().getFacetsFields().get(0);
|
||||
bucket.assertThat().field("label").isNotEmpty();
|
||||
bucket.assertThat().field("count").isNotEmpty();
|
||||
bucket.assertThat().field("filterQuery").isNotEmpty();
|
||||
Assert.assertEquals(bucket.getLabel(), "foo");
|
||||
bucket.assertThat().field("label").contains("small").and().field("filterQuery").is("content.size:[0 TO 102400]");
|
||||
bucket.assertThat().field("label").contains("medium").and().field("filterQuery").is("content.size:[1048576 TO 16777216]");
|
||||
bucket.assertThat().field("label").contains("large").and().field("filterQuery").is("content.size:[102400 TO 1048576]");
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user