public void testBucketFacetHandlerForStrings() throws Exception {
BrowseRequest br = new BrowseRequest();
br.setCount(10);
br.setOffset(0);
BrowseSelection sel = new BrowseSelection("groups");
sel.addValue("g2");
br.addSelection(sel);
FacetSpec output = new FacetSpec();
output.setOrderBy(FacetSortSpec.OrderHitsDesc);
br.setFacetSpec("groups", output);
BrowseFacet[] answerBucketFacets = new BrowseFacet[3];
answerBucketFacets[0] = new BrowseFacet("g2", 3);
answerBucketFacets[1] = new BrowseFacet("g1", 1);
answerBucketFacets[2] = new BrowseFacet("g3", 1);
HashMap<String, List<BrowseFacet>> answer = new HashMap<String, List<BrowseFacet>>();
answer.put("groups", Arrays.asList(answerBucketFacets));
doTest(br, 3, answer, null);
br = new BrowseRequest();
br.setCount(10);
br.setOffset(0);
sel = new BrowseSelection("groups");
sel.addValue("g2");
sel.addValue("g1");
sel.setSelectionOperation(ValueOperation.ValueOperationAnd);
br.addSelection(sel);
output = new FacetSpec();
output.setOrderBy(FacetSortSpec.OrderHitsDesc);
br.setFacetSpec("groups", output);
answerBucketFacets = new BrowseFacet[2];
answerBucketFacets[0] = new BrowseFacet("g1", 1);
answerBucketFacets[1] = new BrowseFacet("g2", 1);
answer = new HashMap<String, List<BrowseFacet>>();
answer.put("groups", Arrays.asList(answerBucketFacets));
doTest(br, 1, answer, null);
br = new BrowseRequest();
br.setCount(10);
br.setOffset(0);
sel = new BrowseSelection("groups");
sel.addValue("g2");
sel.addValue("g1");
sel.setSelectionOperation(ValueOperation.ValueOperationOr);
br.addSelection(sel);
output = new FacetSpec();
output.setOrderBy(FacetSortSpec.OrderHitsDesc);
br.setFacetSpec("groups", output);