From d8d29f6c2fd816c51302d9f6b7b7a0315e561950 Mon Sep 17 00:00:00 2001 From: Andrei Rebegea Date: Thu, 15 Jun 2017 11:19:41 +0000 Subject: [PATCH] Merged 5.2.N (5.2.2) to HEAD (5.2) 137089 gjames: Merged searchrep (5.2.1) to 5.2.N (5.2.1) 137019 msuzuki: Search-340, added unit test to cover range start and end inclusive options git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@137604 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rest/api/search/impl/ResultMapper.java | 10 -- .../api/search/RangeResultMapperTests.java | 114 ++++++++++++------ .../rest/api/search/ResultMapperTests.java | 6 +- 3 files changed, 81 insertions(+), 49 deletions(-) diff --git a/source/java/org/alfresco/rest/api/search/impl/ResultMapper.java b/source/java/org/alfresco/rest/api/search/impl/ResultMapper.java index 1d0e7a0d32..6b5fd8d89c 100644 --- a/source/java/org/alfresco/rest/api/search/impl/ResultMapper.java +++ b/source/java/org/alfresco/rest/api/search/impl/ResultMapper.java @@ -359,16 +359,6 @@ public class ResultMapper context = new SearchContext(solrResultSet.getLastIndexedTxId(), facets, facetResults, ffcs, spellCheckContext, searchRequestContext.includeRequest()?searchQuery:null); return isNullContext(context)?null:context; } - - private boolean hasGroup(Map facetQueries, SearchQuery searchQuery) - { - for (Entry fq:facetQueries.entrySet()) - { - Optional found = searchQuery.getFacetQueries().stream().filter(facetQuery -> fq.getKey().equals(facetQuery.getLabel())).findFirst(); - return (found.isPresent() && found.get().getGroup() != null); - } - return false; - } /** * Builds a facet field from facet queries. * @param facetQueries diff --git a/source/test-java/org/alfresco/rest/api/search/RangeResultMapperTests.java b/source/test-java/org/alfresco/rest/api/search/RangeResultMapperTests.java index e6a76fdd0e..b034c7549a 100644 --- a/source/test-java/org/alfresco/rest/api/search/RangeResultMapperTests.java +++ b/source/test-java/org/alfresco/rest/api/search/RangeResultMapperTests.java @@ -35,7 +35,6 @@ import java.util.Map; import org.alfresco.repo.search.impl.solr.facet.facetsresponse.GenericBucket; import org.alfresco.repo.search.impl.solr.facet.facetsresponse.GenericFacetResponse; import org.alfresco.repo.search.impl.solr.facet.facetsresponse.RangeResultMapper; -import org.alfresco.rest.api.search.model.SearchQuery; import org.alfresco.service.cmr.search.RangeParameters; import org.junit.Test; @@ -46,74 +45,97 @@ import org.junit.Test; */ public class RangeResultMapperTests { - static Map facet = new HashMap(); - { - facet.put("start", "0"); - facet.put("end", "10"); - } @Test public void testBuildGenericBucketFromRange() throws Exception { + //=============== start bucket - GenericBucket response = queryWithInclude(null, "head"); + GenericBucket response = queryWithInclude("head", null); assertEquals("test:[0 TO 10>", response.getFilterQuery()); assertEquals("true", response.getBucketInfo().get("startInclusive")); assertEquals("false", response.getBucketInfo().get("endInclusive")); - response = queryWithInclude("outer", "head"); + response = queryWithInclude("head","outer"); + assertEquals("test:<0 TO 10>", response.getFilterQuery()); + assertEquals("false", response.getBucketInfo().get("startInclusive")); + assertEquals("false", response.getBucketInfo().get("endInclusive")); + + response = queryWithInclude("head","lower"); + assertEquals("test:[0 TO 10>", response.getFilterQuery()); + assertEquals("true", response.getBucketInfo().get("startInclusive")); + assertEquals("false", response.getBucketInfo().get("endInclusive")); + + response = queryWithInclude("head","upper","lower"); assertEquals("test:[0 TO 10]", response.getFilterQuery()); assertEquals("true", response.getBucketInfo().get("startInclusive")); - assertEquals("false", response.getBucketInfo().get("endInclusive")); + assertEquals("true", response.getBucketInfo().get("endInclusive")); - response = queryWithInclude("lower", "head"); - assertEquals("test:[0 TO 10<", response.getFilterQuery()); + response = queryWithInclude("head","edge","upper"); + assertEquals("test:[0 TO 10]", response.getFilterQuery()); assertEquals("true", response.getBucketInfo().get("startInclusive")); - assertEquals("false", response.getBucketInfo().get("endInclusive")); + assertEquals("true", response.getBucketInfo().get("endInclusive")); - response = queryWithInclude("edge", "head"); - assertEquals("test:[0 TO 10<", response.getFilterQuery()); - - response = queryWithInclude("upper", "head"); - assertEquals("test:]0 TO 10>", response.getFilterQuery()); + response = queryWithInclude("head","upper"); + assertEquals("test:<0 TO 10]", response.getFilterQuery()); assertEquals("false", response.getBucketInfo().get("startInclusive")); assertEquals("true", response.getBucketInfo().get("endInclusive")); //=============== Non start end bucket - response = queryWithInclude("lower", "body"); - assertEquals("test:[0 TO 10<", response.getFilterQuery()); - assertEquals("true", response.getBucketInfo().get("startInclusive")); - assertEquals("false", response.getBucketInfo().get("endInclusive")); - - response = queryWithInclude("upper", "body"); - assertEquals("test:]0 TO 10>", response.getFilterQuery()); - assertEquals("false", response.getBucketInfo().get("startInclusive")); - assertEquals("true", response.getBucketInfo().get("endInclusive")); - //=============== End bucket - response = queryWithInclude("lower", "tail"); + response = queryWithInclude("body","lower"); assertEquals("test:[0 TO 10>", response.getFilterQuery()); assertEquals("true", response.getBucketInfo().get("startInclusive")); assertEquals("false", response.getBucketInfo().get("endInclusive")); - - response = queryWithInclude("edge", "tail"); - assertEquals("test:]0 TO 10]", response.getFilterQuery()); + + response = queryWithInclude("body","upper"); + assertEquals("test:<0 TO 10]", response.getFilterQuery()); + assertEquals("false", response.getBucketInfo().get("startInclusive")); + assertEquals("true", response.getBucketInfo().get("endInclusive")); + //=============== End bucket + response = queryWithInclude("tail","lower"); + assertEquals("test:[0 TO 10>", response.getFilterQuery()); + assertEquals("true", response.getBucketInfo().get("startInclusive")); + assertEquals("false", response.getBucketInfo().get("endInclusive")); + + response = queryWithInclude("tail","edge"); + assertEquals("test:<0 TO 10]", response.getFilterQuery()); assertEquals("false", response.getBucketInfo().get("startInclusive")); assertEquals("true", response.getBucketInfo().get("endInclusive")); - response = queryWithInclude("upper", "tail"); - assertEquals("test:]0 TO 10]", response.getFilterQuery()); + response = queryWithInclude("tail","upper"); + assertEquals("test:<0 TO 10]", response.getFilterQuery()); + assertEquals("false", response.getBucketInfo().get("startInclusive")); + assertEquals("true", response.getBucketInfo().get("endInclusive")); + + //Before + response = queryWithInclude("head","before"); + assertEquals("test:<0 TO 10>", response.getFilterQuery()); + assertEquals("false", response.getBucketInfo().get("startInclusive")); + assertEquals("false", response.getBucketInfo().get("endInclusive")); + + response = queryWithIncludeAndOther("head","outer","before"); + assertEquals("test:<0 TO 10]", response.getFilterQuery()); + assertEquals("false", response.getBucketInfo().get("startInclusive")); + assertEquals("true", response.getBucketInfo().get("endInclusive")); + + //After + response = queryWithIncludeAndOther("head","outer","after"); + assertEquals("test:<0 TO 10]", response.getFilterQuery()); assertEquals("false", response.getBucketInfo().get("startInclusive")); assertEquals("true", response.getBucketInfo().get("endInclusive")); } - private GenericBucket queryWithInclude(String param, String bucketPosition) + private GenericBucket queryWithInclude(String bucketPosition, String ...includeParam) { List ranges = new ArrayList(); - if(param != null && !param.isEmpty()) + if(includeParam != null && includeParam.length >= 1) { List include = new ArrayList(); - include.add(param); + for(int i = 0; i < includeParam.length; i++) + { + include.add(includeParam[i]); + } ranges.add(new RangeParameters("test", "0", "10", "1", true, null, include, null, null)); } Map facet = new HashMap(); @@ -124,4 +146,24 @@ public class RangeResultMapperTests facet.put(GenericFacetResponse.END, "10"); return RangeResultMapper.buildGenericBucketFromRange("test", facet, ranges); } + private Map buildFaet(String bucketPosition) + { + Map facet = new HashMap(); + facet.put("bucketPosition", bucketPosition); + facet.put(GenericFacetResponse.LABEL, "test"); + facet.put(GenericFacetResponse.COUNT, "11"); + facet.put(GenericFacetResponse.START, "0"); + facet.put(GenericFacetResponse.END, "10"); + return facet; + } + private GenericBucket queryWithIncludeAndOther(String bucketPosition, String includeParam, String otherParam) + { + List ranges = new ArrayList(); + List include = new ArrayList(); + include.add(includeParam); + List other = new ArrayList(); + other.add(otherParam); + ranges.add(new RangeParameters("test", "0", "10", "1", true, other, include, null, null)); + return RangeResultMapper.buildGenericBucketFromRange("test", buildFaet(bucketPosition), ranges); + } } diff --git a/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java b/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java index 2dfbbe7e07..478e5955f0 100644 --- a/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java +++ b/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java @@ -491,7 +491,7 @@ public class ResultMapperTests assertEquals("[0 - 100)",rangeFacets.get(1).getBuckets().get(0).getLabel()); Object[] metrics = rangeFacets.get(1).getBuckets().get(0).getMetrics().toArray(); assertEquals("4",((SimpleMetric) metrics[0]).getValue().get("count")); - assertEquals("content.size:[0 TO 100<", rangeFacets.get(1).getBuckets().get(0).getFilterQuery()); + assertEquals("content.size:[0 TO 100>", rangeFacets.get(1).getBuckets().get(0).getFilterQuery()); assertEquals(null,rangeFacets.get(1).getBuckets().get(0).getBucketInfo().get("count")); Map facetInfo = rangeFacets.get(1).getBuckets().get(0).getBucketInfo(); assertEquals("0",facetInfo.get("start")); @@ -503,7 +503,7 @@ public class ResultMapperTests facetInfo = rangeFacets.get(1).getBuckets().get(1).getBucketInfo(); assertEquals("100",facetInfo.get("start")); assertEquals("200",facetInfo.get("end")); - assertEquals("content.size:[100 TO 200<", rangeFacets.get(1).getBuckets().get(1).getFilterQuery()); + assertEquals("content.size:[100 TO 200>", rangeFacets.get(1).getBuckets().get(1).getFilterQuery()); assertEquals(null,rangeFacets.get(1).getBuckets().get(1).getBucketInfo().get("count")); assertEquals("false",rangeFacets.get(1).getBuckets().get(0).getBucketInfo().get("endInclusive")); assertEquals("true",rangeFacets.get(1).getBuckets().get(0).getBucketInfo().get("startInclusive")); @@ -536,7 +536,7 @@ public class ResultMapperTests assertEquals("(0 - 100]",rangeFacets.get(1).getBuckets().get(0).getLabel()); Object[] metrics = rangeFacets.get(1).getBuckets().get(0).getMetrics().toArray(); assertEquals("4",((SimpleMetric) metrics[0]).getValue().get("count")); - assertEquals("content.size:]0 TO 100>", rangeFacets.get(1).getBuckets().get(0).getFilterQuery()); + assertEquals("content.size:<0 TO 100]", rangeFacets.get(1).getBuckets().get(0).getFilterQuery()); assertEquals(null,rangeFacets.get(1).getBuckets().get(0).getBucketInfo().get("count")); Map facetInfo = rangeFacets.get(1).getBuckets().get(0).getBucketInfo(); assertEquals("0",facetInfo.get("start"));