diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 32b92c687..c098d3411 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -12,7 +12,7 @@ Test Project to test Search Service and Analytics Features on a complete setup of Alfresco, Share 6.0.0.3 - 6.0.0.1 + 6.0.0.0 2.0.10 2.6.0 src/test/resources/SearchSuite.xml @@ -22,6 +22,7 @@ ${java.version} ${java.version} 3.8.0 + 2.7.7 @@ -54,24 +55,24 @@ restapi-test ${tas.rest.api.version} test - - - com.fasterxml.jackson.core - jackson-databind - - + + + com.fasterxml.jackson.core + jackson-databind + + org.alfresco.tas cmis-test ${tas.cmis.api.version} test - - - com.fasterxml.jackson.core - jackson-databind - - + + + com.fasterxml.jackson.core + jackson-databind + + org.alfresco @@ -79,18 +80,23 @@ ${rm.version} test + + com.fasterxml.jackson.core + jackson-databind + ${jackson.databind.version} + org.alfresco alfresco-rm-automation-community-rest-api ${rm.version} tests test - - - com.fasterxml.jackson.core - jackson-databind - - + + + com.fasterxml.jackson.core + jackson-databind + + 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/AbstractE2EFunctionalTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java index 9477461c1..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 @@ -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,11 +270,23 @@ 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())); + } } } + else + { + found = false; + } + // Loop again if result is not as expected: To cater for solr lag: eventual consistency resultAsExpected = (expectedInResults == found); if (resultAsExpected) @@ -311,9 +321,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 +334,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 +360,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 +417,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/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/AbstractSearchServicesE2ETest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java index 2a9cc270d..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,45 +1,34 @@ /* * 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 . */ 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: - *
    - *
  • 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 { @@ -51,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); @@ -81,110 +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; - } -} \ No newline at end of file +} 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 8ca29c1e8..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; @@ -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 673f24268..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 @@ -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; @@ -32,11 +34,10 @@ 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; -import org.testng.Assert; import org.testng.annotations.Test; /** @@ -74,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); @@ -114,6 +115,227 @@ public class FacetRangeSearchTest extends AbstractSearchServicesE2ETest facetRangeModel.setGap("100"); } + @SuppressWarnings("unchecked") + @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 searchWithRangePreASS121()throws Exception + { + SearchRequest query = createQuery("* AND SITE:'" + testSite.getId() + "'"); + + RestRequestRangesModel facetRangeModel = new RestRequestRangesModel(); + facetRangeModel.setField("content.size"); + facetRangeModel.setStart("0"); + facetRangeModel.setEnd("200"); + facetRangeModel.setGap("20"); + 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 - 20)"); + bucket.assertThat().field("filterQuery").is("content.size:[\"0\" TO \"20\">"); + Map metric = (Map) bucket.getMetrics().get(0).getValue(); + 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"),"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("[20 - 40)"); + bucket.assertThat().field("filterQuery").is("content.size:[\"20\" TO \"40\">"); + metric = (Map) bucket.getMetrics().get(0).getValue(); + assertEquals(Integer.valueOf(metric.get("count")).intValue(), 2, "Unexpected count for second bucket."); + info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"20"); + assertEquals(info.get("end"),"40"); + assertEquals(info.get("startInclusive"),"true"); + assertEquals(info.get("endInclusive"),"false"); + } + + @SuppressWarnings("unchecked") + @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 searchWithRangeHardendPreASS121()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")) >= 2); + 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.PreASS_121 }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, + description = "Check date facet intervals search api") + public void searchDateRangePreASS121()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(2)); + + RestGenericBucketModel bucket = buckets.get(0); + bucket.assertThat().field("label").is("[2015-09-29T10:45:15.729Z - 2016-07-05T10:45:15.729Z)"); + bucket.assertThat().field("filterQuery").is("created:[\"2015-09-29T10:45:15.729Z\" TO \"2016-07-05T10:45:15.729Z\">"); + bucket.getMetrics().get(0).assertThat().field("value").is("{count=1}"); + Map info = (Map) bucket.getBucketInfo(); + assertEquals(info.get("start"),"2015-09-29T10:45:15.729Z"); + 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"),"false"); + } + + @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 searchDateAndSizeRangesPreASS121()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.PreASS_121 }) + @TestRail(section = {TestGroup.REST_API, TestGroup.SEARCH, TestGroup.PreASS_121 }, executionType = ExecutionType.REGRESSION, + description = "Check basic facet range search api") + public void searchWithRangeAndIncludeUpperBoundPreASS121()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")) >= 5); + 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") @@ -143,7 +365,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"); @@ -201,7 +423,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 +433,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 +445,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"); } @@ -260,7 +482,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"); } @@ -319,7 +541,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 +566,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 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 593c52b02..d70ad2960 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 92a9185e1..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; @@ -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/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..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 . */ @@ -26,27 +22,27 @@ 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; /** * 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("?"); @@ -54,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("?"); @@ -74,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/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..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 @@ -1,23 +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 static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; @@ -31,9 +28,8 @@ 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; /** * Shard info end point REST API test. @@ -42,13 +38,15 @@ import org.testng.annotations.Test; */ public class ShardInfoTest extends AbstractSearchServicesE2ETest { - @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n}) + /* 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"); @@ -83,7 +81,45 @@ public class ShardInfoTest extends AbstractSearchServicesE2ETest } } - @Test(groups={TestGroup.SEARCH, TestGroup.REST_API, TestGroup.ACS_60n}) + /* 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(); + 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(); + assertEquals(model.getTemplate(), "rerank"); + assertEquals(model.getShardMethod(), "DB_ID"); + assertTrue(model.getHasContent()); + + assertTrue(stores.contains(model.getStores())); + + List shards = model.getShards(); + assertNotNull(shards); + RestShardModel shard = shards.iterator().next(); + assertNotNull(shard); + List instances = shard.getInstances(); + assertNotNull(instances); + RestInstanceModel instance = instances.iterator().next(); + assertNotNull(instance); + + assertTrue(baseUrls.contains(instance.getBaseUrl())); + + assertEquals(instance.getState(), "ACTIVE"); + } + } + + @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/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..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; @@ -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/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 c91a8a3d2..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; @@ -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(); 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; 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