mirror of
https://github.com/Alfresco/SearchServices.git
synced 2026-09-16 18:12:56 +00:00
Merge branch 'fix/Search-1313' into 'master'
Fix/search 1313 See merge request search_discovery/insightengine!230
This commit is contained in:
+8
-10
@@ -279,18 +279,17 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to check if the contentName is returned in the SearchResponse
|
||||
* @param response
|
||||
* @param contentName
|
||||
* @return
|
||||
* Method to check if the contentName is returned in the SearchResponse.
|
||||
*
|
||||
* @param response the search response
|
||||
* @param contentName the text we are using as matching/verifying criteria.
|
||||
* @return true if if the item with the contentName text is returned in the SearchResponse.
|
||||
*/
|
||||
public boolean isContentInSearchResponse(SearchResponse response, String contentName)
|
||||
{
|
||||
boolean found = response.getEntries().stream()
|
||||
return response.getEntries().stream()
|
||||
.map(entry -> entry.getModel().getName())
|
||||
.filter(name -> name.equalsIgnoreCase(contentName) || contentName.isBlank()).count() > 0;
|
||||
|
||||
return found;
|
||||
.anyMatch(name -> name.equalsIgnoreCase(contentName) || contentName.isBlank());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -426,8 +425,7 @@ public abstract class AbstractE2EFunctionalTest extends AbstractTestNGSpringCont
|
||||
/**
|
||||
* Helper method to test if the search query works and count matches where provided
|
||||
* @param query: AFTS or cmis query string
|
||||
* @param expectedCount: Only successful response is checked, when expectedCount is null (can not be exactly specified),
|
||||
* @param setCmis: Query language is set to cmis when setCmis is true, AFTS when false
|
||||
* @param expectedCount: Only successful response is checked, when expectedCount is null (can not be exactly specified),
|
||||
* @return SearchResponse
|
||||
*/
|
||||
protected SearchResponse testSearchQuery(String query, Integer expectedCount, SearchLanguage queryLanguage)
|
||||
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Copyright 2019 Alfresco Software, Ltd. All rights reserved.
|
||||
* License rights for this program may be obtained from Alfresco Software, Ltd.
|
||||
* pursuant to a written agreement and any use of this program without such an
|
||||
* agreement is prohibited.
|
||||
*/
|
||||
|
||||
package org.alfresco.test.search.functional.searchServices.search;
|
||||
|
||||
import org.alfresco.rest.model.RestNodeAssociationModelCollection;
|
||||
import org.alfresco.rest.model.RestNodeChildAssociationModel;
|
||||
import org.alfresco.test.search.functional.AbstractE2EFunctionalTest;
|
||||
import org.alfresco.utility.data.CustomObjectTypeProperties;
|
||||
import org.alfresco.utility.model.FileModel;
|
||||
import org.alfresco.utility.model.FolderModel;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Test class tests content in the secondary parent is found too
|
||||
* Created for Search-1313
|
||||
*
|
||||
* @author Meenal Bhave
|
||||
*/
|
||||
public class SearchSecondaryAssociationTest extends AbstractE2EFunctionalTest
|
||||
{
|
||||
private FolderModel testFolder1, testFolder2;
|
||||
private FileModel file1;
|
||||
|
||||
@BeforeClass(alwaysRun = true)
|
||||
public void dataPreparation()
|
||||
{
|
||||
// Folders
|
||||
testFolder1 = new FolderModel("folder1");
|
||||
testFolder2 = new FolderModel("folder2");
|
||||
|
||||
// File(s)
|
||||
file1 = new FileModel("file1.txt");
|
||||
file1.setContent("content file 1");
|
||||
|
||||
// Create folder1
|
||||
dataContent.usingUser(testUser).usingSite(testSite).createCustomContent(testFolder1, "cmis:folder", new CustomObjectTypeProperties());
|
||||
|
||||
// Create file1
|
||||
dataContent.usingUser(testUser).usingResource(testFolder1).createCustomContent(file1, "cmis:document", new CustomObjectTypeProperties());
|
||||
|
||||
// Create folder2
|
||||
dataContent.usingUser(testUser).usingSite(testSite).createCustomContent(testFolder2, "cmis:folder", new CustomObjectTypeProperties());
|
||||
|
||||
// wait for solr index
|
||||
waitForMetadataIndexing(file1.getName(), true);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void testSearchPathForSecondaryAssociation() throws Exception
|
||||
{
|
||||
String queryPathFolder1 = "PATH:\"/app:company_home/st:sites/cm:" + testSite.getTitle() +
|
||||
"/cm:documentLibrary/cm:" + testFolder1.getName() + "/cm:" + file1.getName() + "\"";
|
||||
|
||||
// Test if file can be found in folder1: Primary Parent
|
||||
boolean found = isContentInSearchResults(queryPathFolder1, file1.getName(), true);
|
||||
Assert.assertTrue(found, "File Not found using Primary Parent Path");
|
||||
|
||||
String queryPathFolder2 = "PATH:\"/app:company_home/st:sites/cm:" + testSite.getTitle() +
|
||||
"/cm:documentLibrary/cm:" + testFolder2.getName() + "/cm:" + file1.getName() + "\"";
|
||||
|
||||
// Test if file can not be found in folder2
|
||||
found = isContentInSearchResults(queryPathFolder2, file1.getName(), false);
|
||||
Assert.assertTrue(found, "File found using Secondary Parent Path");
|
||||
|
||||
// Create Secondary association in folder2
|
||||
RestNodeChildAssociationModel childAssoc1 = new RestNodeChildAssociationModel(file1.getNodeRefWithoutVersion(), "cm:contains");
|
||||
String secondaryChildrenBody = "[" + childAssoc1.toJson() + "]";
|
||||
|
||||
restClient.authenticateUser(testUser).withCoreAPI().usingResource(testFolder2).createSecondaryChildren(secondaryChildrenBody);
|
||||
RestNodeAssociationModelCollection secondaryChildren = restClient.authenticateUser(testUser).withCoreAPI().usingResource(testFolder2).getSecondaryChildren();
|
||||
secondaryChildren.getEntryByIndex(0).assertThat().field("id").is(file1.getNodeRefWithoutVersion());
|
||||
|
||||
// Test if file can be found in folder2: Secondary Parent
|
||||
found = isContentInSearchResults(queryPathFolder2, file1.getName(), true);
|
||||
Assert.assertTrue(found, "File Not found using Secondary Parent Path");
|
||||
|
||||
// Remove Secondary association
|
||||
restClient.authenticateUser(testUser).withCoreAPI().usingResource(testFolder2).deleteSecondaryChild(secondaryChildren.getEntryByIndex(0));
|
||||
|
||||
// Test if file can not be found in folder2
|
||||
found = isContentInSearchResults(queryPathFolder2, file1.getName(), false);
|
||||
Assert.assertTrue(found, "File found using Secondary Parent Path");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user