From 2521c230e2b26ac5be6bd1fd240917a5a56ced05 Mon Sep 17 00:00:00 2001 From: "meenal.bhave@alfresco.com" Date: Mon, 29 Apr 2019 12:49:58 +0100 Subject: [PATCH 01/23] Search-1631: Added FacetRangeSearch tests valid prior to versoin ASS_1.2.1 --- .../search/FacetRangeSearchTest.java | 259 +++++++++++++++++- 1 file changed, 247 insertions(+), 12 deletions(-) diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java index 673f24268..4ca031f58 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java @@ -21,6 +21,8 @@ package org.alfresco.test.search.functional.searchServices.search; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNull; +import static org.testng.Assert.assertTrue; import java.util.ArrayList; import java.util.List; @@ -114,11 +116,244 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest facetRangeModel.setGap("100"); } + @SuppressWarnings("unchecked") + @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 ranges = new ArrayList(); + 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 metric = (Map) bucket.getMetrics().get(0).getValue(); + assertTrue(Integer.valueOf(metric.get("count")) >= 4); + Map info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"0"); + assertEquals(info.get("end"),"200"); + assertNull(info.get("count")); + 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\">"); + metric = (Map) bucket.getMetrics().get(0).getValue(); + Integer count = Integer.valueOf(metric.get("count")); + assertTrue(count >= 4); + info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"200"); + assertEquals(info.get("end"),"400"); + 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(); + assertTrue(Integer.valueOf(metric.get("count")) >= 7); + info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"400"); + assertEquals(info.get("end"),"600"); + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"true"); + } + + @SuppressWarnings("unchecked") + @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 ranges = new ArrayList(); + 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 metric = (Map) bucket.getMetrics().get(0).getValue(); + assertTrue(Integer.valueOf(metric.get("count")) >= 4); + Map info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"0"); + assertEquals(info.get("end"),"200"); + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"false"); + 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\">"); + info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"200"); + assertEquals(info.get("end"),"400"); + metric = (Map) bucket.getMetrics().get(0).getValue(); + assertTrue(Integer.valueOf(metric.get("count")) >= 4); + assertNull(info.get("count")); + 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\"]"); + metric = (Map) bucket.getMetrics().get(0).getValue(); + assertTrue(Integer.valueOf(metric.get("count")) >= 3); + info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"400"); + assertEquals(info.get("end"),"500"); + assertNull(info.get("count")); + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"true"); + } + @SuppressWarnings("unchecked") + @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 + { + 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 ranges = new ArrayList(); + 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); + + 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(); + assertEquals(info.get("start"),"2015-09-29T10:45:15.729Z"); + assertEquals(info.get("end"),"2017-04-11T10:45:15.729Z"); + assertNull(info.get("count"),"1"); + 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 + { + 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); + } + + @SuppressWarnings("unchecked") + @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 + { + SearchRequest query = createQuery("A*"); + + RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); + facetRangeModel.setField("content.size"); + facetRangeModel.setStart("0"); + facetRangeModel.setEnd("500"); + facetRangeModel.setGap("200"); + List include = new ArrayList(); + include.add("upper"); + facetRangeModel.setInclude(include); + List ranges = new ArrayList(); + 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 metric = (Map) bucket.getMetrics().get(0).getValue(); + assertTrue(Integer.valueOf(metric.get("count")) >= 4); + Map info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"0"); + assertEquals(info.get("end"),"200"); + assertNull(info.get("count")); + assertEquals(info.get("startInclusive"),"false"); + 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")); + assertTrue(count >= 4); + info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"200"); + assertEquals(info.get("end"),"400"); + assertEquals(info.get("startInclusive"),"false"); + 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(); + assertTrue(Integer.valueOf(metric.get("count")) >= 7); + info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"400"); + assertEquals(info.get("end"),"600"); + assertEquals(info.get("startInclusive"),"false"); + assertEquals(info.get("endInclusive"),"true"); + } + @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 basic facet range search api") @SuppressWarnings("unchecked") - public void searchWithRange() + public void searchWithRangeV2() { SearchRequest query = createQuery("* AND SITE:'" + testSite.getId() + "'"); @@ -143,7 +378,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest Map info = (Map) bucket.getBucketInfo(); assertEquals(info.get("start"),"20"); assertEquals(info.get("end"),"40"); - Assert.assertNull(info.get("count")); + assertNull(info.get("count")); assertEquals(info.get("startInclusive"),"true"); assertEquals(info.get("endInclusive"),"false"); @@ -173,7 +408,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check date facet intervals search api") @SuppressWarnings("unchecked") - public void searchWithRangeHardend() + public void searchWithRangeHardendV2() { SearchRequest query = createQuery("* AND SITE:'" + testSite.getId() + "'"); @@ -201,7 +436,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest assertEquals(info.get("end"),"40"); assertEquals(info.get("startInclusive"),"true"); assertEquals(info.get("endInclusive"),"false"); - Assert.assertNull(info.get("count")); + assertNull(info.get("count")); bucket = facetResponseModel.getBuckets().get(1); bucket.assertThat().field("label").is("[40 - 120)"); @@ -211,7 +446,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest assertEquals(info.get("end"),"120"); metric = (Map) bucket.getMetrics().get(0).getValue(); assertEquals(Integer.valueOf(metric.get("count")).intValue(), 1, "Unexpected count for second bucket."); - Assert.assertNull(info.get("count")); + assertNull(info.get("count")); assertEquals(info.get("startInclusive"),"true"); assertEquals(info.get("endInclusive"),"false"); @@ -223,7 +458,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest info = (Map) bucket.getBucketInfo(); assertEquals(info.get("start"),"120"); assertEquals(info.get("end"),"200"); - Assert.assertNull(info.get("count")); + assertNull(info.get("count")); assertEquals(info.get("startInclusive"),"true"); assertEquals(info.get("endInclusive"),"true"); } @@ -233,7 +468,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check date facet intervals search api") @SuppressWarnings("unchecked") - public void searchDateRange() + public void searchDateRangeV2() { SearchRequest query = createQuery("name:A*"); @@ -260,7 +495,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest Map info = (Map) bucket.getBucketInfo(); 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"); + assertNull(info.get("count"),"1"); assertEquals(info.get("startInclusive"),"true"); assertEquals(info.get("endInclusive"),"true"); } @@ -268,7 +503,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @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() + public void searchDateAndSizeRangesV2() { SearchRequest query = createQuery("* AND SITE:'" + testSite.getId() + "'"); List ranges = new ArrayList<>(); @@ -291,7 +526,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check basic facet range search api") @SuppressWarnings("unchecked") - public void searchWithRangeAndIncludeUpperBound() + public void searchWithRangeAndIncludeUpperBoundV2() { SearchRequest query = createQuery("* AND SITE:'" + testSite.getId() + "'"); @@ -319,7 +554,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest Map info = (Map) bucket.getBucketInfo(); assertEquals(info.get("start"),"20"); assertEquals(info.get("end"),"40"); - Assert.assertNull(info.get("count")); + assertNull(info.get("count")); assertEquals(info.get("startInclusive"),"false"); assertEquals(info.get("endInclusive"),"true"); @@ -344,5 +579,5 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest assertEquals(info.get("end"),"200"); assertEquals(info.get("startInclusive"),"false"); assertEquals(info.get("endInclusive"),"true"); - } + } } \ No newline at end of file From 3215a2b78e35601aa30bd024216aa18407563a72 Mon Sep 17 00:00:00 2001 From: "meenal.bhave@alfresco.com" Date: Wed, 1 May 2019 22:10:40 +0100 Subject: [PATCH 02/23] Search-1631: Added FacetRngeSearch Tests for ASS Version Pre ASS 121 --- .../functional/AbstractE2EFunctionalTest.java | 76 ++++-------- .../search/AbstractSearchServicesE2ETest.java | 112 ------------------ .../search/FacetIntervalSearchTest.java | 6 +- .../search/FacetRangeSearchTest.java | 83 ++++++------- .../search/PivotFacetedSearchTest.java | 10 +- .../search/StatsSearchTest.java | 8 +- .../CascadingTrackerIntegrationTest.java | 4 +- 7 files changed, 75 insertions(+), 224 deletions(-) diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java index 9477461c1..293082b7c 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java @@ -10,14 +10,12 @@ import org.alfresco.cmis.CmisWrapper; import org.alfresco.dataprep.ContentService; import org.alfresco.dataprep.SiteService.Visibility; import org.alfresco.rest.core.RestProperties; -import org.alfresco.rest.core.RestResponse; import org.alfresco.rest.core.RestWrapper; import org.alfresco.rest.search.RestRequestHighlightModel; import org.alfresco.rest.search.RestRequestQueryModel; import org.alfresco.rest.search.SearchNodeModel; import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchResponse; -import org.alfresco.rest.search.SearchSqlRequest; import org.alfresco.utility.LogFactory; import org.alfresco.utility.TasProperties; import org.alfresco.utility.Utility; @@ -32,7 +30,6 @@ import org.alfresco.utility.model.UserModel; import org.alfresco.utility.network.ServerHealth; import org.apache.chemistry.opencmis.client.api.CmisObject; import org.apache.chemistry.opencmis.client.api.Session; -import org.hamcrest.Matchers; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -83,10 +80,10 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont @Autowired @Getter(value = PROTECTED) private ContentService contentService; - + protected UserModel testUser, adminUserModel; protected SiteModel testSite; - + protected static String unique_searchString; public static final String NODE_PREFIX = "workspace/SpacesStore/"; @@ -99,7 +96,7 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont deployCustomModel("model/music-model.xml"); deployCustomModel("model/finance-model.xml"); } - + @BeforeClass(alwaysRun = true) public void dataPreparation() throws Exception { @@ -107,12 +104,12 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont adminUserModel = dataUser.getAdminUser(); testUser = dataUser.createRandomTestUser("UserSearch"); - + testSite = new SiteModel(RandomData.getRandomName("SiteSearch")); testSite.setVisibility(Visibility.PRIVATE); - + testSite = dataSite.usingUser(testUser).createSite(testSite); - + unique_searchString = testSite.getTitle().replace("SiteSearch", "Unique"); dataUser.addUserToSite(testUser, testSite, UserRole.SiteContributor); @@ -136,7 +133,7 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont } return modelDeployed; } - + public boolean deactivateCustomModel(String fileName) { Boolean modelDeactivated = false; @@ -227,7 +224,6 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont } /** - * * Helper method which create an http post request to Search API end point. * Executes the given search request without throwing checked exceptions (a {@link RuntimeException} will be thrown in case). * @@ -250,16 +246,18 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont * Wait for Solr to finish indexing and search to return appropriate results * * @param userQuery: Search Query - * @param contentName that's expected to be included / excluded from the results + * @param contentToFind that's expected to be included / excluded from the results * @param expectedInResults * @return true if search returns expected results, i.e. is given content is found or excluded from the results * @throws Exception */ - public boolean waitForContent(String userQuery, String contentName, boolean expectedInResults) throws Exception + public boolean isContentInSearchResults(String userQuery, String contentToFind, boolean expectedInResults) + throws Exception { boolean resultAsExpected = false; boolean found = !expectedInResults; String expectedStatusCode = HttpStatus.OK.toString(); + String contentName = (contentToFind == null) ? "" : contentToFind; // Repeat search until the query results are as expected or Search Retry count is hit for (int searchCount = 1; searchCount <= 6; searchCount++) @@ -272,9 +270,16 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont List entries = response.getEntries(); if (!entries.isEmpty()) { - for (SearchNodeModel entry : entries) + if (contentName.isEmpty()) { - found = (contentName.equalsIgnoreCase(entry.getModel().getName())); + found = true; + } + else + { + for (SearchNodeModel entry : entries) + { + found = (contentName.equalsIgnoreCase(entry.getModel().getName())); + } } } // Loop again if result is not as expected: To cater for solr lag: eventual consistency @@ -311,9 +316,10 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont // Use the search query as is: fieldname(s) may or may not be specified within the userQuery return waitForIndexing(null, userQuery, expectedInResults); } - + /** * waitForIndexing method that matches / waits for filename, metadata to be indexed. + * * @param userQuery * @param expectedInResults * @return @@ -323,10 +329,11 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont { return waitForIndexing("name", userQuery, expectedInResults); } - + /** * waitForIndexing method that matches / waits for content to be indexed, this can take longer than metadata indexing. * Since Metadata is indexed first, use this method where tests, queries need content to be indexed too. + * * @param userQuery * @param expectedInResults * @return @@ -348,39 +355,9 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont */ private boolean waitForIndexing(String fieldName, String userQuery, boolean expectedInResults) throws Exception { - boolean resultAsExpected = false; - String expectedStatusCode = HttpStatus.OK.toString(); - String query = (fieldName == null)? userQuery: String.format("%s:'%s'", fieldName, userQuery); + String query = (fieldName == null) ? userQuery : String.format("%s:'%s'", fieldName, userQuery); - // Repeat search until the query results are as expected or Search Retry count is hit - for (int searchCount = 1; searchCount <= 3; searchCount++) - { - SearchRequest searchRequest = createQuery(query); - SearchResponse response = query(searchRequest); - - if (restClient.getStatusCode().matches(expectedStatusCode)) - { - boolean found = !response.getEntries().isEmpty(); - - // Loop again if result is not as expected: To cater for solr lag: eventual consistency - resultAsExpected = (expectedInResults == found); - if (resultAsExpected) - { - break; - } - else - { - // Wait for the solr indexing. - Utility.waitToLoopTime(properties.getSolrWaitTimeInSeconds(), "Wait For Indexing. Retry Attempt: " + searchCount); - } - } - else - { - throw new RuntimeException("API returned status code:" + restClient.getStatusCode() + " Expected: " + expectedStatusCode); - } - } - - return resultAsExpected; + return isContentInSearchResults(query, null, expectedInResults); } /** @@ -435,7 +412,6 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont * * @return {@link SearchResponse} response. * @throws Exception if error - * */ protected SearchResponse query(RestRequestQueryModel queryReq, RestRequestHighlightModel highlight) throws Exception { diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java index 2a9cc270d..5e7a74742 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java @@ -18,18 +18,12 @@ */ package org.alfresco.test.search.functional.searchServices.search; -import org.alfresco.rest.search.SearchRequest; -import org.alfresco.rest.search.SearchResponse; import org.alfresco.test.search.functional.AbstractE2EFunctionalTest; -import org.alfresco.utility.Utility; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileType; import org.alfresco.utility.model.FolderModel; -import org.springframework.http.HttpStatus; import org.testng.annotations.BeforeClass; -import javax.naming.AuthenticationException; - /** * Abstract Search test class that contains useful methods * such as: @@ -81,110 +75,4 @@ public abstract class AbstractSearchServicesE2ETest extends AbstractE2EFunctiona waitForMetadataIndexing(file4.getName(), true); } - -// /** -// * Helper method which create an http post request to Search API end point. -// * @param term String search term -// * @return {@link SearchResponse} response. -// * @throws Exception if error -// * -// */ -// protected SearchResponse query(String term) throws Exception -// { -// RestRequestQueryModel queryReq = new RestRequestQueryModel(); -// queryReq.setLanguage("afts"); -// queryReq.setQuery(term); -// SearchRequest query = new SearchRequest(queryReq); -// return restClient.authenticateUser(testUser).withSearchAPI().search(query); -// } - - protected SearchRequest carsQuery() - { - return createQuery("cars"); - } - - /** - * Wait for Solr to finish indexing: Indexing has caught up = true if search returns appropriate results - * - * @param userQuery: search query, this can include the fieldname, unique search string will guarantee accurate results - * @param expectedInResults, true if entry is expected in the results set - * @return true (indexing is finished) if search returns appropriate results - * @throws Exception - */ - public boolean waitForIndexing(String userQuery, boolean expectedInResults) throws Exception - { - // Use the search query as is: fieldname(s) may or may not be specified within the userQuery - return waitForIndexing(null, userQuery, expectedInResults); - } - - /** - * waitForIndexing method that matches / waits for filename, metadata to be indexed. - * @param userQuery - * @param expectedInResults - * @return - * @throws Exception - */ - public boolean waitForMetadataIndexing(String userQuery, boolean expectedInResults) throws Exception - { - return waitForIndexing("name", userQuery, expectedInResults); - } - - /** - * waitForIndexing method that matches / waits for content to be indexed, this can take longer than metadata indexing. - * Since Metadata is indexed first, use this method where tests, queries need content to be indexed too. - * @param userQuery - * @param expectedInResults - * @return - * @throws Exception - */ - public boolean waitForContentIndexing(String userQuery, boolean expectedInResults) throws Exception - { - return waitForIndexing("cm:content", userQuery, expectedInResults); - } - - /** - * Wait for Solr to finish indexing: Indexing has caught up = true if search returns appropriate results - * - * @param fieldName: specific field to search for, e.g. name. When specified, the query will become: name:'userQuery' - * @param userQuery: search string, unique search string will guarantee accurate results - * @param expectedInResults, true if entry is expected in the results set - * @return true (indexing is finished) if search returns appropriate results - * @throws Exception - */ - private boolean waitForIndexing(String fieldName, String userQuery, boolean expectedInResults) throws Exception - { - boolean resultAsExpected = false; - String expectedStatusCode = HttpStatus.OK.toString(); - String query = (fieldName == null)? userQuery: String.format("%s:'%s'", fieldName, userQuery); - - // Repeat search until the query results are as expected or Search Retry count is hit - for (int searchCount = 1; searchCount <= 3; searchCount++) - { - SearchRequest searchRequest = createQuery(query); - SearchResponse response = query(searchRequest); - - if (restClient.getStatusCode().matches(expectedStatusCode)) - { - boolean found = !response.getEntries().isEmpty(); - - // Loop again if result is not as expected: To cater for solr lag: eventual consistency - resultAsExpected = (expectedInResults == found); - if (resultAsExpected) - { - break; - } - else - { - // Wait for the solr indexing. - Utility.waitToLoopTime(properties.getSolrWaitTimeInSeconds(), "Wait For Indexing"); - } - } - else - { - throw new AuthenticationException("API returned status code:" + restClient.getStatusCode() + " Expected: " + expectedStatusCode); - } - } - - return resultAsExpected; - } } \ No newline at end of file diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java index 8ca29c1e8..967d3d8b2 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java @@ -54,7 +54,7 @@ public class FacetIntervalSearchTest extends AbstractSearchServicesE2ETest description = "Check facet intervals mandatory fields") public void checkingFacetsMandatoryErrorMessages()throws Exception { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); RestRequestFacetIntervalsModel facetIntervalsModel = new RestRequestFacetIntervalsModel(); FacetInterval facetInterval = new FacetInterval(null, null, null); @@ -108,7 +108,7 @@ public class FacetIntervalSearchTest extends AbstractSearchServicesE2ETest description = "Check basic facet intervals search api") public void searchWithBasicInterval()throws Exception { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); RestRequestFacetIntervalsModel facetIntervalsModel = new RestRequestFacetIntervalsModel(); RestRequestFacetSetModel restRequestFacetSetModel = new RestRequestFacetSetModel(); @@ -151,7 +151,7 @@ public class FacetIntervalSearchTest extends AbstractSearchServicesE2ETest description = "Check date facet intervals search api") public void searchWithDates() throws Exception { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); RestRequestFacetIntervalsModel facetIntervalsModel = new RestRequestFacetIntervalsModel(); RestRequestFacetSetModel restRequestFacetSetModel = new RestRequestFacetSetModel(); diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java index 4ca031f58..15edddc4b 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java @@ -38,7 +38,6 @@ 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; /** @@ -76,7 +75,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest description = "Check facet intervals mandatory fields") public void checkingFacetsMandatoryErrorMessages() { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); List ranges = new ArrayList<>(); RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); ranges.add(facetRangeModel); @@ -117,19 +116,19 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest } @SuppressWarnings("unchecked") - @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, TestGroup.PreASS_121 }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check basic facet range search api") public void searchWithRange()throws Exception { - SearchRequest query = createQuery("A*"); + SearchRequest query = createQuery("* AND SITE:'" + testSite.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); @@ -138,44 +137,32 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest 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("[0 - 20)"); + bucket.assertThat().field("filterQuery").is("content.size:[\"0\" TO \"20\">"); Map metric = (Map) bucket.getMetrics().get(0).getValue(); - assertTrue(Integer.valueOf(metric.get("count")) >= 4); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 0, "Unexpected count for first bucket."); Map info = (Map) bucket.getBucketInfo(); assertEquals(info.get("start"),"0"); - assertEquals(info.get("end"),"200"); + assertEquals(info.get("end"),"20"); assertNull(info.get("count")); 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("[20 - 40)"); + bucket.assertThat().field("filterQuery").is("content.size:[\"20\" TO \"40\">"); metric = (Map) bucket.getMetrics().get(0).getValue(); - Integer count = Integer.valueOf(metric.get("count")); - assertTrue(count >= 4); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 2, "Unexpected count for second bucket."); info = (Map) bucket.getBucketInfo(); - assertEquals(info.get("start"),"200"); - assertEquals(info.get("end"),"400"); + assertEquals(info.get("start"),"20"); + assertEquals(info.get("end"),"40"); 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(); - assertTrue(Integer.valueOf(metric.get("count")) >= 7); - info = (Map) bucket.getBucketInfo(); - assertEquals(info.get("start"),"400"); - assertEquals(info.get("end"),"600"); - assertEquals(info.get("startInclusive"),"true"); - assertEquals(info.get("endInclusive"),"true"); } @SuppressWarnings("unchecked") - @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, TestGroup.PreASS_121 }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check date facet intervals search api") public void searchWithRangeHardend()throws Exception { @@ -214,7 +201,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest assertEquals(info.get("start"),"200"); assertEquals(info.get("end"),"400"); metric = (Map) bucket.getMetrics().get(0).getValue(); - assertTrue(Integer.valueOf(metric.get("count")) >= 4); + assertTrue(Integer.valueOf(metric.get("count")) == 4); assertNull(info.get("count")); assertEquals(info.get("startInclusive"),"true"); assertEquals(info.get("endInclusive"),"false"); @@ -223,7 +210,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest bucket.assertThat().field("label").is("[400 - 500]"); bucket.assertThat().field("filterQuery").is("content.size:[\"400\" TO \"500\"]"); metric = (Map) bucket.getMetrics().get(0).getValue(); - assertTrue(Integer.valueOf(metric.get("count")) >= 3); + assertTrue(Integer.valueOf(metric.get("count")) == 2); info = (Map) bucket.getBucketInfo(); assertEquals(info.get("start"),"400"); assertEquals(info.get("end"),"500"); @@ -232,8 +219,8 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest assertEquals(info.get("endInclusive"),"true"); } @SuppressWarnings("unchecked") - @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }) - @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }, executionType = ExecutionType.REGRESSION, + @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check date facet intervals search api") public void searchDateRange()throws Exception { @@ -253,22 +240,22 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest RestGenericFacetResponseModel facetResponseModel = response.getContext().getFacets().get(0); List buckets = facetResponseModel.getBuckets(); - assertThat(buckets.size(),is(1)); + assertThat(buckets.size(),is(2)); 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.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.getBucketInfo(); assertEquals(info.get("start"),"2015-09-29T10:45:15.729Z"); - assertEquals(info.get("end"),"2017-04-11T10:45:15.729Z"); - assertNull(info.get("count"),"1"); + assertEquals(info.get("end"),"2016-07-05T10:45:15.729Z"); + assertNull(info.get("count"),"Expecting count to be null"); assertEquals(info.get("startInclusive"),"true"); - assertEquals(info.get("endInclusive"),"true"); + assertEquals(info.get("endInclusive"),"false"); } - @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, TestGroup.PreASS_121 }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check date facet intervals search api") public void searchDateAndSizeRanges()throws Exception { @@ -290,8 +277,8 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest } @SuppressWarnings("unchecked") - @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, TestGroup.PreASS_121 }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check basic facet range search api") public void searchWithRangeAndIncludeUpperBound()throws Exception { @@ -330,7 +317,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest bucket.assertThat().field("filterQuery").is("content.size:<\"200\" TO \"400\"]"); metric = (Map) bucket.getMetrics().get(0).getValue(); Integer count = Integer.valueOf(metric.get("count")); - assertTrue(count >= 4); + assertTrue(count == 4); info = (Map) bucket.getBucketInfo(); assertEquals(info.get("start"),"200"); assertEquals(info.get("end"),"400"); @@ -341,7 +328,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest bucket.assertThat().field("label").is("(400 - 600]"); bucket.assertThat().field("filterQuery").is("content.size:<\"400\" TO \"600\"]"); metric = (Map) bucket.getMetrics().get(0).getValue(); - assertTrue(Integer.valueOf(metric.get("count")) >= 7); + assertTrue(Integer.valueOf(metric.get("count")) == 5); info = (Map) bucket.getBucketInfo(); assertEquals(info.get("start"),"400"); assertEquals(info.get("end"),"600"); diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java index 92a9185e1..55dde51b3 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java @@ -62,7 +62,7 @@ public class PivotFacetedSearchTest extends AbstractSearchServicesE2ETest description = "Checks errors with pivot using Search api") public void searchWithPivotingErrors() { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); RestRequestFacetFieldsModel facetFields = new RestRequestFacetFieldsModel(); List list = new ArrayList<>(); @@ -95,7 +95,7 @@ public class PivotFacetedSearchTest extends AbstractSearchServicesE2ETest description = "Checks with pivot using Search api") public void searchWithPivoting() { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); RestRequestFacetFieldsModel facetFields = new RestRequestFacetFieldsModel(); List list = new ArrayList<>(); @@ -124,7 +124,7 @@ public class PivotFacetedSearchTest extends AbstractSearchServicesE2ETest description = "Checks nested pivot using Search api") public void searchWithNestedPivoting() { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); RestRequestFacetFieldsModel facetFields = new RestRequestFacetFieldsModel(); List list = new ArrayList<>(); @@ -181,7 +181,7 @@ public class PivotFacetedSearchTest extends AbstractSearchServicesE2ETest description = "Checks range pivots using Search api") public void searchWithRangePivoting() { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); String endDate = LocalDateTime.now() .format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")); //the car document is created at runtime, so to include it in range facets end date must be now @@ -245,7 +245,7 @@ public class PivotFacetedSearchTest extends AbstractSearchServicesE2ETest description = "Checks with pivot using Search api and a label as a key") public void searchWithPivotingUsingLabel() { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); RestRequestFacetFieldsModel facetFields = new RestRequestFacetFieldsModel(); List list = new ArrayList<>(); RestRequestFacetFieldModel creatorFacetFieldModel = new RestRequestFacetFieldModel("creator"); diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java index 2f0ce2a24..08c0f6602 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java @@ -69,7 +69,7 @@ public class StatsSearchTest extends AbstractSearchServicesE2ETest description = "Checks errors with stats using Search api") public void searchWithBasicStats() { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); Pagination pagination = new Pagination(); pagination.setMaxItems(2); List statsModels = new ArrayList<>(); @@ -153,7 +153,7 @@ public class StatsSearchTest extends AbstractSearchServicesE2ETest description = "Checks errors with stats labels using Search api") public void searchWithStatsLabel() { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); Pagination pagination = new Pagination(); pagination.setMaxItems(2); List statsModels = new ArrayList<>(); @@ -208,7 +208,7 @@ public class StatsSearchTest extends AbstractSearchServicesE2ETest description = "Checks errors with stats with Pivot using Search api") public void searchWithStatsAndMutlilevelPivot() { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); Pagination pagination = new Pagination(); pagination.setMaxItems(1); @@ -271,7 +271,7 @@ public class StatsSearchTest extends AbstractSearchServicesE2ETest description = "Checks errors with stats with Pivot using Search api") public void searchWithStatsAndPivot() { - SearchRequest query = carsQuery(); + SearchRequest query = createQuery("cars"); Pagination pagination = new Pagination(); pagination.setMaxItems(2); diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingTrackerIntegrationTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingTrackerIntegrationTest.java index c91a8a3d2..0e6e7d354 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingTrackerIntegrationTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingTrackerIntegrationTest.java @@ -63,7 +63,7 @@ public class CascadingTrackerIntegrationTest extends AbstractE2EFunctionalTest // Find nodes where Path with new folder name matches String parentQueryAfterRename = "NPATH:\"4/Company Home/Sites/" + testSite.getTitle() + "/documentLibrary/" + parentNewName + "\""; - boolean indexingInProgress = !waitForContent(parentQueryAfterRename, childFile.getName(), true); + boolean indexingInProgress = !isContentInSearchResults(parentQueryAfterRename, childFile.getName(), true); // Query using new parent name: Expect parent folder and child file int descendantCountOfNewName = query(parentQueryAfterRename).getPagination().getCount(); @@ -107,7 +107,7 @@ public class CascadingTrackerIntegrationTest extends AbstractE2EFunctionalTest // Find nodes where Path with new folder name matches String parentQueryAfterRename = "NPATH:\"4/Company Home/Sites/" + testSite.getTitle() + "/documentLibrary/" + grandParentNewName + "\""; - boolean indexingInProgress = !waitForContent(parentQueryAfterRename, grandChildFile.getName(), true); + boolean indexingInProgress = !isContentInSearchResults(parentQueryAfterRename, grandChildFile.getName(), true); // Query using new parent name: Expect grand parent, child folder, grand child file int descendantCountOfNewName = query(parentQueryAfterRename).getPagination().getCount(); From 525f72242262a6c55d63cb9ff8520ef84660cdbb Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 2 May 2019 08:37:35 +0100 Subject: [PATCH 03/23] Search-1634 addtional tests for master slave mode --- e2e-test/pom.xml | 2 +- .../search/AbstractSearchServicesE2ETest.java | 2 +- .../search/SearchHighLightTest.java | 3 + .../searchServices/search/ShardInfoTest.java | 74 +++++++++++++++---- 4 files changed, 63 insertions(+), 18 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index f6f0c8256..d72051eb3 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -13,7 +13,7 @@ 6.0.0.3 6.0.0.0 - 2.0.1 + 2.0.9-SNAPSHOT 2.6.0 src/test/resources/SearchSuite.xml diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java index 2a9cc270d..eefdf2ac2 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java @@ -187,4 +187,4 @@ public abstract class AbstractSearchServicesE2ETest extends AbstractE2EFunctiona return resultAsExpected; } -} \ No newline at end of file +} diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java index 8b4e359f9..eee1bab14 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java @@ -28,6 +28,7 @@ import org.alfresco.rest.search.RestRequestQueryModel; import org.alfresco.rest.search.SearchResponse; import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.report.Bug; +import org.testng.Assert; import org.testng.annotations.Test; /** @@ -56,7 +57,9 @@ public class SearchHighLightTest extends AbstractSearchServicesE2ETest highlight.setFields(fields); SearchResponse nodes = query(queryReq, highlight); nodes.assertThat().entriesListIsNotEmpty(); + Assert.assertNotNull(nodes.getEntryByIndex(0).getSearch()); ResponseHighLightModel hl = nodes.getEntryByIndex(0).getSearch().getHighlight().get(0); + Assert.assertNotNull(nodes.getEntryByIndex(0).getSearch()); hl.assertThat().field("snippets").contains( "The landrover discovery is not a sports ¿car?"); } diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java index 7fea95e90..c37ff93a1 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java @@ -18,6 +18,8 @@ */ package org.alfresco.test.search.functional.searchServices.search; +import org.testng.annotations.Test; +import org.testng.AssertJUnit; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; @@ -33,7 +35,6 @@ import org.alfresco.rest.search.RestShardInfoModelCollection; import org.alfresco.rest.search.RestShardModel; import org.alfresco.utility.model.TestGroup; import org.springframework.http.HttpStatus; -import org.testng.annotations.Test; /** * Shard info end point REST API test. @@ -42,13 +43,13 @@ import org.testng.annotations.Test; */ public class ShardInfoTest extends AbstractSearchServicesE2ETest { - @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n}) + @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER}) public void getShardInfoWithAdminAuthority() throws JsonProcessingException { RestShardInfoModelCollection info = restClient.authenticateUser(dataUser.getAdminUser()).withShardInfoAPI().getInfo(); restClient.assertStatusCodeIs(HttpStatus.OK); info.assertThat().entriesListIsNotEmpty(); - assertEquals(info.getPagination().getTotalItems().intValue(), 2); + AssertJUnit.assertEquals(info.getPagination().getTotalItems().intValue(), 2); List stores = Arrays.asList("workspace://SpacesStore", "archive://SpacesStore"); List baseUrls = Arrays.asList("/solr/alfresco", "/solr/archive"); @@ -57,32 +58,73 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest for (RestShardInfoModel shardInfoModel : entries) { RestShardInfoModel model = shardInfoModel.getModel(); - assertEquals(model.getTemplate(), "rerank"); - assertEquals(model.getMode(), "MASTER"); - assertEquals(model.getShardMethod(), "DB_ID"); + AssertJUnit.assertEquals(model.getTemplate(), "rerank"); + AssertJUnit.assertEquals(model.getMode(), "MASTER"); + AssertJUnit.assertEquals(model.getShardMethod(), "DB_ID"); assertTrue(model.getHasContent()); - assertTrue(stores.contains(model.getStores())); + AssertJUnit.assertTrue(stores.contains(model.getStores())); List shards = model.getShards(); - assertNotNull(shards); + AssertJUnit.assertNotNull(shards); RestShardModel shard = shards.iterator().next(); - assertNotNull(shard); + AssertJUnit.assertNotNull(shard); List instances = shard.getInstances(); - assertNotNull(instances); + AssertJUnit.assertNotNull(instances); RestInstanceModel instance = instances.iterator().next(); - assertNotNull(instance); + AssertJUnit.assertNotNull(instance); - assertTrue(baseUrls.contains(instance.getBaseUrl())); + AssertJUnit.assertTrue(baseUrls.contains(instance.getBaseUrl())); // TODO: Ideally Solr Host and Port should be Parameterised - assertEquals(instance.getHost(), "search"); - assertEquals(instance.getPort().intValue(), 8983); - assertEquals(instance.getState(), "ACTIVE"); - assertEquals(instance.getMode(), "MASTER"); + AssertJUnit.assertEquals(instance.getHost(), "search"); + AssertJUnit.assertEquals(instance.getPort().intValue(), 8983); + AssertJUnit.assertEquals(instance.getState(), "ACTIVE"); + AssertJUnit.assertEquals(instance.getMode(), "MASTER"); } } + @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER_SLAVE}) + public void getShardInfoWithAdminAuthorityMasterSlaveConfig() throws JsonProcessingException + { + RestShardInfoModelCollection info = restClient.authenticateUser(dataUser.getAdminUser()).withShardInfoAPI().getInfo(); + restClient.assertStatusCodeIs(HttpStatus.OK); + info.assertThat().entriesListIsNotEmpty(); + AssertJUnit.assertEquals(info.getPagination().getTotalItems().intValue(), 2); + + List stores = Arrays.asList("workspace://SpacesStore", "archive://SpacesStore"); + List baseUrls = Arrays.asList("/solr/alfresco", "/solr/archive"); + + List entries = info.getEntries(); + for (RestShardInfoModel shardInfoModel : entries) + { + RestShardInfoModel model = shardInfoModel.getModel(); + AssertJUnit.assertEquals(model.getTemplate(), "rerank"); + AssertJUnit.assertEquals(model.getMode(), "MIXED"); + AssertJUnit.assertEquals(model.getShardMethod(), "DB_ID"); + assertTrue(model.getHasContent()); + + AssertJUnit.assertTrue(stores.contains(model.getStores())); + + List shards = model.getShards(); + AssertJUnit.assertNotNull(shards); + RestShardModel shard = shards.iterator().next(); + AssertJUnit.assertNotNull(shard); + List instances = shard.getInstances(); + AssertJUnit.assertNotNull(instances); + RestInstanceModel instance = instances.iterator().next(); + AssertJUnit.assertNotNull(instance); + + AssertJUnit.assertTrue(baseUrls.contains(instance.getBaseUrl())); + + AssertJUnit.assertEquals(instance.getHost(), "search"); + AssertJUnit.assertEquals(instance.getState(), "ACTIVE"); + AssertJUnit.assertEquals(instance.getMode(), "MIXED"); + + } + } + + @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n}) public void getShardInfoWithoutAdminAuthority() throws Exception { From 2c770f626feef3b8c2896833ece5e448c8e4b01d Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 2 May 2019 10:37:31 +0100 Subject: [PATCH 04/23] comments added as discussed with Meenal --- .../functional/searchServices/search/SearchHighLightTest.java | 4 ++-- .../functional/searchServices/search/ShardInfoTest.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java index eee1bab14..bf8e0d148 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java @@ -57,9 +57,9 @@ public class SearchHighLightTest extends AbstractSearchServicesE2ETest highlight.setFields(fields); SearchResponse nodes = query(queryReq, highlight); nodes.assertThat().entriesListIsNotEmpty(); - Assert.assertNotNull(nodes.getEntryByIndex(0).getSearch()); + Assert.assertNotNull(nodes.getEntryByIndex(0).getSearch(), "SearchResponse: is not null"); ResponseHighLightModel hl = nodes.getEntryByIndex(0).getSearch().getHighlight().get(0); - Assert.assertNotNull(nodes.getEntryByIndex(0).getSearch()); + Assert.assertNotNull(nodes.getEntryByIndex(0).getSearch(), "ResponseHighLightModel: is not null"); hl.assertThat().field("snippets").contains( "The landrover discovery is not a sports ¿car?"); } diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java index c37ff93a1..6a7432494 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java @@ -43,7 +43,8 @@ import org.springframework.http.HttpStatus; */ public class ShardInfoTest extends AbstractSearchServicesE2ETest { - @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER}) + // The test that will be excluded when running master slave setup, excluding the ASS_MASTER test group. + @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER}) public void getShardInfoWithAdminAuthority() throws JsonProcessingException { RestShardInfoModelCollection info = restClient.authenticateUser(dataUser.getAdminUser()).withShardInfoAPI().getInfo(); @@ -84,6 +85,7 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest } } + //The test that will be run when in master slave setup by including the ASS_MASTER_SLAVE test group. @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER_SLAVE}) public void getShardInfoWithAdminAuthorityMasterSlaveConfig() throws JsonProcessingException { From 8013ee669f0a245585af06f1f0ab23ff141b8e9b Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 3 May 2019 12:07:03 +0100 Subject: [PATCH 05/23] Changes commented from Meenal --- e2e-test/pom.xml | 2 +- .../searchServices/search/ShardInfoTest.java | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index d72051eb3..456a5b1a4 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -13,7 +13,7 @@ 6.0.0.3 6.0.0.0 - 2.0.9-SNAPSHOT + 2.0.9 2.6.0 src/test/resources/SearchSuite.xml diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java index 6a7432494..581ffb161 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java @@ -43,14 +43,14 @@ import org.springframework.http.HttpStatus; */ public class ShardInfoTest extends AbstractSearchServicesE2ETest { - // The test that will be excluded when running master slave setup, excluding the ASS_MASTER test group. + /* The test that will be excluded when running master slave setup, excluding the ASS_MASTER test group.*/ @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER}) public void getShardInfoWithAdminAuthority() throws JsonProcessingException { RestShardInfoModelCollection info = restClient.authenticateUser(dataUser.getAdminUser()).withShardInfoAPI().getInfo(); restClient.assertStatusCodeIs(HttpStatus.OK); info.assertThat().entriesListIsNotEmpty(); - AssertJUnit.assertEquals(info.getPagination().getTotalItems().intValue(), 2); + assertEquals(info.getPagination().getTotalItems().intValue(), 2); List stores = Arrays.asList("workspace://SpacesStore", "archive://SpacesStore"); List baseUrls = Arrays.asList("/solr/alfresco", "/solr/archive"); @@ -59,9 +59,9 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest for (RestShardInfoModel shardInfoModel : entries) { RestShardInfoModel model = shardInfoModel.getModel(); - AssertJUnit.assertEquals(model.getTemplate(), "rerank"); - AssertJUnit.assertEquals(model.getMode(), "MASTER"); - AssertJUnit.assertEquals(model.getShardMethod(), "DB_ID"); + assertEquals(model.getTemplate(), "rerank"); + assertEquals(model.getMode(), "MASTER"); + assertEquals(model.getShardMethod(), "DB_ID"); assertTrue(model.getHasContent()); AssertJUnit.assertTrue(stores.contains(model.getStores())); @@ -85,14 +85,14 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest } } - //The test that will be run when in master slave setup by including the ASS_MASTER_SLAVE test group. + /* The test that will be run when in master slave setup by including the ASS_MASTER_SLAVE test group.*/ @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER_SLAVE}) public void getShardInfoWithAdminAuthorityMasterSlaveConfig() throws JsonProcessingException { RestShardInfoModelCollection info = restClient.authenticateUser(dataUser.getAdminUser()).withShardInfoAPI().getInfo(); restClient.assertStatusCodeIs(HttpStatus.OK); info.assertThat().entriesListIsNotEmpty(); - AssertJUnit.assertEquals(info.getPagination().getTotalItems().intValue(), 2); + assertEquals(info.getPagination().getTotalItems().intValue(), 2); List stores = Arrays.asList("workspace://SpacesStore", "archive://SpacesStore"); List baseUrls = Arrays.asList("/solr/alfresco", "/solr/archive"); @@ -101,9 +101,9 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest for (RestShardInfoModel shardInfoModel : entries) { RestShardInfoModel model = shardInfoModel.getModel(); - AssertJUnit.assertEquals(model.getTemplate(), "rerank"); - AssertJUnit.assertEquals(model.getMode(), "MIXED"); - AssertJUnit.assertEquals(model.getShardMethod(), "DB_ID"); + assertEquals(model.getTemplate(), "rerank"); + assertEquals(model.getMode(), "MIXED"); + assertEquals(model.getShardMethod(), "DB_ID"); assertTrue(model.getHasContent()); AssertJUnit.assertTrue(stores.contains(model.getStores())); From d02d86d395483b861d47849bc0d4822428c0052f Mon Sep 17 00:00:00 2001 From: "meenal.bhave@alfresco.com" Date: Fri, 3 May 2019 16:16:16 +0100 Subject: [PATCH 06/23] Search-1631: TestGroup.java added to E2E project --- e2e-test/pom.xml | 2 +- .../java/org/alfresco/search/TestGroup.java | 46 +++++++++++++++++++ .../cmis/SolrSearchByAspectTests.java | 4 +- .../cmis/SolrSearchByIdTests.java | 4 +- .../cmis/SolrSearchByPathTests.java | 4 +- .../cmis/SolrSearchByPropertyTests.java | 4 +- .../cmis/SolrSearchInFolderTests.java | 4 +- .../cmis/SolrSearchInTreeTests.java | 4 +- .../searchServices/sanity/SetupTest.java | 2 +- .../search/FacetFieldsSearchTest.java | 2 +- .../search/FacetIntervalSearchTest.java | 2 +- .../search/FacetRangeSearchTest.java | 2 +- .../search/FacetedSearchTest.java | 2 +- .../search/FingerPrintTest.java | 2 +- .../search/PivotFacetedSearchTest.java | 2 +- .../search/SearchAPATHTest.java | 2 +- .../search/SearchHighLightTest.java | 2 +- .../search/SearchSpellCheckTest.java | 2 +- .../searchServices/search/SearchTest.java | 2 +- .../search/SearchWithCustomModelTest.java | 2 +- .../searchServices/search/ShardInfoTest.java | 2 +- .../search/StatsSearchTest.java | 2 +- .../search/rm/SearchServicesRME2ETest.java | 2 +- .../CascadingTrackerIntegrationTest.java | 2 +- .../solr/SearchSolrAPITest.java | 2 +- 25 files changed, 76 insertions(+), 30 deletions(-) create mode 100644 e2e-test/src/main/java/org/alfresco/search/TestGroup.java diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index f6f0c8256..456a5b1a4 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -13,7 +13,7 @@ 6.0.0.3 6.0.0.0 - 2.0.1 + 2.0.9 2.6.0 src/test/resources/SearchSuite.xml diff --git a/e2e-test/src/main/java/org/alfresco/search/TestGroup.java b/e2e-test/src/main/java/org/alfresco/search/TestGroup.java new file mode 100644 index 000000000..31aa31b43 --- /dev/null +++ b/e2e-test/src/main/java/org/alfresco/search/TestGroup.java @@ -0,0 +1,46 @@ +package org.alfresco.search; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target({ ElementType.METHOD }) +public @interface TestGroup +{ + public static final String SANITY = "sanity"; + public static final String REGRESSION = "regression"; + public static final String ENTERPRISE = "enterprise"; + + + public static final String SEARCH = "search"; + + public static final String CMIS = "cmis"; + public static final String REST_API = "rest-api"; + + public static final String PREUPGRADE = "pre-upgrade"; + public static final String POSTUPGRADE = "post-upgrade"; + + // Search: Minimum Version Required + public static final String ASS_1 = "ASS_1.0.0"; // Alfresco Search Services 1.0. Does not work with Solr4 + public static final String ASS_112 = "ASS_1.1.2"; // Alfresco Search Services 1.1.2 + public static final String ASS_12 = "ASS_1.2.0"; // Alfresco Search Services 1.2 + public static final String PreASS_121 = "PreASS_1.2.1"; // Alfresco Search Services Prior to ASS 1.2.1 + public static final String ASS_121 = "ASS_1.2.1"; // Alfresco Search Services 1.2.1 + public static final String ASS_13 = "ASS_1.3.0"; // Alfresco Search Services 1.3 + public static final String ASS_1302 = "ASS_1.3.0.2"; // Alfresco Search Services 1.3.0.2 (Fingerprint MNT) + public static final String ASS_14 = "ASS_1.4.0"; // Alfresco Search Services 1.4 + public static final String ASS_MASTER_SLAVE = "ASS_Master_Slave"; // Alfresco Search Services using master slave configurations + public static final String ASS_MASTER ="ASS_Master"; // Alfresco search services using master/stand alone mode + + public static final String INSIGHT_10 = "InsightEngine_1.0.0"; // Alfresco Insight Engine 1.0 + public static final String INSIGHT_11 = "InsightEngine_1.1.0"; // Alfresco Insight Engine 1.1 + public static final String INSIGHT_12 = "InsightEngine_1.2.0"; // Alfresco Insight Engine 1.2 + public static final String NOT_INSIGHT_ENGINE = "Not_InsightEngine"; // When Alfresco Insight Engine 1.0 isn't running + public static final String SOLR = "SOLR"; //To be used for tests for /solr/alfresco/* end-points + + public static final String ACS_52n = "ACS_52n"; // Alfresco Content Services 5.2.n + public static final String ACS_60n = "ACS_60n"; // Alfresco Content Services 6.0 or above + public static final String ACS_61n = "ACS_61n"; // Alfresco Content Services 6.1 or above +} diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByAspectTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByAspectTests.java index 03e52b4d9..a9517c66c 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByAspectTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByAspectTests.java @@ -6,7 +6,7 @@ import org.alfresco.utility.data.provider.XMLTestData; import org.alfresco.utility.data.provider.XMLTestDataProvider; import org.alfresco.utility.exception.TestConfigurationException; import org.alfresco.utility.model.QueryModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.AfterClass; @@ -50,7 +50,7 @@ public class SolrSearchByAspectTests extends AbstractCmisE2ETest Utility.waitToLoopTime(getSolrWaitTimeInSeconds()); } - @Test(groups = { TestGroup.CMIS, TestGroup.QUERIES }, + @Test(groups = { TestGroup.CMIS }, dataProviderClass = XMLTestDataProvider.class, dataProvider = "getQueriesData", dependsOnMethods = "prepareDataForAspectSearch") @XMLDataConfig(file = "src/test/resources/testdata/search-by-aspect.xml") public void executeSearchByAspect(QueryModel query) throws Exception diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByIdTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByIdTests.java index 54c8a6e9c..fa429550a 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByIdTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByIdTests.java @@ -6,7 +6,7 @@ import org.alfresco.utility.data.provider.XMLTestData; import org.alfresco.utility.data.provider.XMLTestDataProvider; import org.alfresco.utility.exception.TestConfigurationException; import org.alfresco.utility.model.QueryModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.AfterClass; @@ -50,7 +50,7 @@ public class SolrSearchByIdTests extends AbstractCmisE2ETest Utility.waitToLoopTime(getSolrWaitTimeInSeconds()); } - @Test(groups = { TestGroup.CMIS, TestGroup.QUERIES }, + @Test(groups = { TestGroup.CMIS }, dataProviderClass = XMLTestDataProvider.class, dataProvider = "getQueriesData", dependsOnMethods = "prepareDataForSearchById") @XMLDataConfig(file = "src/test/resources/testdata/search-by-id.xml") public void executeSortedSearchByID(QueryModel query) throws Exception diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPathTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPathTests.java index 0d28375de..de74c6438 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPathTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPathTests.java @@ -5,7 +5,7 @@ import org.alfresco.utility.data.provider.XMLDataConfig; import org.alfresco.utility.data.provider.XMLTestData; import org.alfresco.utility.data.provider.XMLTestDataProvider; import org.alfresco.utility.model.QueryModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.AfterClass; @@ -48,7 +48,7 @@ public class SolrSearchByPathTests extends AbstractCmisE2ETest Utility.waitToLoopTime(getSolrWaitTimeInSeconds()); } - @Test(groups = { TestGroup.CMIS, TestGroup.QUERIES }, + @Test(groups = { TestGroup.CMIS }, dependsOnMethods = "prepareDataForSearchByPath", dataProviderClass = XMLTestDataProvider.class, dataProvider = "getQueriesData") @XMLDataConfig(file = "src/test/resources/testdata/search-by-path.xml") public void executeSearchByPathQueries(QueryModel query) throws Exception diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPropertyTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPropertyTests.java index ec90ef848..172664a22 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPropertyTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPropertyTests.java @@ -6,7 +6,7 @@ import org.alfresco.utility.data.provider.XMLTestData; import org.alfresco.utility.data.provider.XMLTestDataProvider; import org.alfresco.utility.exception.TestConfigurationException; import org.alfresco.utility.model.QueryModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.AfterClass; @@ -50,7 +50,7 @@ public class SolrSearchByPropertyTests extends AbstractCmisE2ETest Utility.waitToLoopTime(getSolrWaitTimeInSeconds()); } - @Test(groups = { TestGroup.CMIS, TestGroup.QUERIES }, + @Test(groups = { TestGroup.CMIS }, dataProviderClass = XMLTestDataProvider.class, dataProvider = "getQueriesData", dependsOnMethods = "prepareDataForSearchWithProperty") @XMLDataConfig(file = "src/test/resources/testdata/search-by-property.xml") public void executeSortedSearchByID(QueryModel query) throws Exception diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInFolderTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInFolderTests.java index 133144ad7..52f7c332a 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInFolderTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInFolderTests.java @@ -7,7 +7,7 @@ import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileType; import org.alfresco.utility.model.FolderModel; import org.alfresco.utility.model.QueryModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -51,7 +51,7 @@ public class SolrSearchInFolderTests extends AbstractCmisE2ETest dataContent.deleteSite(testSite); } - @Test(groups = { TestGroup.CMIS, TestGroup.QUERIES }, + @Test(groups = { TestGroup.CMIS }, dataProviderClass = XMLTestDataProvider.class, dataProvider = "getQueriesData") @XMLDataConfig(file = "src/test/resources/testdata/search-in-folder.xml") public void executeCMISQuery(QueryModel query) throws Exception diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInTreeTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInTreeTests.java index 9f69ddea2..5ce7461c0 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInTreeTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInTreeTests.java @@ -7,7 +7,7 @@ import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileType; import org.alfresco.utility.model.FolderModel; import org.alfresco.utility.model.QueryModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -55,7 +55,7 @@ public class SolrSearchInTreeTests extends AbstractCmisE2ETest dataContent.deleteSite(testSite); } - @Test(groups = { TestGroup.CMIS, TestGroup.QUERIES }, + @Test(groups = { TestGroup.CMIS }, dataProviderClass = XMLTestDataProvider.class, dataProvider = "getQueriesData") @XMLDataConfig(file = "src/test/resources/testdata/search-in-tree.xml") public void executeCMISQuery(QueryModel query) throws Exception diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/sanity/SetupTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/sanity/SetupTest.java index 0e9a0910a..70abfe3ae 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/sanity/SetupTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/sanity/SetupTest.java @@ -17,7 +17,7 @@ import org.alfresco.utility.data.DataSite; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileType; import org.alfresco.utility.model.FolderModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.apache.chemistry.opencmis.commons.PropertyIds; import org.apache.chemistry.opencmis.commons.enums.VersioningState; import org.springframework.beans.factory.annotation.Autowired; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetFieldsSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetFieldsSearchTest.java index 91477f7de..cd421d8ef 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetFieldsSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetFieldsSearchTest.java @@ -32,12 +32,12 @@ import org.alfresco.rest.search.RestRequestQueryModel; import org.alfresco.rest.search.RestResultBucketsModel; import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchResponse; +import org.alfresco.search.TestGroup; import org.alfresco.utility.data.RandomData; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileType; import org.alfresco.utility.model.FolderModel; import org.alfresco.utility.model.SiteModel; -import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.model.UserModel; import org.testng.Assert; import org.testng.annotations.BeforeClass; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java index 967d3d8b2..1298997ac 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java @@ -26,7 +26,7 @@ import org.alfresco.rest.search.RestRequestFacetIntervalsModel; import org.alfresco.rest.search.RestRequestFacetSetModel; import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchResponse; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.springframework.http.HttpStatus; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java index 15edddc4b..c2eb5d186 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java @@ -34,7 +34,7 @@ import org.alfresco.rest.search.RestGenericBucketModel; import org.alfresco.rest.search.RestGenericFacetResponseModel; import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchResponse; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.springframework.http.HttpStatus; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetedSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetedSearchTest.java index f92480639..8692cb836 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetedSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetedSearchTest.java @@ -31,7 +31,7 @@ import org.alfresco.rest.search.RestRequestQueryModel; import org.alfresco.rest.search.RestResultBucketsModel; import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchResponse; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.testng.Assert; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FingerPrintTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FingerPrintTest.java index e8aca130d..4de9435ce 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FingerPrintTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FingerPrintTest.java @@ -23,7 +23,7 @@ import org.alfresco.rest.search.SearchResponse; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileType; import org.alfresco.utility.model.FolderModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.alfresco.utility.report.Bug; import org.testng.Assert; import org.testng.annotations.BeforeClass; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java index 55dde51b3..cac7c90f6 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java @@ -35,7 +35,7 @@ import org.alfresco.rest.search.RestRequestFacetFieldsModel; import org.alfresco.rest.search.RestRequestPivotModel; import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchResponse; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.springframework.http.HttpStatus; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAPATHTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAPATHTest.java index 506c9001c..8076f2cb2 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAPATHTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAPATHTest.java @@ -29,7 +29,7 @@ import org.alfresco.rest.search.RestRequestQueryModel; import org.alfresco.rest.search.RestResultBucketsModel; import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchResponse; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.testng.Assert; import org.testng.annotations.Test; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java index 8b4e359f9..ac700cc63 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java @@ -26,7 +26,7 @@ import org.alfresco.rest.search.RestRequestFieldsModel; import org.alfresco.rest.search.RestRequestHighlightModel; import org.alfresco.rest.search.RestRequestQueryModel; import org.alfresco.rest.search.SearchResponse; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.alfresco.utility.report.Bug; import org.testng.annotations.Test; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSpellCheckTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSpellCheckTest.java index dc36053b5..827df80cc 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSpellCheckTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSpellCheckTest.java @@ -24,7 +24,7 @@ import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchResponse; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileType; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.testng.Assert; import org.testng.annotations.Test; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchTest.java index efd0a4c50..99bb6ca14 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchTest.java @@ -40,7 +40,7 @@ import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchResponse; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileType; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.hamcrest.Matchers; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchWithCustomModelTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchWithCustomModelTest.java index 6cc92c8dc..307f08be0 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchWithCustomModelTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchWithCustomModelTest.java @@ -18,7 +18,7 @@ import org.alfresco.utility.data.DataSite; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileType; import org.alfresco.utility.model.FolderModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.apache.chemistry.opencmis.commons.PropertyIds; import org.apache.chemistry.opencmis.commons.enums.VersioningState; import org.springframework.beans.factory.annotation.Autowired; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java index 7fea95e90..9726ea5b8 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java @@ -31,7 +31,7 @@ import org.alfresco.rest.search.RestInstanceModel; import org.alfresco.rest.search.RestShardInfoModel; import org.alfresco.rest.search.RestShardInfoModelCollection; import org.alfresco.rest.search.RestShardModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.springframework.http.HttpStatus; import org.testng.annotations.Test; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java index 08c0f6602..e86e9767d 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java @@ -43,7 +43,7 @@ import org.alfresco.rest.search.RestRequestQueryModel; import org.alfresco.rest.search.RestRequestStatsModel; import org.alfresco.rest.search.SearchRequest; import org.alfresco.rest.search.SearchResponse; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.springframework.http.HttpStatus; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/rm/SearchServicesRME2ETest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/rm/SearchServicesRME2ETest.java index 20043b7d3..ef83d2bfe 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/rm/SearchServicesRME2ETest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/rm/SearchServicesRME2ETest.java @@ -9,7 +9,7 @@ package org.alfresco.test.search.functional.searchServices.search.rm; import org.alfresco.rest.search.RestRequestQueryModel; import org.alfresco.rest.search.SearchResponse; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.springframework.http.HttpStatus; import org.testng.Assert; import org.testng.annotations.Test; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingTrackerIntegrationTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingTrackerIntegrationTest.java index 0e6e7d354..728ac5a1c 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingTrackerIntegrationTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingTrackerIntegrationTest.java @@ -15,7 +15,7 @@ import org.alfresco.utility.model.ContentModel; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileType; import org.alfresco.utility.model.FolderModel; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.apache.chemistry.opencmis.commons.PropertyIds; import org.apache.chemistry.opencmis.commons.enums.VersioningState; import org.springframework.beans.factory.annotation.Autowired; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/SearchSolrAPITest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/SearchSolrAPITest.java index 945467bbb..f31441799 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/SearchSolrAPITest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/SearchSolrAPITest.java @@ -21,7 +21,7 @@ import javax.json.JsonArrayBuilder; import org.alfresco.rest.core.JsonBodyGenerator; import org.alfresco.rest.model.RestTextResponse; import org.alfresco.test.search.functional.searchServices.search.AbstractSearchServicesE2ETest; -import org.alfresco.utility.model.TestGroup; +import org.alfresco.search.TestGroup; import org.hamcrest.Matchers; import org.springframework.http.HttpStatus; import org.testng.Assert; From f9679e50edecd417279c817c579ce0e4748893b3 Mon Sep 17 00:00:00 2001 From: "meenal.bhave@alfresco.com" Date: Fri, 3 May 2019 16:35:30 +0100 Subject: [PATCH 07/23] Search-1631: Reverting the tas utility dependency back to 2.0.1 --- e2e-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 456a5b1a4..f6f0c8256 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -13,7 +13,7 @@ 6.0.0.3 6.0.0.0 - 2.0.9 + 2.0.1 2.6.0 src/test/resources/SearchSuite.xml From d809de1ed4faf70a231f70a64eb5e2b2ead29db1 Mon Sep 17 00:00:00 2001 From: "meenal.bhave@alfresco.com" Date: Fri, 3 May 2019 17:58:57 +0100 Subject: [PATCH 08/23] Search-1631: Putting back the validations as they were before --- .../searchServices/search/FacetRangeSearchTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java index c2eb5d186..612e7ab1c 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java @@ -210,7 +210,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest bucket.assertThat().field("label").is("[400 - 500]"); bucket.assertThat().field("filterQuery").is("content.size:[\"400\" TO \"500\"]"); metric = (Map) bucket.getMetrics().get(0).getValue(); - assertTrue(Integer.valueOf(metric.get("count")) == 2); + assertTrue(Integer.valueOf(metric.get("count")) >= 2); info = (Map) bucket.getBucketInfo(); assertEquals(info.get("start"),"400"); assertEquals(info.get("end"),"500"); @@ -328,7 +328,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest bucket.assertThat().field("label").is("(400 - 600]"); bucket.assertThat().field("filterQuery").is("content.size:<\"400\" TO \"600\"]"); metric = (Map) bucket.getMetrics().get(0).getValue(); - assertTrue(Integer.valueOf(metric.get("count")) == 5); + assertTrue(Integer.valueOf(metric.get("count")) >= 5); info = (Map) bucket.getBucketInfo(); assertEquals(info.get("start"),"400"); assertEquals(info.get("end"),"600"); From ad16f7080c587167a5d1ac488ba256a126f9762a Mon Sep 17 00:00:00 2001 From: "meenal.bhave@alfresco.com" Date: Wed, 8 May 2019 12:31:25 +0100 Subject: [PATCH 09/23] Search-1631: Fixed the CustomModelChanges Test and method isContentInSearchResults in case of 0 results --- .../test/search/functional/AbstractE2EFunctionalTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java index 293082b7c..5f2f26332 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java @@ -282,6 +282,11 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont } } } + else + { + found = false; + } + // Loop again if result is not as expected: To cater for solr lag: eventual consistency resultAsExpected = (expectedInResults == found); if (resultAsExpected) From 77631fb2faf033cea9699203d030bfa1ad0ec2d2 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 May 2019 15:39:39 +0100 Subject: [PATCH 10/23] tests fixed for master slave config --- e2e-test/pom.xml | 2 +- .../searchServices/search/SearchHighLightTest.java | 2 -- .../functional/searchServices/search/ShardInfoTest.java | 9 ++------- e2e-test/src/test/resources/default.properties | 2 +- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 456a5b1a4..d72051eb3 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -13,7 +13,7 @@ 6.0.0.3 6.0.0.0 - 2.0.9 + 2.0.9-SNAPSHOT 2.6.0 src/test/resources/SearchSuite.xml diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java index bf8e0d148..3e71a22d2 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java @@ -57,9 +57,7 @@ public class SearchHighLightTest extends AbstractSearchServicesE2ETest highlight.setFields(fields); SearchResponse nodes = query(queryReq, highlight); nodes.assertThat().entriesListIsNotEmpty(); - Assert.assertNotNull(nodes.getEntryByIndex(0).getSearch(), "SearchResponse: is not null"); ResponseHighLightModel hl = nodes.getEntryByIndex(0).getSearch().getHighlight().get(0); - Assert.assertNotNull(nodes.getEntryByIndex(0).getSearch(), "ResponseHighLightModel: is not null"); hl.assertThat().field("snippets").contains( "The landrover discovery is not a sports ¿car?"); } diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java index 581ffb161..3e1d37f67 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java @@ -102,7 +102,6 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest { RestShardInfoModel model = shardInfoModel.getModel(); assertEquals(model.getTemplate(), "rerank"); - assertEquals(model.getMode(), "MIXED"); assertEquals(model.getShardMethod(), "DB_ID"); assertTrue(model.getHasContent()); @@ -118,15 +117,11 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest AssertJUnit.assertNotNull(instance); AssertJUnit.assertTrue(baseUrls.contains(instance.getBaseUrl())); - - AssertJUnit.assertEquals(instance.getHost(), "search"); - AssertJUnit.assertEquals(instance.getState(), "ACTIVE"); - AssertJUnit.assertEquals(instance.getMode(), "MIXED"); + restClient.assertStatusCodeIs(HttpStatus.OK); } } - - + @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n}) public void getShardInfoWithoutAdminAuthority() throws Exception { diff --git a/e2e-test/src/test/resources/default.properties b/e2e-test/src/test/resources/default.properties index 72d142995..f832c5e17 100644 --- a/e2e-test/src/test/resources/default.properties +++ b/e2e-test/src/test/resources/default.properties @@ -1,7 +1,7 @@ # Alfresco HTTP Server Settings alfresco.scheme=http alfresco.server=localhost -alfresco.port=8081 +alfresco.port=8080 # sync service related sync.scheme=http From 81f81d3b1221d09f848eddd02414cca15f57a026 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 May 2019 15:41:28 +0100 Subject: [PATCH 11/23] Updated pom --- e2e-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index d72051eb3..456a5b1a4 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -13,7 +13,7 @@ 6.0.0.3 6.0.0.0 - 2.0.9-SNAPSHOT + 2.0.9 2.6.0 src/test/resources/SearchSuite.xml From 2f8bcf568effef971c9b009a6010e28bab81cda3 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 May 2019 08:23:42 +0100 Subject: [PATCH 12/23] Removed jUnit asserts --- .../searchServices/search/ShardInfoTest.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java index 3e1d37f67..8c3fbaaae 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java @@ -64,24 +64,24 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest assertEquals(model.getShardMethod(), "DB_ID"); assertTrue(model.getHasContent()); - AssertJUnit.assertTrue(stores.contains(model.getStores())); + assertTrue(stores.contains(model.getStores())); List shards = model.getShards(); - AssertJUnit.assertNotNull(shards); + assertNotNull(shards); RestShardModel shard = shards.iterator().next(); - AssertJUnit.assertNotNull(shard); + assertNotNull(shard); List instances = shard.getInstances(); - AssertJUnit.assertNotNull(instances); + assertNotNull(instances); RestInstanceModel instance = instances.iterator().next(); - AssertJUnit.assertNotNull(instance); + assertNotNull(instance); - AssertJUnit.assertTrue(baseUrls.contains(instance.getBaseUrl())); + assertTrue(baseUrls.contains(instance.getBaseUrl())); // TODO: Ideally Solr Host and Port should be Parameterised - AssertJUnit.assertEquals(instance.getHost(), "search"); - AssertJUnit.assertEquals(instance.getPort().intValue(), 8983); - AssertJUnit.assertEquals(instance.getState(), "ACTIVE"); - AssertJUnit.assertEquals(instance.getMode(), "MASTER"); + assertEquals(instance.getHost(), "search"); + assertEquals(instance.getPort().intValue(), 8983); + assertEquals(instance.getState(), "ACTIVE"); + assertEquals(instance.getMode(), "MASTER"); } } @@ -105,18 +105,18 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest assertEquals(model.getShardMethod(), "DB_ID"); assertTrue(model.getHasContent()); - AssertJUnit.assertTrue(stores.contains(model.getStores())); + assertTrue(stores.contains(model.getStores())); List shards = model.getShards(); - AssertJUnit.assertNotNull(shards); + assertNotNull(shards); RestShardModel shard = shards.iterator().next(); - AssertJUnit.assertNotNull(shard); + assertNotNull(shard); List instances = shard.getInstances(); - AssertJUnit.assertNotNull(instances); + assertNotNull(instances); RestInstanceModel instance = instances.iterator().next(); - AssertJUnit.assertNotNull(instance); + assertNotNull(instance); - AssertJUnit.assertTrue(baseUrls.contains(instance.getBaseUrl())); + assertTrue(baseUrls.contains(instance.getBaseUrl())); restClient.assertStatusCodeIs(HttpStatus.OK); } From cd67651bbf498766208f3ba2eb9ebb0abb62a7da Mon Sep 17 00:00:00 2001 From: "meenal.bhave@alfresco.com" Date: Fri, 10 May 2019 08:58:03 +0100 Subject: [PATCH 13/23] Search-1631: Test names amended to reflect product version they should work with --- .../search/FacetRangeSearchTest.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java index 612e7ab1c..7ba29193d 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java @@ -119,7 +119,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }) @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check basic facet range search api") - public void searchWithRange()throws Exception + public void searchWithRangePreASS121()throws Exception { SearchRequest query = createQuery("* AND SITE:'" + testSite.getId() + "'"); @@ -164,7 +164,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }) @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check date facet intervals search api") - public void searchWithRangeHardend()throws Exception + public void searchWithRangeHardendPreASS121()throws Exception { SearchRequest query = createQuery("A*"); @@ -222,7 +222,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }) @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check date facet intervals search api") - public void searchDateRange()throws Exception + public void searchDateRangePreASS121()throws Exception { SearchRequest query = createQuery("name:A*"); @@ -257,7 +257,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }) @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check date facet intervals search api") - public void searchDateAndSizeRanges()throws Exception + public void searchDateAndSizeRangesPreASS121()throws Exception { SearchRequest query = createQuery("name:A*"); List ranges = new ArrayList(); @@ -280,7 +280,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @Test(groups = { TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }) @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check basic facet range search api") - public void searchWithRangeAndIncludeUpperBound()throws Exception + public void searchWithRangeAndIncludeUpperBoundPreASS121()throws Exception { SearchRequest query = createQuery("A*"); @@ -340,7 +340,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check basic facet range search api") @SuppressWarnings("unchecked") - public void searchWithRangeV2() + public void searchWithRange() { SearchRequest query = createQuery("* AND SITE:'" + testSite.getId() + "'"); @@ -395,7 +395,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check date facet intervals search api") @SuppressWarnings("unchecked") - public void searchWithRangeHardendV2() + public void searchWithRangeHardend() { SearchRequest query = createQuery("* AND SITE:'" + testSite.getId() + "'"); @@ -455,7 +455,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check date facet intervals search api") @SuppressWarnings("unchecked") - public void searchDateRangeV2() + public void searchDateRange() { SearchRequest query = createQuery("name:A*"); @@ -490,7 +490,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @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 searchDateAndSizeRangesV2() + public void searchDateAndSizeRanges() { SearchRequest query = createQuery("* AND SITE:'" + testSite.getId() + "'"); List ranges = new ArrayList<>(); @@ -513,7 +513,7 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.ASS_121 }, executionType = ExecutionType.REGRESSION, description = "Check basic facet range search api") @SuppressWarnings("unchecked") - public void searchWithRangeAndIncludeUpperBoundV2() + public void searchWithRangeAndIncludeUpperBound() { SearchRequest query = createQuery("* AND SITE:'" + testSite.getId() + "'"); From ebdb44b58e5caea2e673c6b93598302e7549c6a3 Mon Sep 17 00:00:00 2001 From: agazzarini Date: Fri, 10 May 2019 12:05:13 +0200 Subject: [PATCH 14/23] [ SEARCH-1644 ] Remove duplicated line in log4j configuration --- e2e-test/src/test/resources/log4j.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/e2e-test/src/test/resources/log4j.properties b/e2e-test/src/test/resources/log4j.properties index 268d957c0..7ca620841 100644 --- a/e2e-test/src/test/resources/log4j.properties +++ b/e2e-test/src/test/resources/log4j.properties @@ -13,7 +13,6 @@ log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%t] %d{HH:mm:ss} %-5p %c{1}:%L - %m%n -log4j.appender.stdout.layout.ConversionPattern=[%t] %d{HH:mm:ss} %-5p %c{1}:%L - %m%n # TestRail particular log file # Direct log messages to a log file From 4d202beb7e29e0c7a2fa63e635b18f1155cd3df0 Mon Sep 17 00:00:00 2001 From: agazzarini Date: Fri, 10 May 2019 12:05:47 +0200 Subject: [PATCH 15/23] [ SEARCH-1644 ] tas-restapi dep version from 6.0.0.3 to 6.0.0.4 --- e2e-test/pom.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index f6f0c8256..66c3146ea 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -11,11 +11,11 @@ Search Analytics E2E Tests Test Project to test Search Service and Analytics Features on a complete setup of Alfresco, Share - 6.0.0.3 + 6.0.0.4 6.0.0.0 - 2.0.1 + 2.0.12 2.6.0 - src/test/resources/SearchSuite.xml + src/test/resources/cmis-search.xml 11 @@ -74,6 +74,7 @@ tests test + org.alfresco.tas From 8d76126e5f004a18759751ce267bcd649281df38 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 May 2019 11:36:18 +0100 Subject: [PATCH 16/23] Review changes made and pulled lastest version --- e2e-test/pom.xml | 2 +- .../search/AbstractSearchServicesE2ETest.java | 154 +++--------------- .../search/SearchHighLightTest.java | 33 ++-- .../searchServices/search/ShardInfoTest.java | 29 ++-- .../src/test/resources/default.properties | 2 +- 5 files changed, 51 insertions(+), 169 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 456a5b1a4..f6f0c8256 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -13,7 +13,7 @@ 6.0.0.3 6.0.0.0 - 2.0.9 + 2.0.1 2.6.0 src/test/resources/SearchSuite.xml diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java index 0256272c7..2e71239a2 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java @@ -1,18 +1,14 @@ /* * Copyright (C) 2018 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 + * 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 . */ @@ -27,13 +23,12 @@ import org.testng.annotations.BeforeClass; /** * Abstract Search test class that contains useful methods * such as: - *
    - *
  • Preparing the data to index. - *
  • Preparing search requests. + *
      + *
    • Preparing the data to index. + *
    • Preparing search requests. * * @author Michael Suzuki * @author Meenal Bhave - * */ public abstract class AbstractSearchServicesE2ETest extends AbstractE2EFunctionalTest { @@ -45,29 +40,33 @@ public abstract class AbstractSearchServicesE2ETest extends AbstractE2EFunctiona public void searchServicesDataPreparation() throws Exception { /* - * Create the following file structure for preconditions : - * |- folder - * |-- pangram.txt - * |-- cars.txt - * |-- alfresco.txt - * |-- + * Create the following file structure for preconditions : + * |- folder + * |-- pangram.txt + * |-- cars.txt + * |-- alfresco.txt + * |-- */ FolderModel folder = new FolderModel(SEARCH_DATA_SAMPLE_FOLDER); dataContent.usingUser(testUser).usingSite(testSite).createFolder(folder); - - //Create files + + // Create files String title = "Title: " + unique_searchString; String description = "Description: File is created for search tests by Author: " + unique_searchString + " . "; - file = new FileModel("pangram.txt", "pangram" + title, description, FileType.TEXT_PLAIN, description + " The quick brown fox jumps over the lazy dog"); + file = new FileModel("pangram.txt", "pangram" + title, description, FileType.TEXT_PLAIN, + description + " The quick brown fox jumps over the lazy dog"); - file2 = new FileModel("cars.txt", "cars" + title, description, FileType.TEXT_PLAIN, "The landrover discovery is not a sports car "); + file2 = new FileModel("cars.txt", "cars" + title, description, FileType.TEXT_PLAIN, + "The landrover discovery is not a sports car "); + + FileModel file3 = new FileModel("alfresco.txt", "alfresco", "alfresco", FileType.TEXT_PLAIN, + "Alfresco text file for search "); + + file4 = new FileModel(unique_searchString + ".txt", "uniquee" + title, description, FileType.TEXT_PLAIN, + "Unique text file for search "); - FileModel file3 = new FileModel("alfresco.txt", "alfresco", "alfresco", FileType.TEXT_PLAIN, "Alfresco text file for search "); - - file4 = new FileModel(unique_searchString + ".txt", "uniquee" + title, description, FileType.TEXT_PLAIN, "Unique text file for search "); - dataContent.usingUser(testUser).usingSite(testSite).usingResource(folder).createContent(file); dataContent.usingUser(testUser).usingSite(testSite).usingResource(folder).createContent(file2); dataContent.usingUser(testUser).usingSite(testSite).usingResource(folder).createContent(file3); @@ -75,113 +74,4 @@ public abstract class AbstractSearchServicesE2ETest extends AbstractE2EFunctiona waitForMetadataIndexing(file4.getName(), true); } - -// /** -// * Helper method which create an http post request to Search API end point. -// * @param term String search term -// * @return {@link SearchResponse} response. -// * @throws Exception if error -// * -// */ -// protected SearchResponse query(String term) throws Exception -// { -// RestRequestQueryModel queryReq = new RestRequestQueryModel(); -// queryReq.setLanguage("afts"); -// queryReq.setQuery(term); -// SearchRequest query = new SearchRequest(queryReq); -// return restClient.authenticateUser(testUser).withSearchAPI().search(query); -// } - - protected SearchRequest carsQuery() - { - return createQuery("cars"); - } - - /** - * Wait for Solr to finish indexing: Indexing has caught up = true if search returns appropriate results - * - * @param userQuery: search query, this can include the fieldname, unique search string will guarantee accurate results - * @param expectedInResults, true if entry is expected in the results set - * @return true (indexing is finished) if search returns appropriate results - * @throws Exception - */ - public boolean waitForIndexing(String userQuery, boolean expectedInResults) throws Exception - { - // Use the search query as is: fieldname(s) may or may not be specified within the userQuery - return waitForIndexing(null, userQuery, expectedInResults); - } - - /** - * waitForIndexing method that matches / waits for filename, metadata to be indexed. - * @param userQuery - * @param expectedInResults - * @return - * @throws Exception - */ - public boolean waitForMetadataIndexing(String userQuery, boolean expectedInResults) throws Exception - { - return waitForIndexing("name", userQuery, expectedInResults); - } - - /** - * waitForIndexing method that matches / waits for content to be indexed, this can take longer than metadata indexing. - * Since Metadata is indexed first, use this method where tests, queries need content to be indexed too. - * @param userQuery - * @param expectedInResults - * @return - * @throws Exception - */ - public boolean waitForContentIndexing(String userQuery, boolean expectedInResults) throws Exception - { - return waitForIndexing("cm:content", userQuery, expectedInResults); - } - - /** - * Wait for Solr to finish indexing: Indexing has caught up = true if search returns appropriate results - * - * @param fieldName: specific field to search for, e.g. name. When specified, the query will become: name:'userQuery' - * @param userQuery: search string, unique search string will guarantee accurate results - * @param expectedInResults, true if entry is expected in the results set - * @return true (indexing is finished) if search returns appropriate results - * @throws Exception - */ - private boolean waitForIndexing(String fieldName, String userQuery, boolean expectedInResults) throws Exception - { - boolean resultAsExpected = false; - String expectedStatusCode = HttpStatus.OK.toString(); - String query = (fieldName == null)? userQuery: String.format("%s:'%s'", fieldName, userQuery); - - // Repeat search until the query results are as expected or Search Retry count is hit - for (int searchCount = 1; searchCount <= 3; searchCount++) - { - SearchRequest searchRequest = createQuery(query); - SearchResponse response = query(searchRequest); - - if (restClient.getStatusCode().matches(expectedStatusCode)) - { - boolean found = !response.getEntries().isEmpty(); - - // Loop again if result is not as expected: To cater for solr lag: eventual consistency - resultAsExpected = (expectedInResults == found); - if (resultAsExpected) - { - break; - } - else - { - // Wait for the solr indexing. - Utility.waitToLoopTime(properties.getSolrWaitTimeInSeconds(), "Wait For Indexing"); - } - } - else - { - throw new AuthenticationException("API returned status code:" + restClient.getStatusCode() + " Expected: " + expectedStatusCode); - } - } - - return resultAsExpected; - } } - -} - diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java index d4ef59c6f..84a01e095 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java @@ -1,18 +1,14 @@ /* * 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 + * 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 . */ @@ -28,26 +24,25 @@ import org.alfresco.rest.search.RestRequestQueryModel; import org.alfresco.rest.search.SearchResponse; import org.alfresco.search.TestGroup; import org.alfresco.utility.report.Bug; -import org.testng.Assert; import org.testng.annotations.Test; /** * Search high lighting test. + * * @author Michael Suzuki - * */ public class SearchHighLightTest extends AbstractSearchServicesE2ETest { - @Test(groups={TestGroup.SEARCH,TestGroup.REST_API}) + @Test(groups = { TestGroup.SEARCH, TestGroup.REST_API }) @Bug(id = "TAS-3220") public void searchWithHighLight() throws Exception - { + { waitForContentIndexing(file2.getContent(), true); - RestRequestQueryModel queryReq = new RestRequestQueryModel(); + RestRequestQueryModel queryReq = new RestRequestQueryModel(); queryReq.setQuery("cm:content:cars"); queryReq.setUserQuery("cars"); - + RestRequestHighlightModel highlight = new RestRequestHighlightModel(); highlight.setPrefix("¿"); highlight.setPostfix("?"); @@ -55,19 +50,19 @@ public class SearchHighLightTest extends AbstractSearchServicesE2ETest List fields = new ArrayList<>(); fields.add(new RestRequestFieldsModel("cm:content")); highlight.setFields(fields); - SearchResponse nodes = query(queryReq, highlight); + SearchResponse nodes = query(queryReq, highlight); nodes.assertThat().entriesListIsNotEmpty(); ResponseHighLightModel hl = nodes.getEntryByIndex(0).getSearch().getHighlight().get(0); - hl.assertThat().field("snippets").contains( "The landrover discovery is not a sports ¿car?"); + hl.assertThat().field("snippets").contains("The landrover discovery is not a sports ¿car?"); } - - @Test(groups={TestGroup.SEARCH,TestGroup.REST_API}) + + @Test(groups = { TestGroup.SEARCH, TestGroup.REST_API }) public void searchNonIndexedData() throws Exception - { - RestRequestQueryModel queryReq = new RestRequestQueryModel(); + { + RestRequestQueryModel queryReq = new RestRequestQueryModel(); queryReq.setQuery("cm:title"); queryReq.setUserQuery("zoro"); - + RestRequestHighlightModel highlight = new RestRequestHighlightModel(); highlight.setPrefix("¿"); highlight.setPostfix("?"); @@ -75,7 +70,7 @@ public class SearchHighLightTest extends AbstractSearchServicesE2ETest List fields = new ArrayList<>(); fields.add(new RestRequestFieldsModel("cm:title")); highlight.setFields(fields); - SearchResponse nodes = query(queryReq, highlight); + SearchResponse nodes = query(queryReq, highlight); nodes.assertThat().entriesListDoesNotContain("highlight"); } } diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java index c3ea70160..eea7a6328 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java @@ -1,25 +1,20 @@ /* * Copyright (C) 2005-2018 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 + * 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.test.search.functional.searchServices.search; import org.testng.annotations.Test; -import org.testng.AssertJUnit; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; @@ -43,14 +38,15 @@ import org.springframework.http.HttpStatus; */ public class ShardInfoTest extends AbstractSearchServicesE2ETest { - /* The test that will be excluded when running master slave setup, excluding the ASS_MASTER test group.*/ - @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER}) + /* The test that will be excluded when running master slave setup, excluding the ASS_MASTER test group. */ + @Test(groups = { TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER }) public void getShardInfoWithAdminAuthority() throws JsonProcessingException { - RestShardInfoModelCollection info = restClient.authenticateUser(dataUser.getAdminUser()).withShardInfoAPI().getInfo(); + RestShardInfoModelCollection info = restClient.authenticateUser(dataUser.getAdminUser()).withShardInfoAPI() + .getInfo(); restClient.assertStatusCodeIs(HttpStatus.OK); info.assertThat().entriesListIsNotEmpty(); - assertEquals(info.getPagination().getTotalItems().intValue(), 2); + assertEquals(info.getPagination().getTotalItems().intValue(), 2); List stores = Arrays.asList("workspace://SpacesStore", "archive://SpacesStore"); List baseUrls = Arrays.asList("/solr/alfresco", "/solr/archive"); @@ -85,14 +81,15 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest } } - /* The test that will be run when in master slave setup by including the ASS_MASTER_SLAVE test group.*/ - @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER_SLAVE}) + /* The test that will be run when in master slave setup by including the ASS_MASTER_SLAVE test group. */ + @Test(groups = { TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n, TestGroup.ASS_MASTER_SLAVE }) public void getShardInfoWithAdminAuthorityMasterSlaveConfig() throws JsonProcessingException { - RestShardInfoModelCollection info = restClient.authenticateUser(dataUser.getAdminUser()).withShardInfoAPI().getInfo(); + RestShardInfoModelCollection info = restClient.authenticateUser(dataUser.getAdminUser()).withShardInfoAPI() + .getInfo(); restClient.assertStatusCodeIs(HttpStatus.OK); info.assertThat().entriesListIsNotEmpty(); - assertEquals(info.getPagination().getTotalItems().intValue(), 2); + assertEquals(info.getPagination().getTotalItems().intValue(), 2); List stores = Arrays.asList("workspace://SpacesStore", "archive://SpacesStore"); List baseUrls = Arrays.asList("/solr/alfresco", "/solr/archive"); @@ -121,8 +118,8 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest restClient.assertStatusCodeIs(HttpStatus.OK); } } - - @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n}) + + @Test(groups = { TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n }) public void getShardInfoWithoutAdminAuthority() throws Exception { restClient.authenticateUser(dataUser.createRandomTestUser()).withShardInfoAPI().getInfo(); diff --git a/e2e-test/src/test/resources/default.properties b/e2e-test/src/test/resources/default.properties index f832c5e17..72d142995 100644 --- a/e2e-test/src/test/resources/default.properties +++ b/e2e-test/src/test/resources/default.properties @@ -1,7 +1,7 @@ # Alfresco HTTP Server Settings alfresco.scheme=http alfresco.server=localhost -alfresco.port=8080 +alfresco.port=8081 # sync service related sync.scheme=http From 42cf75dcb9cf04804e108f43e5b6b31ec121951f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 May 2019 11:38:17 +0100 Subject: [PATCH 17/23] edited test --- .../functional/searchServices/search/ShardInfoTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java index eea7a6328..c311f084d 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java @@ -114,8 +114,8 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest assertNotNull(instance); assertTrue(baseUrls.contains(instance.getBaseUrl())); - - restClient.assertStatusCodeIs(HttpStatus.OK); + + assertEquals(instance.getState(), "ACTIVE"); } } From 12f30911aa08dcbf19983a56044743fff2f601b9 Mon Sep 17 00:00:00 2001 From: agazzarini Date: Fri, 10 May 2019 12:53:26 +0200 Subject: [PATCH 18/23] [ SEARCH-1644 ] suite filename reverted --- e2e-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 66c3146ea..83a18a79e 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -15,7 +15,7 @@ 6.0.0.0 2.0.12 2.6.0 - src/test/resources/cmis-search.xml + src/test/resources/SearchSuite.xml 11 From d39914b34b334d4b6261b134b06d933877473cce Mon Sep 17 00:00:00 2001 From: agazzarini Date: Fri, 10 May 2019 18:42:57 +0200 Subject: [PATCH 19/23] Revert "[ SEARCH-1644 ] tas-restapi dep version from 6.0.0.3 to 6.0.0.4" This reverts commit b42f2887 --- e2e-test/pom.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 83a18a79e..f6f0c8256 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -11,9 +11,9 @@ Search Analytics E2E Tests Test Project to test Search Service and Analytics Features on a complete setup of Alfresco, Share - 6.0.0.4 + 6.0.0.3 6.0.0.0 - 2.0.12 + 2.0.1 2.6.0 src/test/resources/SearchSuite.xml @@ -74,7 +74,6 @@ tests test - org.alfresco.tas From 244fa972e2db3dd644b52fdd57622fca56df25be Mon Sep 17 00:00:00 2001 From: agazzarini Date: Mon, 13 May 2019 16:17:17 +0200 Subject: [PATCH 20/23] [ SEARCH-1644 ] force e2e usage of jackson-databind 2.7.2 --- e2e-test/pom.xml | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index f6f0c8256..b26020a3a 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -13,7 +13,7 @@ 6.0.0.3 6.0.0.0 - 2.0.1 + 2.0.9 2.6.0 src/test/resources/SearchSuite.xml @@ -54,12 +54,24 @@ restapi-test ${tas.rest.api.version} test + + + com.fasterxml.jackson.core + jackson-databind + + org.alfresco.tas cmis-test ${tas.cmis.api.version} test + + + com.fasterxml.jackson.core + jackson-databind + + org.alfresco @@ -67,12 +79,23 @@ ${rm.version} test + + com.fasterxml.jackson.core + jackson-databind + 2.7.2 + org.alfresco alfresco-rm-automation-community-rest-api ${rm.version} tests test + + + com.fasterxml.jackson.core + jackson-databind + + From 0a2874fb169c38d592ce5cdca41bba80357f823f Mon Sep 17 00:00:00 2001 From: agazzarini Date: Mon, 13 May 2019 16:58:41 +0200 Subject: [PATCH 21/23] [ SEARCH-1644 ] force e2e usage of jackson-databind 2.7.7 --- e2e-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index b26020a3a..7ad05dcd8 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -82,7 +82,7 @@ com.fasterxml.jackson.core jackson-databind - 2.7.2 + 2.7.7 org.alfresco From 2638be804530b3a4406d4143ddab2ef438e82449 Mon Sep 17 00:00:00 2001 From: agazzarini Date: Mon, 13 May 2019 17:41:33 +0200 Subject: [PATCH 22/23] [ SEARCH-1644 ] configurable version of jackson-databind --- e2e-test/pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 7ad05dcd8..28b4f5168 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -22,6 +22,7 @@ ${java.version} ${java.version} 3.8.0 + 2.8.3 @@ -82,7 +83,7 @@ com.fasterxml.jackson.core jackson-databind - 2.7.7 + ${jackson.databind.version} org.alfresco From f8fc9c0f4976ea0062f99073dcfd0976cfc1336f Mon Sep 17 00:00:00 2001 From: agazzarini Date: Mon, 13 May 2019 17:47:15 +0200 Subject: [PATCH 23/23] [ SEARCH-1644 ] configurable version of jackson-databind + TAS utility dep --- e2e-test/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 28b4f5168..c098d3411 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -13,7 +13,7 @@ 6.0.0.3 6.0.0.0 - 2.0.9 + 2.0.10 2.6.0 src/test/resources/SearchSuite.xml @@ -22,7 +22,7 @@ ${java.version} ${java.version} 3.8.0 - 2.8.3 + 2.7.7