Merge branch 'master' into custom-model

# Conflicts:
#	src/main/resources/shared-resources/testdata/cmis-queries-data.xml
#	src/test/java/org/alfresco/cmis/CMISQueriesTest.java
This commit is contained in:
Paul Brodner
2016-10-31 15:07:41 +02:00
4 changed files with 130 additions and 1 deletions
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--CMIS Queries: passing the search query as first param and results expected -->
<testData>
<queries>
<query value="SELECT * FROM cmis:document where IN_FOLDER('%s')" expectedResults="5" />
<query value="SELECT * FROM cmis:folder where IN_FOLDER('%s')" expectedResults="3" />
<query value="SELECT * FROM cmis:document where IN_FOLDER('%s') AND cmis:name = 'fourthFile'" expectedResults="1" />
<query value="SELECT * FROM cmis:folder where IN_FOLDER('%s') AND cmis:name = 'subFolder'" expectedResults="1" />
<query value="SELECT * FROM cmis:document where IN_FOLDER('%s') ORDER BY cmis:name ASC" expectedResults="5" />
<query value="SELECT * FROM cmis:document where IN_FOLDER('%s') ORDER BY cmis:name DESC" expectedResults="5" />
<query value="SELECT * FROM cmis:folder where IN_FOLDER('%s') ORDER BY cmis:lastModificationDate ASC" expectedResults="3" />
<query value="SELECT * FROM cmis:folder where IN_FOLDER('%s') ORDER BY cmis:lastModificationDate DESC" expectedResults="3" />
<query value="SELECT * FROM cmis:document where IN_FOLDER('%s') ORDER BY cmis:createdBy DESC" expectedResults="5" />
<query value="SELECT * FROM cmis:document where IN_FOLDER('%s') AND cmis:name IS NOT NULL" expectedResults="5" />
<query value="SELECT * FROM cmis:folder where IN_FOLDER('%s') AND cmis:name IS NOT NULL" expectedResults="3" />
<query value="SELECT * FROM cmis:document where IN_FOLDER('%s') AND CONTAINS('fifthFile content')" expectedResults="1" />
<query value="SELECT * FROM cmis:document where IN_FOLDER('%s') AND cmis:name LIKE 'fourthFile'" expectedResults="1" />
<query value="SELECT * FROM cmis:folder where IN_FOLDER('%s') AND NOT(cmis:name NOT IN ('subFolder'))" expectedResults="1" />
<query value="SELECT * FROM cmis:document where IN_FOLDER('%s') AND cmis:name IN ('fourthFile', 'fifthFile.txt')" expectedResults="2" />
<query value="SELECT * FROM cmis:document where IN_FOLDER('%s') AND cmis:name NOT IN ('fourthFile', 'fifthFile.txt')" expectedResults="3" />
<query value="SELECT * FROM cmis:folder where IN_FOLDER('%s') AND cmis:name &lt;&gt; 'subFolder'" expectedResults="2" />
</queries>
</testData>
@@ -18,7 +18,7 @@ import org.testng.annotations.BeforeClass;
public abstract class CmisTest extends AbstractTestNGSpringContextTests
{
@Autowired
CmisWrapper cmisApi;
protected CmisWrapper cmisApi;
@Autowired
protected DataUser dataUser;
@@ -0,0 +1,48 @@
package org.alfresco.cmis.search;
import org.alfresco.cmis.CmisTest;
import org.alfresco.utility.Utility;
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.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test(groups = { TestGroup.CMIS, TestGroup.QUERIES })
public class SolrSearchByPath extends CmisTest
{
XMLTestData testData;
@BeforeClass(alwaysRun = true)
public void readTestDataFile()
{
cmisApi.authenticateUser(dataUser.getAdminUser());
}
@AfterClass(alwaysRun = true)
public void cleanupEnvironment() throws Exception
{
//testData.cleanup(dataContent);
}
@Test(dataProviderClass = XMLTestDataProvider.class, dataProvider = "getAllData")
@XMLDataConfig(file = "src/main/resources/shared-resources/testdata/input-data-search-by-path.xml")
public void prepareEnvironmentData(XMLTestData testData) throws Exception
{
this.testData = testData;
testData.createUsers(dataUser);
testData.createSitesStructure(dataSite, dataContent);
// wait for solr index
Utility.waitToLoopTime(15);
}
@Test(dependsOnMethods = "prepareEnvironmentData", dataProviderClass = XMLTestDataProvider.class, dataProvider = "getQueriesData")
@XMLDataConfig(file = "src/main/resources/shared-resources/testdata/input-data-search-by-path.xml")
public void executeSearchByPathQueries(QueryModel query) throws Exception
{
cmisApi.withQuery(query.getValue()).assertResultsCountIs(query.getResults());
}
}
@@ -0,0 +1,58 @@
package org.alfresco.cmis.search;
import org.alfresco.cmis.CmisTest;
import org.alfresco.utility.Utility;
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.FileModel;
import org.alfresco.utility.model.FileType;
import org.alfresco.utility.model.FolderModel;
import org.alfresco.utility.model.QueryModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test(groups = { TestGroup.CMIS, TestGroup.QUERIES })
public class SolrSearchInFolder extends CmisTest
{
UserModel testUser;
SiteModel testSite;
FolderModel parentFolder, subFolder1, subFolder2, subFolder3;
FileModel subFile1, subFile2, subFile3, subFile4, subFile5;
XMLTestData testData;
@BeforeClass(alwaysRun = true)
public void deployCustomContentModel() throws Exception
{
// create input data
parentFolder = FolderModel.getRandomFolderModel();
subFolder1 = FolderModel.getRandomFolderModel();
subFolder2 = FolderModel.getRandomFolderModel();
subFolder3 = new FolderModel("subFolder");
subFile5 = new FileModel("fifthFile.txt", FileType.TEXT_PLAIN, "fifthFile content");
subFile1 = new FileModel("firstFile", FileType.MSEXCEL);
subFile2 = FileModel.getRandomFileModel(FileType.MSPOWERPOINT2007);
subFile3 = FileModel.getRandomFileModel(FileType.TEXT_PLAIN);
subFile4 = new FileModel("fourthFile", "fourthFileTitle", "fourthFileDescription", FileType.MSWORD2007);
testUser = dataUser.createRandomTestUser();
testSite = dataSite.usingUser(testUser).createPublicRandomSite();
cmisApi.authenticateUser(testUser).usingSite(testSite).createFolder(parentFolder).then().usingResource(parentFolder).createFile(subFile5).and()
.assertThat().existsInRepo().and().assertThat().contentIs("fifthFile content").createFolder(subFolder1).and().assertThat().existsInRepo()
.createFolder(subFolder2).and().assertThat().existsInRepo().createFolder(subFolder3).and().assertThat().existsInRepo().createFile(subFile1)
.and().assertThat().existsInRepo().createFile(subFile2).and().assertThat().existsInRepo().createFile(subFile3).and().assertThat().existsInRepo()
.createFile(subFile4).and().assertThat().existsInRepo();
Utility.waitToLoopTime(10);
}
@Test(dataProviderClass = XMLTestDataProvider.class, dataProvider = "getQueriesData")
@XMLDataConfig(file = "src/main/resources/shared-resources/testdata/search-in-folder.xml")
public void executeCMISQuery(QueryModel query)
{
String currentQuery = String.format(query.getValue(), parentFolder.getNodeRef());
cmisApi.withQuery(currentQuery).assertResultsCountIs(query.getResults());
}
}