From 5af08756cb7d824e74295a6bdae7be8fe20537ff Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Fri, 20 Dec 2019 15:45:25 +0100 Subject: [PATCH] Fix/search 1916 (#436) (#475) * [SEARCH-1916] Modified test in order to check if empty label is inserted in json * [SEARCH-1916] Add annotation to allow empty labels in facet buckets (cherry picked from commit 21dd2fb066999f515d1028cf87d8d80fdc0e3ca6) --- .../rest/api/search/context/FacetFieldContext.java | 3 +++ .../rest/api/search/SearchQuerySerializerTests.java | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/alfresco/rest/api/search/context/FacetFieldContext.java b/src/main/java/org/alfresco/rest/api/search/context/FacetFieldContext.java index ce168c16af..82c3f3fac8 100644 --- a/src/main/java/org/alfresco/rest/api/search/context/FacetFieldContext.java +++ b/src/main/java/org/alfresco/rest/api/search/context/FacetFieldContext.java @@ -27,6 +27,8 @@ package org.alfresco.rest.api.search.context; import java.util.List; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; import org.alfresco.repo.search.impl.solr.facet.facetsresponse.GenericBucket; /** @@ -55,6 +57,7 @@ public class FacetFieldContext public static class Bucket { + @JsonInclude(JsonInclude.Include.NON_NULL) private final String label; private final String filterQuery; private final int count; diff --git a/src/test/java/org/alfresco/rest/api/search/SearchQuerySerializerTests.java b/src/test/java/org/alfresco/rest/api/search/SearchQuerySerializerTests.java index 6c936aa176..4b593eb94c 100644 --- a/src/test/java/org/alfresco/rest/api/search/SearchQuerySerializerTests.java +++ b/src/test/java/org/alfresco/rest/api/search/SearchQuerySerializerTests.java @@ -176,7 +176,11 @@ public class SearchQuerySerializerTests { ExecutionResult exec1 = new ExecutionResult(new Farmer("180"),null); - FacetFieldContext ffc = new FacetFieldContext("theLabel", Arrays.asList(new Bucket("b1", "name:b1", 23, "displayText1"), new Bucket("b2", null, 34, "displayText2"))); + FacetFieldContext ffc = new FacetFieldContext("theLabel", + Arrays.asList( + new Bucket("b1", "name:b1", 23, "displayText1"), + new Bucket("b2", null, 34, "displayText2"), + new Bucket("", null, 42, "displayText3"))); SearchContext searchContext = new SearchContext(23l,null, Arrays.asList(new FacetQueryContext("f1", "creator:bob", 15), new FacetQueryContext("f2", null, 20)), Arrays.asList(ffc), new SpellCheckContext("aFlag", Arrays.asList("bish", "bash")), null); @@ -190,6 +194,7 @@ public class SearchQuerySerializerTests assertTrue("There must 'facetsFields' json output", out.contains("\"facetsFields\":[{\"label\":\"theLabel\",\"buckets\"")); assertTrue("There must 'bucket1' json output", out.contains("{\"label\":\"b1\",\"filterQuery\":\"name:b1\",\"count\":23,\"display\":\"displayText1\"}")); assertTrue("There must 'bucket2' json output", out.contains("{\"label\":\"b2\",\"count\":34,\"display\":\"displayText2\"}")); + assertTrue("There must 'bucket3' json output", out.contains("{\"label\":\"\",\"count\":42,\"display\":\"displayText3\"}")); searchContext = new SearchContext(-1, null, null,null, null, null); coll = CollectionWithPagingInfo.asPaged(null, Arrays.asList(exec1), false, 2, null, searchContext);