mirror of
https://github.com/Alfresco/SearchServices.git
synced 2026-09-16 18:12:56 +00:00
Search-427, merge changes from head and add missing facet fields e2e tests
This commit is contained in:
@@ -11,6 +11,7 @@ import org.alfresco.utility.model.SiteModel;
|
||||
import org.alfresco.utility.model.TestGroup;
|
||||
import org.alfresco.utility.model.UserModel;
|
||||
import org.alfresco.utility.report.Bug;
|
||||
import org.alfresco.utility.report.Bug.Status;
|
||||
import org.alfresco.utility.testrail.ExecutionType;
|
||||
import org.alfresco.utility.testrail.annotation.TestRail;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@@ -43,7 +44,7 @@ public class CreateRenditionTests extends RestTest
|
||||
document = dataContent.usingUser(user).usingSite(site).createContent(DocumentType.TEXT_PLAIN);
|
||||
}
|
||||
|
||||
@Bug(id = "REPO-2042", description = "Should fail only on MAC OS System and Linux" )
|
||||
@Bug(id = "REPO-2042", description = "Should fail only on MAC OS System and Linux", status = Status.FIXED )
|
||||
@TestRail(section = { TestGroup.REST_API, TestGroup.RENDITIONS }, executionType = ExecutionType.SANITY,
|
||||
description = "Verify admin user creates rendition with Rest API and status code is 202")
|
||||
@Test(groups = { TestGroup.REST_API, TestGroup.RENDITIONS, TestGroup.SANITY })
|
||||
@@ -52,11 +53,11 @@ public class CreateRenditionTests extends RestTest
|
||||
restClient.authenticateUser(adminUser).withCoreAPI().usingNode(document).createNodeRendition("pdf");
|
||||
restClient.assertStatusCodeIs(HttpStatus.ACCEPTED);
|
||||
|
||||
restClient.withCoreAPI().usingNode(document).getNodeRendition("pdf")
|
||||
restClient.withCoreAPI().usingNode(document).getNodeRenditionUntilIsCreated("pdf")
|
||||
.assertThat().field("status").is("CREATED");
|
||||
}
|
||||
|
||||
@Bug(id = "REPO-2042", description = "Should fail only on MAC OS System and Linux" )
|
||||
@Bug(id = "REPO-2042", description = "Should fail only on MAC OS System and Linux", status = Status.FIXED )
|
||||
@TestRail(section = { TestGroup.REST_API, TestGroup.RENDITIONS }, executionType = ExecutionType.SANITY,
|
||||
description = "Verify user that created the document can also creates 'pdf' rendition for it with Rest API and status code is 202")
|
||||
@Test(groups = { TestGroup.REST_API, TestGroup.RENDITIONS, TestGroup.SANITY })
|
||||
@@ -65,11 +66,11 @@ public class CreateRenditionTests extends RestTest
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(document).createNodeRendition("pdf");
|
||||
restClient.assertStatusCodeIs(HttpStatus.ACCEPTED);
|
||||
|
||||
restClient.withCoreAPI().usingNode(document).getNodeRendition("pdf")
|
||||
restClient.withCoreAPI().usingNode(document).getNodeRenditionUntilIsCreated("pdf")
|
||||
.assertThat().field("status").is("CREATED");
|
||||
}
|
||||
|
||||
@Bug(id = "REPO-2042", description = "Should fail only on MAC OS System and Linux" )
|
||||
@Bug(id = "REPO-2042", description = "Should fail only on MAC OS System and Linux", status = Status.FIXED )
|
||||
@TestRail(section = { TestGroup.REST_API, TestGroup.RENDITIONS }, executionType = ExecutionType.SANITY,
|
||||
description = "Verify user that created the document can also creates 'doclib' rendition for it with Rest API and status code is 202")
|
||||
@Test(groups = { TestGroup.REST_API, TestGroup.RENDITIONS, TestGroup.SANITY })
|
||||
@@ -89,7 +90,7 @@ public class CreateRenditionTests extends RestTest
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(document).createNodeRendition("doclib");
|
||||
restClient.assertStatusCodeIs(HttpStatus.ACCEPTED);
|
||||
|
||||
restClient.withCoreAPI().usingNode(document).getNodeRendition("doclib")
|
||||
restClient.withCoreAPI().usingNode(document).getNodeRenditionUntilIsCreated("doclib")
|
||||
.assertThat().field("status").is("CREATED");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,13 +111,16 @@ public class AbstractSearchTest extends RestTest
|
||||
{
|
||||
return restClient.authenticateUser(dataUser.getAdminUser()).withSearchAPI().search(query);
|
||||
}
|
||||
|
||||
protected SearchRequest carsQuery()
|
||||
protected SearchRequest createQuery(String term)
|
||||
{
|
||||
SearchRequest query = new SearchRequest();
|
||||
RestRequestQueryModel queryReq = new RestRequestQueryModel();
|
||||
queryReq.setQuery("cars");
|
||||
queryReq.setQuery(term);
|
||||
query.setQuery(queryReq);
|
||||
return query;
|
||||
}
|
||||
protected SearchRequest carsQuery()
|
||||
{
|
||||
return createQuery("cars");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,269 @@
|
||||
/*
|
||||
* Copyright (C) 2017 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.alfresco.rest.search;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.rest.model.RestErrorModel;
|
||||
import org.alfresco.rest.model.RestRequestRangesModel;
|
||||
import org.alfresco.utility.model.TestGroup;
|
||||
import org.alfresco.utility.testrail.ExecutionType;
|
||||
import org.alfresco.utility.testrail.annotation.TestRail;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Faceted Range Search Query for numeric range
|
||||
* {
|
||||
* "query": {
|
||||
* "query": "name:A*"
|
||||
* },
|
||||
* "range": {
|
||||
* "field": "content.size",
|
||||
* "start": "0",
|
||||
* "end": "400",
|
||||
* "gap": "100"
|
||||
* }
|
||||
* }
|
||||
* Date range query:
|
||||
* {
|
||||
* "query": {
|
||||
* "query": "name:A*"
|
||||
* },
|
||||
* "range": {
|
||||
* "field": "created",
|
||||
* "start": "2015-09-29T10:45:15.729Z",
|
||||
* "end": "2016-09-29T10:45:15.729Z",
|
||||
* "gap": "+100DAY"
|
||||
* }
|
||||
* }
|
||||
* @author Michael Suzuki
|
||||
*
|
||||
*/
|
||||
public class FacetRangeSearchTest extends AbstractSearchTest
|
||||
{
|
||||
@Override
|
||||
public void dataPreparation() throws Exception
|
||||
{
|
||||
//Skip setup
|
||||
}
|
||||
@Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 })
|
||||
@TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }, executionType = ExecutionType.REGRESSION,
|
||||
description = "Check facet intervals mandatory fields")
|
||||
public void checkingFacetsMandatoryErrorMessages()throws Exception
|
||||
{
|
||||
SearchRequest query = carsQuery();
|
||||
List<RestRequestRangesModel> ranges = new ArrayList<RestRequestRangesModel>();
|
||||
RestRequestRangesModel facetRangeModel = new RestRequestRangesModel();
|
||||
ranges.add(facetRangeModel);
|
||||
query.setRanges(ranges);
|
||||
SearchResponse response = query(query);
|
||||
|
||||
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
|
||||
.containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "field"));
|
||||
ranges.clear();
|
||||
facetRangeModel.setField("content.size");
|
||||
ranges.add(facetRangeModel);
|
||||
query.setRanges(ranges);
|
||||
response = query(query);
|
||||
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
|
||||
.containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "start"));
|
||||
facetRangeModel.setStart("0");
|
||||
ranges.clear();
|
||||
ranges.add(facetRangeModel);
|
||||
query.setRanges(ranges);
|
||||
response = query(query);
|
||||
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
|
||||
.containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "end"));
|
||||
facetRangeModel.setEnd("400");
|
||||
query.setRanges(ranges);
|
||||
ranges.clear();
|
||||
ranges.add(facetRangeModel);
|
||||
response = query(query);
|
||||
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
|
||||
.containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "gap"));
|
||||
|
||||
facetRangeModel.setGap("100");
|
||||
}
|
||||
|
||||
@Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 })
|
||||
@TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }, executionType = ExecutionType.REGRESSION,
|
||||
description = "Check basic facet range search api")
|
||||
public void searchWithRange()throws Exception
|
||||
{
|
||||
SearchRequest query = createQuery("A*");
|
||||
|
||||
RestRequestRangesModel facetRangeModel = new RestRequestRangesModel();
|
||||
facetRangeModel.setField("content.size");
|
||||
facetRangeModel.setStart("0");
|
||||
facetRangeModel.setEnd("500");
|
||||
facetRangeModel.setGap("200");
|
||||
List<RestRequestRangesModel> ranges = new ArrayList<RestRequestRangesModel>();
|
||||
ranges.add(facetRangeModel);
|
||||
query.setRanges(ranges);
|
||||
SearchResponse response = query(query);
|
||||
response.assertThat().entriesListIsNotEmpty();
|
||||
response.getContext().assertThat().field("facets").isNotEmpty();
|
||||
RestGenericFacetResponseModel facetResponseModel = response.getContext().getFacets().get(0);
|
||||
|
||||
RestGenericBucketModel bucket = facetResponseModel.getBuckets().get(0);
|
||||
bucket.assertThat().field("label").is("0 - 200");
|
||||
bucket.assertThat().field("filterQuery").is("content.size:(0 TO 200)");
|
||||
Map<String,String> metric = (Map<String, String>) bucket.getMetrics().get(0).getValue();
|
||||
Assert.assertTrue(new Integer(metric.get("count")) > 4);
|
||||
Map<String, String> info = (Map<String, String>) bucket.getBucketInfo();
|
||||
Assert.assertEquals(info.get("start"),"0");
|
||||
Assert.assertEquals(info.get("end"),"200");
|
||||
Assert.assertTrue(!info.get("count").isEmpty());
|
||||
|
||||
bucket = facetResponseModel.getBuckets().get(1);
|
||||
bucket.assertThat().field("label").is("200 - 400");
|
||||
bucket.assertThat().field("filterQuery").is("content.size:(200 TO 400)");
|
||||
metric = (Map<String, String>) bucket.getMetrics().get(0).getValue();
|
||||
Integer count = new Integer(metric.get("count"));
|
||||
Assert.assertTrue(count >= 4);
|
||||
info = (Map<String, String>) bucket.getBucketInfo();
|
||||
Assert.assertEquals(info.get("start"),"200");
|
||||
Assert.assertEquals(info.get("end"),"400");
|
||||
|
||||
bucket = facetResponseModel.getBuckets().get(2);
|
||||
bucket.assertThat().field("label").is("400 - 600");
|
||||
bucket.assertThat().field("filterQuery").is("content.size:(400 TO 600)");
|
||||
metric = (Map<String, String>) bucket.getMetrics().get(0).getValue();
|
||||
Assert.assertTrue(new Integer(metric.get("count")) >= 7);
|
||||
info = (Map<String, String>) bucket.getBucketInfo();
|
||||
Assert.assertEquals(info.get("start"),"400");
|
||||
Assert.assertEquals(info.get("end"),"600");
|
||||
}
|
||||
|
||||
@Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 })
|
||||
@TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }, executionType = ExecutionType.REGRESSION,
|
||||
description = "Check date facet intervals search api")
|
||||
public void searchWithRangeHardend()throws Exception
|
||||
{
|
||||
SearchRequest query = createQuery("A*");
|
||||
|
||||
RestRequestRangesModel facetRangeModel = new RestRequestRangesModel();
|
||||
facetRangeModel.setField("content.size");
|
||||
facetRangeModel.setStart("0");
|
||||
facetRangeModel.setEnd("500");
|
||||
facetRangeModel.setGap("200");
|
||||
facetRangeModel.setHardend(true);
|
||||
List<RestRequestRangesModel> ranges = new ArrayList<RestRequestRangesModel>();
|
||||
ranges.add(facetRangeModel);
|
||||
query.setRanges(ranges);
|
||||
SearchResponse response = query(query);
|
||||
response.assertThat().entriesListIsNotEmpty();
|
||||
response.getContext().assertThat().field("facets").isNotEmpty();
|
||||
RestGenericFacetResponseModel facetResponseModel = response.getContext().getFacets().get(0);
|
||||
|
||||
RestGenericBucketModel bucket = facetResponseModel.getBuckets().get(0);
|
||||
bucket.assertThat().field("label").is("0 - 200");
|
||||
bucket.assertThat().field("filterQuery").is("content.size:(0 TO 200)");
|
||||
Map<String,String> metric = (Map<String, String>) bucket.getMetrics().get(0).getValue();
|
||||
Assert.assertTrue(new Integer(metric.get("count")) >= 4);
|
||||
Map<String, String> info = (Map<String, String>) bucket.getBucketInfo();
|
||||
Assert.assertEquals(info.get("start"),"0");
|
||||
Assert.assertEquals(info.get("end"),"200");
|
||||
Assert.assertTrue(!info.get("count").isEmpty());
|
||||
|
||||
bucket = facetResponseModel.getBuckets().get(1);
|
||||
bucket.assertThat().field("label").is("200 - 400");
|
||||
bucket.assertThat().field("filterQuery").is("content.size:(200 TO 400)");
|
||||
info = (Map<String, String>) bucket.getBucketInfo();
|
||||
Assert.assertEquals(info.get("start"),"200");
|
||||
Assert.assertEquals(info.get("end"),"400");
|
||||
metric = (Map<String, String>) bucket.getMetrics().get(0).getValue();
|
||||
Assert.assertTrue(new Integer(metric.get("count")) >= 4);
|
||||
Assert.assertTrue(!info.get("count").isEmpty());
|
||||
|
||||
bucket = facetResponseModel.getBuckets().get(2);
|
||||
bucket.assertThat().field("label").is("400 - 500");
|
||||
bucket.assertThat().field("filterQuery").is("content.size:(400 TO 500)");
|
||||
metric = (Map<String, String>) bucket.getMetrics().get(0).getValue();
|
||||
Assert.assertTrue(new Integer(metric.get("count")) >= 3);
|
||||
info = (Map<String, String>) bucket.getBucketInfo();
|
||||
Assert.assertEquals(info.get("start"),"400");
|
||||
Assert.assertEquals(info.get("end"),"500");
|
||||
Assert.assertTrue(!info.get("count").isEmpty());
|
||||
}
|
||||
@Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 })
|
||||
@TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }, executionType = ExecutionType.REGRESSION,
|
||||
description = "Check date facet intervals search api")
|
||||
public void searchDateRange()throws Exception
|
||||
{
|
||||
SearchRequest query = createQuery("name:A*");
|
||||
|
||||
RestRequestRangesModel facetRangeModel = new RestRequestRangesModel();
|
||||
facetRangeModel.setField("created");
|
||||
facetRangeModel.setStart("2015-09-29T10:45:15.729Z");
|
||||
facetRangeModel.setEnd("2016-09-29T10:45:15.729Z");
|
||||
facetRangeModel.setGap("+280DAY");
|
||||
List<RestRequestRangesModel> ranges = new ArrayList<RestRequestRangesModel>();
|
||||
ranges.add(facetRangeModel);
|
||||
query.setRanges(ranges);
|
||||
SearchResponse response = query(query);
|
||||
response.assertThat().entriesListIsNotEmpty();
|
||||
response.getContext().assertThat().field("facets").isNotEmpty();
|
||||
RestGenericFacetResponseModel facetResponseModel = response.getContext().getFacets().get(0);
|
||||
|
||||
RestGenericBucketModel bucket = facetResponseModel.getBuckets().get(0);
|
||||
bucket.assertThat().field("label").is("2015-09-29T10:45:15.729Z - 2016-07-05T10:45:15.729Z");
|
||||
bucket.assertThat().field("filterQuery").is("created:(2015-09-29T10:45:15.729Z TO 2016-07-05T10:45:15.729Z)");
|
||||
bucket.getMetrics().get(0).assertThat().field("value").is("{count=1}");
|
||||
Map<String, String> info = (Map<String, String>) bucket.getBucketInfo();
|
||||
Assert.assertEquals(info.get("start"),"2015-09-29T10:45:15.729Z");
|
||||
Assert.assertEquals(info.get("end"),"2016-07-05T10:45:15.729Z");
|
||||
Assert.assertEquals(info.get("count"),"1");
|
||||
|
||||
bucket = facetResponseModel.getBuckets().get(1);
|
||||
bucket.assertThat().field("label").is("2016-07-05T10:45:15.729Z - 2017-04-11T10:45:15.729Z");
|
||||
bucket.assertThat().field("filterQuery").is("created:(2016-07-05T10:45:15.729Z TO 2017-04-11T10:45:15.729Z)");
|
||||
bucket.getMetrics().get(0).assertThat().field("value").is("{count=0}");
|
||||
info = (Map<String, String>) bucket.getBucketInfo();
|
||||
Assert.assertEquals(info.get("start"),"2016-07-05T10:45:15.729Z");
|
||||
Assert.assertEquals(info.get("end"),"2017-04-11T10:45:15.729Z");
|
||||
Assert.assertEquals(info.get("count"),"0");
|
||||
}
|
||||
|
||||
@Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 })
|
||||
@TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }, executionType = ExecutionType.REGRESSION,
|
||||
description = "Check date facet intervals search api")
|
||||
public void searchDateAndSizeRanges()throws Exception
|
||||
{
|
||||
SearchRequest query = createQuery("name:A*");
|
||||
List<RestRequestRangesModel> ranges = new ArrayList<RestRequestRangesModel>();
|
||||
RestRequestRangesModel facetRangeModel = new RestRequestRangesModel();
|
||||
facetRangeModel.setField("created");
|
||||
facetRangeModel.setStart("2015-09-29T10:45:15.729Z");
|
||||
facetRangeModel.setEnd("2016-09-29T10:45:15.729Z");
|
||||
facetRangeModel.setGap("+280DAY");
|
||||
ranges.add(facetRangeModel);
|
||||
RestRequestRangesModel facetCountRangeModel = new RestRequestRangesModel();
|
||||
facetCountRangeModel.setField("content.size");
|
||||
facetCountRangeModel.setStart("0");
|
||||
facetCountRangeModel.setEnd("500");
|
||||
facetCountRangeModel.setGap("200");
|
||||
ranges.add(facetCountRangeModel);
|
||||
query.setRanges(ranges);
|
||||
}
|
||||
}
|
||||
@@ -64,30 +64,32 @@ public class FacetedSearchTest extends AbstractSearchTest
|
||||
* "count": 61,
|
||||
* "skipCount": 0
|
||||
* },
|
||||
* "context": {
|
||||
* "consistency": {"lastTxId": 512},
|
||||
* "facetQueries": [
|
||||
* "facetsFields": [
|
||||
* {
|
||||
* "type": "query",
|
||||
* "label": "foo",
|
||||
* "buckets": [
|
||||
* {
|
||||
* "count": 61,
|
||||
* "label": "small",
|
||||
* "filterQuery": "content.size:[o TO 102400]"
|
||||
* "label": "small",
|
||||
* "filterQuery": "content.size:[0 TO 102400]",
|
||||
* "display": 1
|
||||
* },
|
||||
* {
|
||||
* "count": 0,
|
||||
* "label": "large",
|
||||
* "filterQuery": "content.size:[o TO 102400]"
|
||||
* "label": "large",
|
||||
* "filterQuery": "content.size:[1048576 TO 16777216]",
|
||||
* "metrics": [
|
||||
* {
|
||||
* "type": "count",
|
||||
* "value": {
|
||||
* "count": 0
|
||||
* }
|
||||
* }
|
||||
* ]
|
||||
* },
|
||||
* {
|
||||
* "count": 0,
|
||||
* "label": "medium",
|
||||
* "filterQuery": "content.size:[o TO 102400]"
|
||||
* }
|
||||
* ]
|
||||
* }
|
||||
* }}
|
||||
* @throws Exception
|
||||
*/
|
||||
public void searchWithFaceting() throws Exception
|
||||
public void searchWithQueryFaceting() throws Exception
|
||||
{
|
||||
SearchRequest query = new SearchRequest();
|
||||
RestRequestQueryModel queryReq = new RestRequestQueryModel();
|
||||
@@ -154,7 +156,7 @@ public class FacetedSearchTest extends AbstractSearchTest
|
||||
* "context": {
|
||||
* "consistency": {"lastTxId": 512},
|
||||
* //Added below as part of SEARCH-374
|
||||
* "facetsFields": [
|
||||
* "facets": [
|
||||
* { "label": "foo",
|
||||
* "buckets": [
|
||||
* { "label": "small", "count": 61, "filterQuery": "content.size:[o TO 102400]"},
|
||||
@@ -168,7 +170,7 @@ public class FacetedSearchTest extends AbstractSearchTest
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public void searchFacetGroup() throws Exception
|
||||
public void searchQueryFacetingWithGroup() throws Exception
|
||||
{
|
||||
SearchRequest query = new SearchRequest();
|
||||
RestRequestQueryModel queryReq = new RestRequestQueryModel();
|
||||
@@ -191,13 +193,15 @@ public class FacetedSearchTest extends AbstractSearchTest
|
||||
//We don't expect to see the FacetQueries if group is being used.
|
||||
Assert.assertTrue(response.getContext().getFacetQueries() == null);
|
||||
//Validate the facet field structure is correct.
|
||||
Assert.assertFalse(response.getContext().getFacetsFields().isEmpty());
|
||||
Assert.assertEquals(response.getContext().getFacetsFields().get(0).getLabel(), "foo");
|
||||
FacetFieldBucket bucket = response.getContext().getFacetsFields().get(0).getBuckets().get(0);
|
||||
Assert.assertFalse(response.getContext().getFacets().isEmpty());
|
||||
Assert.assertEquals(response.getContext().getFacets().get(0).getLabel(), "foo");
|
||||
|
||||
RestGenericBucketModel bucket = response.getContext().getFacets().get(0).getBuckets().get(0);
|
||||
bucket.assertThat().field("label").isNotEmpty();
|
||||
bucket.assertThat().field("count").isNotEmpty();
|
||||
Assert.assertEquals( bucket.getMetrics().get(0).getType(), "count");
|
||||
Assert.assertNotEquals( bucket.getMetrics().get(0).getValue(), "");
|
||||
bucket.assertThat().field("filterQuery").isNotEmpty();
|
||||
response.getContext().getFacetsFields().get(0).getBuckets().forEach(action -> {
|
||||
response.getContext().getFacets().get(0).getBuckets().forEach(action -> {
|
||||
switch (action.getLabel())
|
||||
{
|
||||
case "small":
|
||||
@@ -217,4 +221,43 @@ public class FacetedSearchTest extends AbstractSearchTest
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
/**
|
||||
* {
|
||||
* "query": {
|
||||
* "query": "*"
|
||||
* },
|
||||
* "facetFields": {
|
||||
* "facets": [{"field": "cm:mimetype"},{"field": "modifier"}]
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
public void searchWithFactedFields() throws Exception
|
||||
{
|
||||
SearchRequest query = new SearchRequest();
|
||||
RestRequestQueryModel queryReq = new RestRequestQueryModel();
|
||||
queryReq.setQuery("*");
|
||||
query.setQuery(queryReq);
|
||||
RestRequestFacetFieldsModel facetFields = new RestRequestFacetFieldsModel();
|
||||
List<RestRequestFacetFieldModel>facets = new ArrayList<RestRequestFacetFieldModel>();
|
||||
facets.add(new RestRequestFacetFieldModel("cm:mimetype"));
|
||||
facets.add(new RestRequestFacetFieldModel("modifier"));
|
||||
facetFields.setFacets(facets);
|
||||
query.setFacetFields(facetFields);
|
||||
SearchResponse response = query(query);
|
||||
Assert.assertFalse(response.getContext().getFacetsFields().isEmpty());
|
||||
Assert.assertNull(response.getContext().getFacetQueries());
|
||||
Assert.assertNull(response.getContext().getFacets());
|
||||
RestResultBucketsModel model = response.getContext().getFacetsFields().get(0);
|
||||
Assert.assertEquals(model.getLabel(), "modifier");
|
||||
|
||||
model.assertThat().field("label").is("modifier");
|
||||
FacetFieldBucket bucket1 = model.getBuckets().get(0);
|
||||
bucket1.assertThat().field("label").is("System");
|
||||
bucket1.assertThat().field("display").is("System");
|
||||
bucket1.assertThat().field("filterQuery").is("modifier:System");
|
||||
bucket1.assertThat().field("count").is(684);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -18,18 +18,17 @@
|
||||
*/
|
||||
package org.alfresco.rest.search;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.alfresco.rest.model.RestErrorModel;
|
||||
import org.alfresco.utility.model.TestGroup;
|
||||
import org.alfresco.utility.testrail.ExecutionType;
|
||||
import org.alfresco.utility.testrail.annotation.TestRail;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.testng.Assert;
|
||||
import org.testng.TestException;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Faceted search test.
|
||||
* @author Gethin James
|
||||
|
||||
@@ -24,6 +24,8 @@ import org.alfresco.utility.testrail.annotation.TestRail;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
||||
/**
|
||||
* Search end point Public API test.
|
||||
* @author Michael Suzuki
|
||||
@@ -34,23 +36,14 @@ public class SearchTest extends AbstractSearchTest
|
||||
@Test(groups={TestGroup.SEARCH, TestGroup.REST_API})
|
||||
public void searchOnIndexedData() throws Exception
|
||||
{
|
||||
SearchResponse nodes = query("fox");
|
||||
SearchResponse nodes = query("ipsum");
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
nodes.assertThat().entriesListIsNotEmpty();
|
||||
|
||||
SearchNodeModel entity = nodes.getEntryByIndex(0);
|
||||
entity.assertThat().field("search").contains("score");
|
||||
entity.getSearch().assertThat().field("score").isNotEmpty();
|
||||
entity.assertThat().field("name").contains("pangram.txt");
|
||||
|
||||
nodes = query("car");
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
entity = nodes.getEntryByIndex(0);
|
||||
|
||||
nodes.assertThat().entriesListIsNotEmpty();
|
||||
entity.assertThat().field("search").contains("score");
|
||||
entity.getSearch().assertThat().field("score").isNotEmpty();
|
||||
entity.assertThat().field("name").contains("cars.txt");
|
||||
Assert.assertEquals("Project Overview.ppt",entity.getName());
|
||||
}
|
||||
|
||||
@Test(groups={TestGroup.SEARCH,TestGroup.REST_API})
|
||||
|
||||
Reference in New Issue
Block a user