Skip to content

Commit

Permalink
ALFREDAPI-531 fix facet qname splitting
Browse files Browse the repository at this point in the history
(cherry picked from commit 62f86f8)
  • Loading branch information
hechmi-dammak-xenit authored and bartvl-xenit committed Apr 4, 2024
1 parent cf576ee commit e5b3863
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 14 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
### Changed

### Fixed
* [ALFREDAPI-531](https://xenitsupport.jira.com/browse/ALFREDAPI-531): Fix facet qname splitting for dates
* [ALFREDAPI-520](https://xenitsupport.jira.com/browse/ALFREDAPI-520): Enforce encoding on bulk json responses to guarantee clean text

### Removed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,8 +248,8 @@ private Map<String, List<ScriptFacetResult>> getFacetResults(SearchParameters sp
// facetTokenName => @{http://www.alfresco.org/model/content/1.0}created
// qName => {http://www.alfresco.org/model/content/1.0}created
// 7 => {!afts}
key = key.substring(7);
String facetTokenName = key.substring(0, key.lastIndexOf(':'));
key = key.replace("{!afts}","");
String facetTokenName = key.substring(0, key.indexOf(":["));
String qName = facetTokenToQname(facetTokenName);

// Retrieve the previous facet queries
Expand All @@ -260,7 +260,7 @@ private Map<String, List<ScriptFacetResult>> getFacetResults(SearchParameters sp

// Get the handler for this qName
FacetLabelDisplayHandler handler = facetLabelDisplayHandlerRegistry.getDisplayHandler(facetTokenName);
String val = key.substring(key.indexOf('}') + key.substring(key.indexOf('}')).indexOf(':') + 1);
String val = key.substring( key.indexOf(":[") + 1);
FacetLabel facetLabel = (handler == null) ? new FacetLabel(val, val, -1) : handler.getDisplayLabel(key);

// See if we have a nice textual version of this label
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,11 @@
package eu.xenit.apix.tests.search;

import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import eu.xenit.apix.alfresco.search.SearchFacetsService;
import eu.xenit.apix.alfresco.search.SearchFacetsServiceImpl;
import eu.xenit.apix.search.FacetSearchResult;
import eu.xenit.apix.search.FacetSearchResult.FacetValue;
import eu.xenit.apix.search.SearchQuery.FacetOptions;
import eu.xenit.apix.translation.ITranslationService;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint;
import org.alfresco.repo.search.impl.solr.facet.SolrFacetHelper;
import org.alfresco.repo.search.impl.solr.facet.SolrFacetService;
Expand All @@ -34,6 +24,17 @@
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class SearchFacetServiceUnitTest {

@Autowired
Expand Down Expand Up @@ -110,7 +111,11 @@ public void initMocks() {
.thenReturn(languageFieldFacetResults);
when(resultSetMock.getFieldFacet("@{http://test.apix.xenit.eu/model/content}documentStatus"))
.thenReturn(documentStatusFieldFacetResults);
when(resultSetMock.getFacetQueries()).thenReturn(new HashMap<String, Integer>());
Map<String, Integer> facetQueries = new HashMap<>();
facetQueries.put("{!afts}@{http://www.alfresco.org/model/content/1.0}content.size:[0 TO 10240]", 1);
facetQueries.put("{!afts}@{http://www.alfresco.org/model/content/1.0}modified:[NOW/DAY-1YEAR TO NOW/DAY+1DAY]", 2);
facetQueries.put("{!afts}@{http://www.alfresco.org/model/content/1.0}created:[2020-08-31T07:00:00.000Z TO 2023-09-02T10:01:00.000Z]", 1);
when(resultSetMock.getFacetQueries()).thenReturn(facetQueries);

searchParametersMock = mock(SearchParameters.class);
List<FieldFacet> fieldFacets = new ArrayList<>();
Expand Down Expand Up @@ -145,6 +150,33 @@ public List<FacetSearchResult> initExpectedResult_for_assertThat_getFacetResults
documentStatusValues.add(draftFacetValue);
documentStatusResult.setValues(documentStatusValues);
expectedResult.add(documentStatusResult);
FacetSearchResult contentResult = new FacetSearchResult();
contentResult.setName("{http://www.alfresco.org/model/content/1.0}content.size");
List<FacetValue> contentValues = new ArrayList<>();
FacetValue contentFacetValue = new FacetValue();
contentFacetValue.setValue("[0 TO 10240]");
contentFacetValue.setCount(1);
contentValues.add(contentFacetValue);
contentResult.setValues(contentValues);
expectedResult.add(contentResult);
FacetSearchResult modifiedResult = new FacetSearchResult();
modifiedResult.setName("{http://www.alfresco.org/model/content/1.0}modified");
List<FacetValue> modifiedValues = new ArrayList<>();
FacetValue modifiedFacetValue = new FacetValue();
modifiedFacetValue.setValue("[NOW/DAY-1YEAR TO NOW/DAY+1DAY]");
modifiedFacetValue.setCount(2);
modifiedValues.add(modifiedFacetValue);
modifiedResult.setValues(modifiedValues);
expectedResult.add(modifiedResult);
FacetSearchResult createdResult = new FacetSearchResult();
createdResult.setName("{http://www.alfresco.org/model/content/1.0}created");
List<FacetValue> createdValues = new ArrayList<>();
FacetValue createdFacetValue = new FacetValue();
createdFacetValue.setValue("[2020-08-31T07:00:00.000Z TO 2023-09-02T10:01:00.000Z]");
createdFacetValue.setCount(1);
createdValues.add(createdFacetValue);
createdResult.setValues(createdValues);
expectedResult.add(createdResult);
return expectedResult;
}

Expand Down

0 comments on commit e5b3863

Please sign in to comment.