diff --git a/e2e-test/src/test/java/org/alfresco/service/search/rest/search/AbstractSearchTest.java b/e2e-test/src/test/java/org/alfresco/service/search/rest/search/AbstractSearchTest.java index ed3baba94..9b85e5c8d 100644 --- a/e2e-test/src/test/java/org/alfresco/service/search/rest/search/AbstractSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/service/search/rest/search/AbstractSearchTest.java @@ -141,7 +141,7 @@ public class AbstractSearchTest extends RestTest * @return {@link SearchResponse} response. * */ - protected SearchResponse query(SearchRequest query) throws Exception + protected SearchResponse query(SearchRequest query) { try { diff --git a/e2e-test/src/test/java/org/alfresco/service/search/rest/search/FacetRangeSearchTest.java b/e2e-test/src/test/java/org/alfresco/service/search/rest/search/FacetRangeSearchTest.java index 60d4a151c..30d534cc5 100644 --- a/e2e-test/src/test/java/org/alfresco/service/search/rest/search/FacetRangeSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/service/search/rest/search/FacetRangeSearchTest.java @@ -20,6 +20,7 @@ package org.alfresco.service.search.rest.search; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; +import static org.testng.Assert.assertEquals; import java.util.ArrayList; import java.util.List; @@ -27,7 +28,6 @@ import java.util.Map; import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestRequestRangesModel; -import org.alfresco.service.search.rest.search.AbstractSearchTest; import org.alfresco.rest.search.RestGenericBucketModel; import org.alfresco.rest.search.RestGenericFacetResponseModel; import org.alfresco.rest.search.SearchRequest; @@ -67,68 +67,66 @@ import org.testng.annotations.Test; * @author Michael Suzuki * */ -@SuppressWarnings("unchecked") 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 + description = "Check facet intervals mandatory fields") + public void checkingFacetsMandatoryErrorMessages() { SearchRequest query = carsQuery(); - List ranges = new ArrayList(); + List ranges = new ArrayList<>(); RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); ranges.add(facetRangeModel); query.setRanges(ranges); query(query); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() - .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "field")); + .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "field")); ranges.clear(); facetRangeModel.setField("content.size"); ranges.add(facetRangeModel); query.setRanges(ranges); query(query); - + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() - .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "start")); + .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "start")); facetRangeModel.setStart("0"); ranges.clear(); ranges.add(facetRangeModel); query.setRanges(ranges); - + query(query); - + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() - .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "end")); + .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "end")); facetRangeModel.setEnd("400"); query.setRanges(ranges); ranges.clear(); ranges.add(facetRangeModel); - + query(query); - + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() - .containsSummary(String.format(RestErrorModel.MANDATORY_PARAM, "gap")); - + .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 + description = "Check basic facet range search api") + public void searchWithRange() { - SearchRequest query = createQuery("A*"); + SearchRequest query = createQuery("* AND SITE:'" + siteModel.getId() + "'"); RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); facetRangeModel.setField("content.size"); facetRangeModel.setStart("0"); - facetRangeModel.setEnd("500"); - facetRangeModel.setGap("200"); - List ranges = new ArrayList(); + facetRangeModel.setEnd("200"); + facetRangeModel.setGap("20"); + List ranges = new ArrayList<>(); ranges.add(facetRangeModel); query.setRanges(ranges); SearchResponse response = query(query); @@ -137,55 +135,53 @@ public class FacetRangeSearchTest extends AbstractSearchTest 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.assertThat().field("label").is("[20 - 40)"); + bucket.assertThat().field("filterQuery").is("content.size:[\"20\" TO \"40\">"); Map metric = (Map) bucket.getMetrics().get(0).getValue(); - Assert.assertTrue(Integer.valueOf(metric.get("count")) >= 4); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 2, "Unexpected count for first bucket."); Map info = (Map) bucket.getBucketInfo(); - Assert.assertEquals(info.get("start"),"0"); - Assert.assertEquals(info.get("end"),"200"); + assertEquals(info.get("start"),"20"); + assertEquals(info.get("end"),"40"); Assert.assertNull(info.get("count")); - Assert.assertEquals(info.get("startInclusive"),"true"); - Assert.assertEquals(info.get("endInclusive"),"false"); - + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"false"); + bucket = facetResponseModel.getBuckets().get(1); - bucket.assertThat().field("label").is("[200 - 400)"); - bucket.assertThat().field("filterQuery").is("content.size:[\"200\" TO \"400\">"); + bucket.assertThat().field("label").is("[40 - 120)"); + bucket.assertThat().field("filterQuery").is("content.size:[\"40\" TO \"120\">"); metric = (Map) bucket.getMetrics().get(0).getValue(); - Integer count = Integer.valueOf(metric.get("count")); - Assert.assertTrue(count >= 4); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 1, "Unexpected count for second bucket."); info = (Map) bucket.getBucketInfo(); - Assert.assertEquals(info.get("start"),"200"); - Assert.assertEquals(info.get("end"),"400"); - Assert.assertEquals(info.get("startInclusive"),"true"); - Assert.assertEquals(info.get("endInclusive"),"false"); - + assertEquals(info.get("start"),"40"); + assertEquals(info.get("end"),"120"); + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"false"); + bucket = facetResponseModel.getBuckets().get(2); - bucket.assertThat().field("label").is("[400 - 600]"); - bucket.assertThat().field("filterQuery").is("content.size:[\"400\" TO \"600\"]"); - metric = (Map) bucket.getMetrics().get(0).getValue(); - Assert.assertTrue(Integer.valueOf(metric.get("count")) >= 7); + bucket.assertThat().field("label").is("[120 - 200]"); + bucket.assertThat().field("filterQuery").is("content.size:[\"120\" TO \"200\"]"); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 1, "Unexpected count for third bucket."); info = (Map) bucket.getBucketInfo(); - Assert.assertEquals(info.get("start"),"400"); - Assert.assertEquals(info.get("end"),"600"); - Assert.assertEquals(info.get("startInclusive"),"true"); - Assert.assertEquals(info.get("endInclusive"),"true"); + assertEquals(info.get("start"),"120"); + assertEquals(info.get("end"),"200"); + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"true"); } @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 + description = "Check date facet intervals search api") + public void searchWithRangeHardend() { - SearchRequest query = createQuery("A*"); + SearchRequest query = createQuery("* AND SITE:'" + siteModel.getId() + "'"); RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); facetRangeModel.setField("content.size"); facetRangeModel.setStart("0"); - facetRangeModel.setEnd("500"); - facetRangeModel.setGap("200"); + facetRangeModel.setEnd("200"); + facetRangeModel.setGap("20"); facetRangeModel.setHardend(true); - List ranges = new ArrayList(); + List ranges = new ArrayList<>(); ranges.add(facetRangeModel); query.setRanges(ranges); SearchResponse response = query(query); @@ -194,45 +190,47 @@ public class FacetRangeSearchTest extends AbstractSearchTest 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.assertThat().field("label").is("[20 - 40)"); + bucket.assertThat().field("filterQuery").is("content.size:[\"20\" TO \"40\">"); Map metric = (Map) bucket.getMetrics().get(0).getValue(); - Assert.assertTrue(Integer.valueOf(metric.get("count")) >= 4); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 2, "Unexpected count for first bucket."); Map info = (Map) bucket.getBucketInfo(); - Assert.assertEquals(info.get("start"),"0"); - Assert.assertEquals(info.get("end"),"200"); - Assert.assertEquals(info.get("startInclusive"),"true"); - Assert.assertEquals(info.get("endInclusive"),"false"); + assertEquals(info.get("start"),"20"); + assertEquals(info.get("end"),"40"); + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"false"); Assert.assertNull(info.get("count")); - + bucket = facetResponseModel.getBuckets().get(1); - bucket.assertThat().field("label").is("[200 - 400)"); - bucket.assertThat().field("filterQuery").is("content.size:[\"200\" TO \"400\">"); + bucket.assertThat().field("label").is("[40 - 120)"); + bucket.assertThat().field("filterQuery").is("content.size:[\"40\" TO \"120\">"); info = (Map) bucket.getBucketInfo(); - Assert.assertEquals(info.get("start"),"200"); - Assert.assertEquals(info.get("end"),"400"); + assertEquals(info.get("start"),"40"); + assertEquals(info.get("end"),"120"); metric = (Map) bucket.getMetrics().get(0).getValue(); - Assert.assertTrue(Integer.valueOf(metric.get("count")) >= 4); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 1, "Unexpected count for second bucket."); Assert.assertNull(info.get("count")); - Assert.assertEquals(info.get("startInclusive"),"true"); - Assert.assertEquals(info.get("endInclusive"),"false"); - + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"false"); + bucket = facetResponseModel.getBuckets().get(2); - bucket.assertThat().field("label").is("[400 - 500]"); - bucket.assertThat().field("filterQuery").is("content.size:[\"400\" TO \"500\"]"); + bucket.assertThat().field("label").is("[120 - 200]"); + bucket.assertThat().field("filterQuery").is("content.size:[\"120\" TO \"200\"]"); metric = (Map) bucket.getMetrics().get(0).getValue(); - Assert.assertTrue(Integer.valueOf(metric.get("count")) >= 3); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 1, "Unexpected count for third bucket."); info = (Map) bucket.getBucketInfo(); - Assert.assertEquals(info.get("start"),"400"); - Assert.assertEquals(info.get("end"),"500"); + assertEquals(info.get("start"),"120"); + assertEquals(info.get("end"),"200"); Assert.assertNull(info.get("count")); - Assert.assertEquals(info.get("startInclusive"),"true"); - Assert.assertEquals(info.get("endInclusive"),"true"); + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"true"); } + + /** This test relies on a document created in 2015 existing, probably part of the sample site. */ @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }) @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }, executionType = ExecutionType.REGRESSION, - description = "Check date facet intervals search api") - public void searchDateRange()throws Exception + description = "Check date facet intervals search api") + public void searchDateRange() { SearchRequest query = createQuery("name:A*"); @@ -241,7 +239,7 @@ public class FacetRangeSearchTest extends AbstractSearchTest facetRangeModel.setStart("2015-09-29T10:45:15.729Z"); facetRangeModel.setEnd("2016-09-29T10:45:15.729Z"); facetRangeModel.setGap("+280DAY"); - List ranges = new ArrayList(); + List ranges = new ArrayList<>(); ranges.add(facetRangeModel); query.setRanges(ranges); SearchResponse response = query(query); @@ -251,26 +249,26 @@ public class FacetRangeSearchTest extends AbstractSearchTest List buckets = facetResponseModel.getBuckets(); assertThat(buckets.size(),is(1)); - + RestGenericBucketModel bucket = buckets.get(0); bucket.assertThat().field("label").is("[2015-09-29T10:45:15.729Z - 2017-04-11T10:45:15.729Z]"); bucket.assertThat().field("filterQuery").is("created:[\"2015-09-29T10:45:15.729Z\" TO \"2017-04-11T10:45:15.729Z\"]"); bucket.getMetrics().get(0).assertThat().field("value").is("{count=1}"); Map info = (Map) bucket.getBucketInfo(); - Assert.assertEquals(info.get("start"),"2015-09-29T10:45:15.729Z"); - Assert.assertEquals(info.get("end"),"2017-04-11T10:45:15.729Z"); + assertEquals(info.get("start"),"2015-09-29T10:45:15.729Z"); + assertEquals(info.get("end"),"2017-04-11T10:45:15.729Z"); Assert.assertNull(info.get("count"),"1"); - Assert.assertEquals(info.get("startInclusive"),"true"); - Assert.assertEquals(info.get("endInclusive"),"true"); + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"true"); } - + @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 + description = "Check date facet intervals search api") + public void searchDateAndSizeRanges() { - SearchRequest query = createQuery("name:A*"); - List ranges = new ArrayList(); + SearchRequest query = createQuery("* AND SITE:'" + siteModel.getId() + "'"); + List ranges = new ArrayList<>(); RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); facetRangeModel.setField("created"); facetRangeModel.setStart("2015-09-29T10:45:15.729Z"); @@ -285,23 +283,23 @@ public class FacetRangeSearchTest extends AbstractSearchTest ranges.add(facetCountRangeModel); query.setRanges(ranges); } - + @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 searchWithRangeAndIncludeUpperBound()throws Exception + description = "Check basic facet range search api") + public void searchWithRangeAndIncludeUpperBound() { - SearchRequest query = createQuery("A*"); + SearchRequest query = createQuery("* AND SITE:'" + siteModel.getId() + "'"); RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); facetRangeModel.setField("content.size"); facetRangeModel.setStart("0"); - facetRangeModel.setEnd("500"); - facetRangeModel.setGap("200"); - List include = new ArrayList(); + facetRangeModel.setEnd("200"); + facetRangeModel.setGap("20"); + List include = new ArrayList<>(); include.add("upper"); facetRangeModel.setInclude(include); - List ranges = new ArrayList(); + List ranges = new ArrayList<>(); ranges.add(facetRangeModel); query.setRanges(ranges); SearchResponse response = query(query); @@ -310,39 +308,37 @@ public class FacetRangeSearchTest extends AbstractSearchTest 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.assertThat().field("label").is("(20 - 40]"); + bucket.assertThat().field("filterQuery").is("content.size:<\"20\" TO \"40\"]"); Map metric = (Map) bucket.getMetrics().get(0).getValue(); - Assert.assertTrue(Integer.valueOf(metric.get("count")) >= 4); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 2, "Unexpected count for first bucket."); Map info = (Map) bucket.getBucketInfo(); - Assert.assertEquals(info.get("start"),"0"); - Assert.assertEquals(info.get("end"),"200"); + assertEquals(info.get("start"),"20"); + assertEquals(info.get("end"),"40"); Assert.assertNull(info.get("count")); - Assert.assertEquals(info.get("startInclusive"),"false"); - Assert.assertEquals(info.get("endInclusive"),"true"); - - bucket = facetResponseModel.getBuckets().get(1); - bucket.assertThat().field("label").is("(200 - 400]"); - bucket.assertThat().field("filterQuery").is("content.size:<\"200\" TO \"400\"]"); - metric = (Map) bucket.getMetrics().get(0).getValue(); - Integer count = Integer.valueOf(metric.get("count")); - Assert.assertTrue(count >= 4); - info = (Map) bucket.getBucketInfo(); - Assert.assertEquals(info.get("start"),"200"); - Assert.assertEquals(info.get("end"),"400"); - Assert.assertEquals(info.get("startInclusive"),"false"); - Assert.assertEquals(info.get("endInclusive"),"true"); - - bucket = facetResponseModel.getBuckets().get(2); - bucket.assertThat().field("label").is("(400 - 600]"); - bucket.assertThat().field("filterQuery").is("content.size:<\"400\" TO \"600\"]"); - metric = (Map) bucket.getMetrics().get(0).getValue(); - Assert.assertTrue(Integer.valueOf(metric.get("count")) >= 7); - info = (Map) bucket.getBucketInfo(); - Assert.assertEquals(info.get("start"),"400"); - Assert.assertEquals(info.get("end"),"600"); - Assert.assertEquals(info.get("startInclusive"),"false"); - Assert.assertEquals(info.get("endInclusive"),"true"); - } + assertEquals(info.get("startInclusive"),"false"); + assertEquals(info.get("endInclusive"),"true"); + bucket = facetResponseModel.getBuckets().get(1); + bucket.assertThat().field("label").is("(40 - 120]"); + bucket.assertThat().field("filterQuery").is("content.size:<\"40\" TO \"120\"]"); + metric = (Map) bucket.getMetrics().get(0).getValue(); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 1, "Unexpected count for second bucket."); + info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"40"); + assertEquals(info.get("end"),"120"); + assertEquals(info.get("startInclusive"),"false"); + assertEquals(info.get("endInclusive"),"true"); + + bucket = facetResponseModel.getBuckets().get(2); + bucket.assertThat().field("label").is("(120 - 200]"); + bucket.assertThat().field("filterQuery").is("content.size:<\"120\" TO \"200\"]"); + metric = (Map) bucket.getMetrics().get(0).getValue(); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 1, "Unexpected count for third bucket."); + info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"120"); + assertEquals(info.get("end"),"200"); + assertEquals(info.get("startInclusive"),"false"); + assertEquals(info.get("endInclusive"),"true"); + } }