From e1d5732e25f7ed0917c59a144fd7033c4ad9cb76 Mon Sep 17 00:00:00 2001 From: Michael Suzuki Date: Fri, 7 Apr 2017 08:15:54 +0100 Subject: [PATCH 01/11] Updated test group to ASS 1, as solr 6 is required --- .../rest/search/PivotFacetedSearchTest.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/search/PivotFacetedSearchTest.java b/e2e-test/java/org/alfresco/rest/search/PivotFacetedSearchTest.java index 87f3f6e64..7bf4e1c20 100644 --- a/e2e-test/java/org/alfresco/rest/search/PivotFacetedSearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/PivotFacetedSearchTest.java @@ -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 @@ -38,8 +37,8 @@ import java.util.List; public class PivotFacetedSearchTest extends AbstractSearchTest { - @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH }) - @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH }, executionType = ExecutionType.REGRESSION, + @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH , TestGroup.ASS_1 }, executionType = ExecutionType.REGRESSION, description = "Checks errors with pivot using Search api") public void searchWithPivotingErrors() throws Exception { @@ -67,8 +66,8 @@ public class PivotFacetedSearchTest extends AbstractSearchTest .containsSummary("Pivot parameter none_like_this is does not reference a facet Field"); } - @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH }) - @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH }, executionType = ExecutionType.REGRESSION, + @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }, executionType = ExecutionType.REGRESSION, description = "Checks with pivot using Search api") public void searchWithPivoting() throws Exception { @@ -110,8 +109,8 @@ public class PivotFacetedSearchTest extends AbstractSearchTest Assert.assertTrue(bucket.getMetrics().get(0).getValue().toString().contains("{count=")); } - @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH }) - @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH }, executionType = ExecutionType.REGRESSION, + @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH , TestGroup.ASS_1}) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH , TestGroup.ASS_1}, executionType = ExecutionType.REGRESSION, description = "Checks with pivot using Search api and a label as a key") public void searchWithPivotingUsingLabel() throws Exception { From 3e0b203e402a4b1a8d118ed8a798e1cbc10a2641 Mon Sep 17 00:00:00 2001 From: Michael Suzuki Date: Fri, 7 Apr 2017 08:23:39 +0100 Subject: [PATCH 02/11] Reverted to previous commit, functionality is present in solr4 --- .../alfresco/rest/search/PivotFacetedSearchTest.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/search/PivotFacetedSearchTest.java b/e2e-test/java/org/alfresco/rest/search/PivotFacetedSearchTest.java index 7bf4e1c20..4f1a8ad09 100644 --- a/e2e-test/java/org/alfresco/rest/search/PivotFacetedSearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/PivotFacetedSearchTest.java @@ -37,8 +37,8 @@ import org.testng.annotations.Test; public class PivotFacetedSearchTest extends AbstractSearchTest { - @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }) - @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH , TestGroup.ASS_1 }, executionType = ExecutionType.REGRESSION, + @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH }, executionType = ExecutionType.REGRESSION, description = "Checks errors with pivot using Search api") public void searchWithPivotingErrors() throws Exception { @@ -66,8 +66,8 @@ public class PivotFacetedSearchTest extends AbstractSearchTest .containsSummary("Pivot parameter none_like_this is does not reference a facet Field"); } - @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }) - @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }, executionType = ExecutionType.REGRESSION, + @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH }, executionType = ExecutionType.REGRESSION, description = "Checks with pivot using Search api") public void searchWithPivoting() throws Exception { @@ -109,8 +109,8 @@ public class PivotFacetedSearchTest extends AbstractSearchTest Assert.assertTrue(bucket.getMetrics().get(0).getValue().toString().contains("{count=")); } - @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH , TestGroup.ASS_1}) - @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH , TestGroup.ASS_1}, executionType = ExecutionType.REGRESSION, + @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH }, executionType = ExecutionType.REGRESSION, description = "Checks with pivot using Search api and a label as a key") public void searchWithPivotingUsingLabel() throws Exception { From e89a6d2f87b186de3ce366f29c79ab886a2de989 Mon Sep 17 00:00:00 2001 From: "NESS\\P3700654" Date: Wed, 10 May 2017 10:06:41 +0300 Subject: [PATCH 03/11] REPO-2116 Created a new get method for Renditions(getNodeRenditionUntilTheyAreCreated), that waits for the renditions to be created. Modified 3 tests from the CreateRenditionsTests.java class (adminCanCreateRenditionToExistingNode(), userThatCreatedFileCanCreatePdfRenditionForIt(),userThatCreatedFileCanCreateDoclibRenditionForIt()) in order to pass on slower machines. --- .../org/alfresco/rest/renditions/CreateRenditionTests.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/renditions/CreateRenditionTests.java b/e2e-test/java/org/alfresco/rest/renditions/CreateRenditionTests.java index 441008d64..0a628bb0b 100644 --- a/e2e-test/java/org/alfresco/rest/renditions/CreateRenditionTests.java +++ b/e2e-test/java/org/alfresco/rest/renditions/CreateRenditionTests.java @@ -52,7 +52,7 @@ 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).getNodeRenditionUntilTheyAreCreated("pdf") .assertThat().field("status").is("CREATED"); } @@ -65,7 +65,7 @@ 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).getNodeRenditionUntilTheyAreCreated("pdf") .assertThat().field("status").is("CREATED"); } @@ -89,7 +89,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).getNodeRenditionUntilTheyAreCreated("doclib") .assertThat().field("status").is("CREATED"); } } From 3c76b1c9a180ff273ebfe64875970c5686a79dff Mon Sep 17 00:00:00 2001 From: Michael Suzuki Date: Mon, 15 May 2017 14:29:56 +0100 Subject: [PATCH 04/11] Search-340, adding end 2 end test for search range api --- .../rest/search/AbstractSearchTest.java | 9 +- .../rest/search/FacetRangeSearchTest.java | 168 ++++++++++++++++++ 2 files changed, 174 insertions(+), 3 deletions(-) create mode 100644 e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java diff --git a/e2e-test/java/org/alfresco/rest/search/AbstractSearchTest.java b/e2e-test/java/org/alfresco/rest/search/AbstractSearchTest.java index 2bb43effc..d4a4896b6 100644 --- a/e2e-test/java/org/alfresco/rest/search/AbstractSearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/AbstractSearchTest.java @@ -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"); + } } diff --git a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java new file mode 100644 index 000000000..ee76feb21 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java @@ -0,0 +1,168 @@ +/* + * 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 . + */ +package org.alfresco.rest.search; + +import java.util.Map; + +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestRequestRangeModel; +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 Test + * @author Michael Suzuki + * + */ +public class FacetRangeSearchTest extends AbstractSearchTest +{ + + @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(); + + RestRequestRangeModel facetRangeModel = new RestRequestRangeModel(); + query.setRange(facetRangeModel); + + SearchResponse response = query(query); + + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() + .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "field")); + facetRangeModel.setField("content.size"); + + query.setRange(facetRangeModel); + response = query(query); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() + .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "start")); + facetRangeModel.setStart("0"); + + query.setRange(facetRangeModel); + response = query(query); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() + .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "end")); + facetRangeModel.setEnd("400"); + query.setRange(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*"); + + RestRequestRangeModel facetRangeModel = new RestRequestRangeModel(); + facetRangeModel.setField("content.size"); + facetRangeModel.setStart("0"); + facetRangeModel.setEnd("500"); + facetRangeModel.setGap(200); + query.setRange(facetRangeModel); + 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)"); + bucket.getMetrics().get(0).assertThat().field("value").is("{count=4}"); + Map info = (Map) bucket.getFacetInfo(); + Assert.assertEquals(info.get("from"),"0"); + Assert.assertEquals(info.get("to"),"200"); + Assert.assertEquals(info.get("count"),"4"); + + bucket = facetResponseModel.getBuckets().get(1); + bucket.assertThat().field("label").is("200 - 400"); + bucket.assertThat().field("filterQuery").is("content.size:(200 TO 400)"); + bucket.getMetrics().get(0).assertThat().field("value").is("{count=4}"); + info = (Map) bucket.getFacetInfo(); + Assert.assertEquals(info.get("from"),"200"); + Assert.assertEquals(info.get("to"),"400"); + Assert.assertEquals(info.get("count"),"4"); + + bucket = facetResponseModel.getBuckets().get(2); + bucket.assertThat().field("label").is("400 - 600"); + bucket.assertThat().field("filterQuery").is("content.size:(400 TO 600)"); + bucket.getMetrics().get(0).assertThat().field("value").is("{count=7}"); + info = (Map) bucket.getFacetInfo(); + Assert.assertEquals(info.get("from"),"400"); + Assert.assertEquals(info.get("to"),"600"); + Assert.assertEquals(info.get("count"),"7"); + } + + @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*"); + + RestRequestRangeModel facetRangeModel = new RestRequestRangeModel(); + facetRangeModel.setField("content.size"); + facetRangeModel.setStart("0"); + facetRangeModel.setEnd("500"); + facetRangeModel.setGap(200); + facetRangeModel.setHardend(true); + query.setRange(facetRangeModel); + 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)"); + bucket.getMetrics().get(0).assertThat().field("value").is("{count=4}"); + Map info = (Map) bucket.getFacetInfo(); + Assert.assertEquals(info.get("from"),"0"); + Assert.assertEquals(info.get("to"),"200"); + Assert.assertEquals(info.get("count"),"4"); + + bucket = facetResponseModel.getBuckets().get(1); + bucket.assertThat().field("label").is("200 - 400"); + bucket.assertThat().field("filterQuery").is("content.size:(200 TO 400)"); + bucket.getMetrics().get(0).assertThat().field("value").is("{count=4}"); + info = (Map) bucket.getFacetInfo(); + Assert.assertEquals(info.get("from"),"200"); + Assert.assertEquals(info.get("to"),"400"); + Assert.assertEquals(info.get("count"),"4"); + + bucket = facetResponseModel.getBuckets().get(2); + bucket.assertThat().field("label").is("400 - 500"); + bucket.assertThat().field("filterQuery").is("content.size:(400 TO 500)"); + bucket.getMetrics().get(0).assertThat().field("value").is("{count=3}"); + info = (Map) bucket.getFacetInfo(); + Assert.assertEquals(info.get("from"),"400"); + Assert.assertEquals(info.get("to"),"500"); + Assert.assertEquals(info.get("count"),"3"); + } + +} From 3bcaab7b92f576245240ddedf8f24fdffb6cdc97 Mon Sep 17 00:00:00 2001 From: "NESS\\P3700654" Date: Tue, 16 May 2017 14:16:57 +0300 Subject: [PATCH 05/11] Renamed getNodeRenditionUntilTheyAreCreated to getNodeRenditionUntilIsCreated, Added fixed status to the Renditions tests that were failing. --- .../rest/renditions/CreateRenditionTests.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/renditions/CreateRenditionTests.java b/e2e-test/java/org/alfresco/rest/renditions/CreateRenditionTests.java index 0a628bb0b..d5b58b4e0 100644 --- a/e2e-test/java/org/alfresco/rest/renditions/CreateRenditionTests.java +++ b/e2e-test/java/org/alfresco/rest/renditions/CreateRenditionTests.java @@ -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).getNodeRenditionUntilTheyAreCreated("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).getNodeRenditionUntilTheyAreCreated("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).getNodeRenditionUntilTheyAreCreated("doclib") + restClient.withCoreAPI().usingNode(document).getNodeRenditionUntilIsCreated("doclib") .assertThat().field("status").is("CREATED"); } } From bb0e31c0c4b4fecc131e25ff202cf9721b93e759 Mon Sep 17 00:00:00 2001 From: Michael Suzuki Date: Tue, 16 May 2017 16:45:10 +0100 Subject: [PATCH 06/11] Search-340, added test to cover date range search --- .../rest/search/FacetRangeSearchTest.java | 66 +++++++++++++++++-- 1 file changed, 62 insertions(+), 4 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java index ee76feb21..b3f887d8f 100644 --- a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java @@ -30,7 +30,30 @@ import org.testng.Assert; import org.testng.annotations.Test; /** - * Faceted Range Search 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 * */ @@ -69,7 +92,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "gap")); - facetRangeModel.setGap(100); + facetRangeModel.setGap("100"); } @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_1 }) @@ -83,7 +106,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest facetRangeModel.setField("content.size"); facetRangeModel.setStart("0"); facetRangeModel.setEnd("500"); - facetRangeModel.setGap(200); + facetRangeModel.setGap("200"); query.setRange(facetRangeModel); SearchResponse response = query(query); response.assertThat().entriesListIsNotEmpty(); @@ -129,7 +152,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest facetRangeModel.setField("content.size"); facetRangeModel.setStart("0"); facetRangeModel.setEnd("500"); - facetRangeModel.setGap(200); + facetRangeModel.setGap("200"); facetRangeModel.setHardend(true); query.setRange(facetRangeModel); SearchResponse response = query(query); @@ -164,5 +187,40 @@ public class FacetRangeSearchTest extends AbstractSearchTest Assert.assertEquals(info.get("to"),"500"); Assert.assertEquals(info.get("count"),"3"); } + @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*"); + RestRequestRangeModel facetRangeModel = new RestRequestRangeModel(); + facetRangeModel.setField("created"); + facetRangeModel.setStart("2015-09-29T10:45:15.729Z"); + facetRangeModel.setEnd("2016-09-29T10:45:15.729Z"); + facetRangeModel.setGap("+280DAY"); + query.setRange(facetRangeModel); + 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 info = (Map) bucket.getFacetInfo(); + Assert.assertEquals(info.get("from"),"2015-09-29T10:45:15.729Z"); + Assert.assertEquals(info.get("to"),"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) bucket.getFacetInfo(); + Assert.assertEquals(info.get("from"),"2016-07-05T10:45:15.729Z"); + Assert.assertEquals(info.get("to"),"2017-04-11T10:45:15.729Z"); + Assert.assertEquals(info.get("count"),"0"); + } } From 0137a119f5af5121433e262a35fabd0502f90e07 Mon Sep 17 00:00:00 2001 From: Michael Suzuki Date: Wed, 17 May 2017 11:33:31 +0100 Subject: [PATCH 07/11] Search-340, renamed facetInfo to bucketInfo --- .../rest/search/FacetRangeSearchTest.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java index b3f887d8f..4d191480f 100644 --- a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java @@ -117,7 +117,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest bucket.assertThat().field("label").is("0 - 200"); bucket.assertThat().field("filterQuery").is("content.size:(0 TO 200)"); bucket.getMetrics().get(0).assertThat().field("value").is("{count=4}"); - Map info = (Map) bucket.getFacetInfo(); + Map info = (Map) bucket.getBucketInfo(); Assert.assertEquals(info.get("from"),"0"); Assert.assertEquals(info.get("to"),"200"); Assert.assertEquals(info.get("count"),"4"); @@ -126,7 +126,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest bucket.assertThat().field("label").is("200 - 400"); bucket.assertThat().field("filterQuery").is("content.size:(200 TO 400)"); bucket.getMetrics().get(0).assertThat().field("value").is("{count=4}"); - info = (Map) bucket.getFacetInfo(); + info = (Map) bucket.getBucketInfo(); Assert.assertEquals(info.get("from"),"200"); Assert.assertEquals(info.get("to"),"400"); Assert.assertEquals(info.get("count"),"4"); @@ -135,7 +135,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest bucket.assertThat().field("label").is("400 - 600"); bucket.assertThat().field("filterQuery").is("content.size:(400 TO 600)"); bucket.getMetrics().get(0).assertThat().field("value").is("{count=7}"); - info = (Map) bucket.getFacetInfo(); + info = (Map) bucket.getBucketInfo(); Assert.assertEquals(info.get("from"),"400"); Assert.assertEquals(info.get("to"),"600"); Assert.assertEquals(info.get("count"),"7"); @@ -164,7 +164,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest bucket.assertThat().field("label").is("0 - 200"); bucket.assertThat().field("filterQuery").is("content.size:(0 TO 200)"); bucket.getMetrics().get(0).assertThat().field("value").is("{count=4}"); - Map info = (Map) bucket.getFacetInfo(); + Map info = (Map) bucket.getBucketInfo(); Assert.assertEquals(info.get("from"),"0"); Assert.assertEquals(info.get("to"),"200"); Assert.assertEquals(info.get("count"),"4"); @@ -173,7 +173,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest bucket.assertThat().field("label").is("200 - 400"); bucket.assertThat().field("filterQuery").is("content.size:(200 TO 400)"); bucket.getMetrics().get(0).assertThat().field("value").is("{count=4}"); - info = (Map) bucket.getFacetInfo(); + info = (Map) bucket.getBucketInfo(); Assert.assertEquals(info.get("from"),"200"); Assert.assertEquals(info.get("to"),"400"); Assert.assertEquals(info.get("count"),"4"); @@ -182,7 +182,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest bucket.assertThat().field("label").is("400 - 500"); bucket.assertThat().field("filterQuery").is("content.size:(400 TO 500)"); bucket.getMetrics().get(0).assertThat().field("value").is("{count=3}"); - info = (Map) bucket.getFacetInfo(); + info = (Map) bucket.getBucketInfo(); Assert.assertEquals(info.get("from"),"400"); Assert.assertEquals(info.get("to"),"500"); Assert.assertEquals(info.get("count"),"3"); @@ -209,7 +209,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest 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 info = (Map) bucket.getFacetInfo(); + Map info = (Map) bucket.getBucketInfo(); Assert.assertEquals(info.get("from"),"2015-09-29T10:45:15.729Z"); Assert.assertEquals(info.get("to"),"2016-07-05T10:45:15.729Z"); Assert.assertEquals(info.get("count"),"1"); @@ -218,7 +218,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest 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) bucket.getFacetInfo(); + info = (Map) bucket.getBucketInfo(); Assert.assertEquals(info.get("from"),"2016-07-05T10:45:15.729Z"); Assert.assertEquals(info.get("to"),"2017-04-11T10:45:15.729Z"); Assert.assertEquals(info.get("count"),"0"); From 3a235fcb371281d31573eb3783b2312c3f04db76 Mon Sep 17 00:00:00 2001 From: Michael Suzuki Date: Wed, 17 May 2017 15:49:57 +0100 Subject: [PATCH 08/11] Search-340, amend from range to ranges --- .../rest/search/FacetRangeSearchTest.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java index 4d191480f..c8c98f4ea 100644 --- a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java @@ -21,7 +21,7 @@ package org.alfresco.rest.search; import java.util.Map; import org.alfresco.rest.model.RestErrorModel; -import org.alfresco.rest.model.RestRequestRangeModel; +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; @@ -67,8 +67,8 @@ public class FacetRangeSearchTest extends AbstractSearchTest { SearchRequest query = carsQuery(); - RestRequestRangeModel facetRangeModel = new RestRequestRangeModel(); - query.setRange(facetRangeModel); + RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); + query.setRanges(facetRangeModel); SearchResponse response = query(query); @@ -76,18 +76,18 @@ public class FacetRangeSearchTest extends AbstractSearchTest .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "field")); facetRangeModel.setField("content.size"); - query.setRange(facetRangeModel); + query.setRanges(facetRangeModel); response = query(query); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "start")); facetRangeModel.setStart("0"); - query.setRange(facetRangeModel); + query.setRanges(facetRangeModel); response = query(query); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "end")); facetRangeModel.setEnd("400"); - query.setRange(facetRangeModel); + query.setRanges(facetRangeModel); response = query(query); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "gap")); @@ -102,12 +102,12 @@ public class FacetRangeSearchTest extends AbstractSearchTest { SearchRequest query = createQuery("A*"); - RestRequestRangeModel facetRangeModel = new RestRequestRangeModel(); + RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); facetRangeModel.setField("content.size"); facetRangeModel.setStart("0"); facetRangeModel.setEnd("500"); facetRangeModel.setGap("200"); - query.setRange(facetRangeModel); + query.setRanges(facetRangeModel); SearchResponse response = query(query); response.assertThat().entriesListIsNotEmpty(); response.getContext().assertThat().field("facets").isNotEmpty(); @@ -148,13 +148,13 @@ public class FacetRangeSearchTest extends AbstractSearchTest { SearchRequest query = createQuery("A*"); - RestRequestRangeModel facetRangeModel = new RestRequestRangeModel(); + RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); facetRangeModel.setField("content.size"); facetRangeModel.setStart("0"); facetRangeModel.setEnd("500"); facetRangeModel.setGap("200"); facetRangeModel.setHardend(true); - query.setRange(facetRangeModel); + query.setRanges(facetRangeModel); SearchResponse response = query(query); response.assertThat().entriesListIsNotEmpty(); response.getContext().assertThat().field("facets").isNotEmpty(); @@ -194,12 +194,12 @@ public class FacetRangeSearchTest extends AbstractSearchTest { SearchRequest query = createQuery("name:A*"); - RestRequestRangeModel facetRangeModel = new RestRequestRangeModel(); + 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"); - query.setRange(facetRangeModel); + query.setRanges(facetRangeModel); SearchResponse response = query(query); response.assertThat().entriesListIsNotEmpty(); response.getContext().assertThat().field("facets").isNotEmpty(); From 058fe354f7155a4b9bee92aa822147fd2bbfdf35 Mon Sep 17 00:00:00 2001 From: Michael Suzuki Date: Thu, 18 May 2017 18:28:54 +0100 Subject: [PATCH 09/11] Search-340, updated to verify range handling multiple range facets --- .../rest/search/FacetRangeSearchTest.java | 58 +++++++++++++++---- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java index c8c98f4ea..e8e0c9de2 100644 --- a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java @@ -18,6 +18,10 @@ */ package org.alfresco.rest.search; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; import java.util.Map; import org.alfresco.rest.model.RestErrorModel; @@ -66,28 +70,32 @@ public class FacetRangeSearchTest extends AbstractSearchTest public void checkingFacetsMandatoryErrorMessages()throws Exception { SearchRequest query = carsQuery(); - + List ranges = new ArrayList(); RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); - query.setRanges(facetRangeModel); - + 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"); - - query.setRanges(facetRangeModel); + 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"); - - query.setRanges(facetRangeModel); + 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(facetRangeModel); + query.setRanges(ranges); + ranges.clear(); + ranges.add(facetRangeModel); response = query(query); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "gap")); @@ -107,7 +115,9 @@ public class FacetRangeSearchTest extends AbstractSearchTest facetRangeModel.setStart("0"); facetRangeModel.setEnd("500"); facetRangeModel.setGap("200"); - query.setRanges(facetRangeModel); + List ranges = new ArrayList(); + ranges.add(facetRangeModel); + query.setRanges(ranges); SearchResponse response = query(query); response.assertThat().entriesListIsNotEmpty(); response.getContext().assertThat().field("facets").isNotEmpty(); @@ -154,7 +164,9 @@ public class FacetRangeSearchTest extends AbstractSearchTest facetRangeModel.setEnd("500"); facetRangeModel.setGap("200"); facetRangeModel.setHardend(true); - query.setRanges(facetRangeModel); + List ranges = new ArrayList(); + ranges.add(facetRangeModel); + query.setRanges(ranges); SearchResponse response = query(query); response.assertThat().entriesListIsNotEmpty(); response.getContext().assertThat().field("facets").isNotEmpty(); @@ -199,7 +211,9 @@ public class FacetRangeSearchTest extends AbstractSearchTest facetRangeModel.setStart("2015-09-29T10:45:15.729Z"); facetRangeModel.setEnd("2016-09-29T10:45:15.729Z"); facetRangeModel.setGap("+280DAY"); - query.setRanges(facetRangeModel); + List ranges = new ArrayList(); + ranges.add(facetRangeModel); + query.setRanges(ranges); SearchResponse response = query(query); response.assertThat().entriesListIsNotEmpty(); response.getContext().assertThat().field("facets").isNotEmpty(); @@ -223,4 +237,26 @@ public class FacetRangeSearchTest extends AbstractSearchTest Assert.assertEquals(info.get("to"),"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 ranges = new ArrayList(); + 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); + } } From a0765d0700a080accb10a320d105f9866c26ccfa Mon Sep 17 00:00:00 2001 From: Michael Suzuki Date: Fri, 19 May 2017 15:03:11 +0100 Subject: [PATCH 10/11] Fix failing test --- .../rest/search/FacetRangeSearchTest.java | 2 -- .../java/org/alfresco/rest/search/SearchTest.java | 15 ++++----------- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java index e8e0c9de2..24f5a5fa4 100644 --- a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java @@ -19,8 +19,6 @@ package org.alfresco.rest.search; import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Map; diff --git a/e2e-test/java/org/alfresco/rest/search/SearchTest.java b/e2e-test/java/org/alfresco/rest/search/SearchTest.java index 58f5a4199..5f038dfc6 100644 --- a/e2e-test/java/org/alfresco/rest/search/SearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/SearchTest.java @@ -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}) From ea016eee9d83d4a827ef8ef766dbbec18593d066 Mon Sep 17 00:00:00 2001 From: Michael Suzuki Date: Mon, 22 May 2017 14:40:21 +0100 Subject: [PATCH 11/11] Added test to cover facet fields search test --- .../rest/search/FacetRangeSearchTest.java | 1 - .../rest/search/FacetedSearchTest.java | 91 ++++++++++++++----- 2 files changed, 67 insertions(+), 25 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java index 24f5a5fa4..5dd9c34b1 100644 --- a/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/FacetRangeSearchTest.java @@ -61,7 +61,6 @@ import org.testng.annotations.Test; */ public class FacetRangeSearchTest extends AbstractSearchTest { - @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") diff --git a/e2e-test/java/org/alfresco/rest/search/FacetedSearchTest.java b/e2e-test/java/org/alfresco/rest/search/FacetedSearchTest.java index ae8a7fcbd..c1770dc61 100644 --- a/e2e-test/java/org/alfresco/rest/search/FacetedSearchTest.java +++ b/e2e-test/java/org/alfresco/rest/search/FacetedSearchTest.java @@ -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(); + Listfacets = new ArrayList(); + 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); + } + + }