RM-5416: REST API Tests for Folder Classification

This commit is contained in:
jcule
2017-09-25 18:31:43 +01:00
parent 701f7d065d
commit 7b3628a1e3
3 changed files with 93 additions and 0 deletions

View File

@@ -34,6 +34,7 @@ import org.alfresco.rest.model.RestHtmlResponse;
import org.alfresco.rest.model.RestSiteModel; import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.rest.model.RestSiteModelsCollection; import org.alfresco.rest.model.RestSiteModelsCollection;
import org.alfresco.rest.requests.coreAPI.RestCoreAPI; import org.alfresco.rest.requests.coreAPI.RestCoreAPI;
import org.alfresco.rest.requests.search.SearchAPI;
import org.alfresco.rest.rm.community.requests.gscore.GSCoreAPI; import org.alfresco.rest.rm.community.requests.gscore.GSCoreAPI;
import org.alfresco.utility.model.StatusModel; import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.UserModel; import org.alfresco.utility.model.UserModel;
@@ -145,6 +146,12 @@ public class RMRestWrapper
return restWrapper.withCoreAPI(); return restWrapper.withCoreAPI();
} }
/** Get the Alfresco Search API. */
public SearchAPI withSearchAPI()
{
return restWrapper.withSearchAPI();
}
/** /**
* You can handle the request sent to server by calling this method. * You can handle the request sent to server by calling this method.
* If for example you want to sent multipart form data you can use: <pre> * If for example you want to sent multipart form data you can use: <pre>

View File

@@ -32,6 +32,7 @@ import javax.annotation.Resource;
import org.alfresco.rest.requests.Node; import org.alfresco.rest.requests.Node;
import org.alfresco.rest.requests.coreAPI.RestCoreAPI; import org.alfresco.rest.requests.coreAPI.RestCoreAPI;
import org.alfresco.rest.requests.search.SearchAPI;
import org.alfresco.rest.rm.community.requests.gscore.GSCoreAPI; import org.alfresco.rest.rm.community.requests.gscore.GSCoreAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.FilePlanAPI; import org.alfresco.rest.rm.community.requests.gscore.api.FilePlanAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.FilesAPI; import org.alfresco.rest.rm.community.requests.gscore.api.FilesAPI;
@@ -85,6 +86,12 @@ public class RestAPIFactory
return getRmRestWrapper().withCoreAPI(); return getRmRestWrapper().withCoreAPI();
} }
private SearchAPI getSearchAPI(UserModel userModel)
{
getRmRestWrapper().authenticateUser(userModel != null ? userModel : getDataUser().getAdminUser());
return getRmRestWrapper().withSearchAPI();
}
public Node getNodeAPI(RepoTestModel model) throws Exception public Node getNodeAPI(RepoTestModel model) throws Exception
{ {
return getCoreAPI(null).usingNode(model); return getCoreAPI(null).usingNode(model);

View File

@@ -33,11 +33,14 @@ import static org.alfresco.rest.rm.community.base.TestData.RECORD_CATEGORY_TITLE
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.FILE_PLAN_ALIAS; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.FILE_PLAN_ALIAS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.UNFILED_RECORDS_CONTAINER_ALIAS; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.UNFILED_RECORDS_CONTAINER_ALIAS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAspects.ASPECTS_COMPLETED_RECORD; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAspects.ASPECTS_COMPLETED_RECORD;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.CONTENT_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_CATEGORY_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_CATEGORY_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_FOLDER_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_FOLDER_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.UNFILED_CONTAINER_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.UNFILED_CONTAINER_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.UNFILED_RECORD_FOLDER_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.UNFILED_RECORD_FOLDER_TYPE;
import static org.alfresco.rest.rm.community.model.user.UserPermissions.PERMISSION_FILING;
import static org.alfresco.rest.rm.community.model.user.UserRoles.ROLE_RM_USER;
import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createRecordCategoryChildModel; import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createRecordCategoryChildModel;
import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createRecordCategoryModel; import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createRecordCategoryModel;
import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createTempFile; import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createTempFile;
@@ -51,6 +54,7 @@ import static org.testng.Assert.assertTrue;
import java.util.List; import java.util.List;
import org.alfresco.dataprep.ContentService;
import org.alfresco.rest.RestTest; import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.RestAPIFactory; import org.alfresco.rest.core.RestAPIFactory;
import org.alfresco.rest.rm.community.model.fileplan.FilePlan; import org.alfresco.rest.rm.community.model.fileplan.FilePlan;
@@ -65,8 +69,12 @@ import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainer;
import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChild; import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChild;
import org.alfresco.rest.rm.community.requests.gscore.api.RMSiteAPI; import org.alfresco.rest.rm.community.requests.gscore.api.RMSiteAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.RecordCategoryAPI; import org.alfresco.rest.rm.community.requests.gscore.api.RecordCategoryAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.RecordFolderAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.RecordsAPI; import org.alfresco.rest.rm.community.requests.gscore.api.RecordsAPI;
import org.alfresco.rest.v0.RMRolesAndActionsAPI;
import org.alfresco.utility.data.DataUser; import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.model.FolderModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.UserModel; import org.alfresco.utility.model.UserModel;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@@ -92,6 +100,14 @@ public class BaseRMRestTest extends RestTest
@Getter (value = PROTECTED) @Getter (value = PROTECTED)
private DataUser dataUser; private DataUser dataUser;
@Autowired
@Getter(value = PROTECTED)
private ContentService contentService;
@Autowired
@Getter(value = PROTECTED)
private RMRolesAndActionsAPI rmRolesAndActionsAPI;
/** /**
* Asserts the given status code * Asserts the given status code
* *
@@ -468,4 +484,67 @@ public class BaseRMRestTest extends RestTest
{ {
return getFilePlanAsUser(getAdminUser(), componentId); return getFilePlanAsUser(getAdminUser(), componentId);
} }
/**
* Recursively delete a folder
*
* @param siteModel
* @param folder
*/
public void deleteFolder(SiteModel siteModel, FolderModel folder)
{
contentService.deleteTree(getAdminUser().getUsername(), getAdminUser().getPassword(), siteModel.getId(),
folder.getName());
}
/**
* Create an electronic record
*
* @param parentId the id of the parent
* @param name the name of the record
* @return the created record
* @throws Exception
*/
public Record createElectronicRecord(String parentId, String name) throws Exception
{
RecordFolderAPI recordFolderAPI = restAPIFactory.getRecordFolderAPI();
Record recordModel = Record.builder().name(name).nodeType(CONTENT_TYPE).build();
return recordFolderAPI.createRecord(recordModel, parentId);
}
/**
* Delete a record folder
*
* @param recordFolderId the id of the record folder to delete
*/
public void deleteRecordFolder(String recordFolderId)
{
RecordFolderAPI recordFolderAPI = restAPIFactory.getRecordFolderAPI();
recordFolderAPI.deleteRecordFolder(recordFolderId);
}
/**
* Delete a record category
*
* @param recordCategoryId the id of the record category to delete
*/
public void deleteRecordCategory(String recordCategoryId)
{
RecordCategoryAPI recordCategoryAPI = restAPIFactory.getRecordCategoryAPI();
recordCategoryAPI.deleteRecordCategory(recordCategoryId);
}
/**
* Assign filling permission on a record category and give the user RM_USER role
*
* @param user the user to assign the permission to
* @param categoryId the id of the category to assign permissions for
* @throws Exception
*/
public void assignFillingPermissionsOnCategory(UserModel user, String categoryId) throws Exception
{
getRestAPIFactory().getRMUserAPI().addUserPermission(categoryId, user, PERMISSION_FILING);
rmRolesAndActionsAPI.assignUserToRole(dataUser.getAdminUser().getUsername(),
dataUser.getAdminUser().getPassword(), user.getUsername(), ROLE_RM_USER);
}
} }