RM-5416: REST API Tests for Folder Classification - removing the base class

This commit is contained in:
jcule
2017-09-22 10:04:30 +01:00
parent c0bd488a3f
commit 51135a83c0
3 changed files with 75 additions and 55 deletions

View File

@@ -24,6 +24,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.core;
import com.jayway.restassured.builder.RequestSpecBuilder;
@@ -34,6 +35,7 @@ import org.alfresco.rest.model.RestHtmlResponse;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.rest.model.RestSiteModelsCollection;
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.utility.model.StatusModel;
import org.alfresco.utility.model.UserModel;
@@ -145,16 +147,24 @@ public class RMRestWrapper
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.
* If for example you want to sent multipart form data you can use: <pre>
* restClient.configureRequestSpec()
* .addMultiPart("filedata", Utility.getResourceTestDataFile("restapi-resource"))
* .addFormParam("renditions", "doclib")
* .addFormParam("autoRename", true);
* 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>
* restClient.configureRequestSpec().addMultiPart("filedata", Utility.getResourceTestDataFile("restapi-resource"))
* .addFormParam("renditions", "doclib").addFormParam("autoRename", true);
*
* restClient.withCoreAPI().usingNode(ContentModel.my()).createNode();
* </pre> This will create the node using the multipart data defined.
* </pre>
*
* This will create the node using the multipart data defined.
*/
public RequestSpecBuilder configureRequestSpec()
{

View File

@@ -24,6 +24,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.core;
import static lombok.AccessLevel.PROTECTED;
@@ -32,6 +33,7 @@ import javax.annotation.Resource;
import org.alfresco.rest.requests.Node;
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.api.FilePlanAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.FilesAPI;
@@ -65,7 +67,7 @@ import lombok.Setter;
public class RestAPIFactory
{
@Autowired
@Getter (value = PROTECTED)
@Getter(value = PROTECTED)
private DataUser dataUser;
@Resource(name = "RMRestWrapper")
@@ -85,6 +87,12 @@ public class RestAPIFactory
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
{
return getCoreAPI(null).usingNode(model);

View File

@@ -24,6 +24,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.rm.community.base;
import static lombok.AccessLevel.PROTECTED;
@@ -40,15 +41,11 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
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.user.UserPermissions.PERMISSION_FILING;
import static org.alfresco.rest.rm.community.model.user.UserRoles.ROLE_RM_ADMIN;
import static org.alfresco.rest.rm.community.model.user.UserRoles.ROLE_RM_USER;
import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.IMAGE_FILE;
import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createElectronicRecordModel;
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.createTempFile;
import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createUnfiledContainerChildModel;
import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.getFile;
import static org.alfresco.rest.rm.community.utils.RMSiteUtil.createStandardRMSiteModel;
import static org.alfresco.utility.data.RandomData.getRandomAlphanumeric;
import static org.springframework.http.HttpStatus.CREATED;
@@ -97,19 +94,19 @@ import lombok.Getter;
public class BaseRMRestTest extends RestTest
{
@Autowired
@Getter (value = PROTECTED)
@Getter(value = PROTECTED)
private RestAPIFactory restAPIFactory;
@Autowired
@Getter (value = PROTECTED)
@Getter(value = PROTECTED)
private DataUser dataUser;
@Autowired
@Getter (value = PROTECTED)
@Getter(value = PROTECTED)
private ContentService contentService;
@Autowired
@Getter (value = PROTECTED)
@Getter(value = PROTECTED)
private RMRolesAndActionsAPI rmRolesAndActionsAPI;
/**
@@ -136,22 +133,22 @@ public class BaseRMRestTest extends RestTest
@DataProvider(name = "validRootContainers")
public String[][] getValidRootContainers() throws Exception
{
return new String[][]
{
// an arbitrary record folder
{ createCategoryFolderInFilePlan().getId(), RECORD_FOLDER_TYPE},
// unfiled records root
{ UNFILED_RECORDS_CONTAINER_ALIAS, UNFILED_CONTAINER_TYPE},
// an arbitrary unfiled records folder
{ createUnfiledContainerChild(UNFILED_RECORDS_CONTAINER_ALIAS, "Unfiled Folder " + getRandomAlphanumeric(), UNFILED_RECORD_FOLDER_TYPE).getId(), UNFILED_RECORD_FOLDER_TYPE }
};
return new String[][] {
// an arbitrary record folder
{ createCategoryFolderInFilePlan().getId(), RECORD_FOLDER_TYPE },
// unfiled records root
{ UNFILED_RECORDS_CONTAINER_ALIAS, UNFILED_CONTAINER_TYPE },
// an arbitrary unfiled records folder
{ createUnfiledContainerChild(UNFILED_RECORDS_CONTAINER_ALIAS,
"Unfiled Folder " + getRandomAlphanumeric(), UNFILED_RECORD_FOLDER_TYPE).getId(),
UNFILED_RECORD_FOLDER_TYPE } };
}
/**
* @see org.alfresco.rest.RestTest#checkServerHealth()
*/
@Override
@BeforeClass (alwaysRun = true)
@BeforeClass(alwaysRun = true)
public void checkServerHealth() throws Exception
{
// Create RM Site if not exist
@@ -159,8 +156,7 @@ public class BaseRMRestTest extends RestTest
}
/**
* Helper method to create the RM Site via the POST request
* if the site doesn't exist
* Helper method to create the RM Site via the POST request if the site doesn't exist
*/
public void createRMSiteIfNotExists() throws Exception
{
@@ -224,10 +220,12 @@ public class BaseRMRestTest extends RestTest
* @return The created category
* @throws Exception on unsuccessful component creation
*/
public RecordCategory createRootCategory(UserModel userModel, String categoryName, String categoryTitle) throws Exception
public RecordCategory createRootCategory(UserModel userModel, String categoryName, String categoryTitle)
throws Exception
{
RecordCategory recordCategoryModel = createRecordCategoryModel(categoryName, categoryTitle);
return getRestAPIFactory().getFilePlansAPI(userModel).createRootRecordCategory(recordCategoryModel, FILE_PLAN_ALIAS);
return getRestAPIFactory().getFilePlansAPI(userModel).createRootRecordCategory(recordCategoryModel,
FILE_PLAN_ALIAS);
}
/**
@@ -240,10 +238,12 @@ public class BaseRMRestTest extends RestTest
* @return The created {@link RecordCategoryChild}
* @throws Exception {@link RecordCategoryAPI#createRecordCategoryChild(RecordCategoryChild, String)}
*/
public RecordCategoryChild createRecordCategoryChild(UserModel user, String recordCategoryId, String name, String type) throws Exception
public RecordCategoryChild createRecordCategoryChild(UserModel user, String recordCategoryId, String name,
String type) throws Exception
{
RecordCategoryChild recordCategoryChildModel = createRecordCategoryChildModel(name, type);
return getRestAPIFactory().getRecordCategoryAPI(user).createRecordCategoryChild(recordCategoryChildModel, recordCategoryId);
return getRestAPIFactory().getRecordCategoryAPI(user).createRecordCategoryChild(recordCategoryChildModel,
recordCategoryId);
}
/**
@@ -255,7 +255,8 @@ public class BaseRMRestTest extends RestTest
* @return The created {@link RecordCategoryChild}
* @throws Exception {@link RecordCategoryAPI#createRecordCategoryChild(RecordCategoryChild, String)}
*/
public RecordCategoryChild createRecordCategoryChild(String recordCategoryId, String name, String type) throws Exception
public RecordCategoryChild createRecordCategoryChild(String recordCategoryId, String name, String type)
throws Exception
{
return createRecordCategoryChild(getAdminUser(), recordCategoryId, name, type);
}
@@ -298,7 +299,8 @@ public class BaseRMRestTest extends RestTest
public RecordCategoryChild createFolder(UserModel user, String recordCategoryId, String name) throws Exception
{
RecordCategoryChild recordFolderModel = createRecordCategoryChildModel(name, RECORD_FOLDER_TYPE);
return getRestAPIFactory().getRecordCategoryAPI(user).createRecordCategoryChild(recordFolderModel, recordCategoryId);
return getRestAPIFactory().getRecordCategoryAPI(user).createRecordCategoryChild(recordFolderModel,
recordCategoryId);
}
/**
@@ -317,16 +319,18 @@ public class BaseRMRestTest extends RestTest
/**
* Helper method to create child unfiled record folder
*
*@param user The user under whose privileges this structure is going to be created
* @param user The user under whose privileges this structure is going to be created
* @param parentId The id of the parent folder
* @param nodeType The child type
* @return The created folder
* @throws Exception on unsuccessful component creation
*/
public UnfiledContainerChild createUnfiledRecordsFolderChild(UserModel user, String parentId, String childName, String nodeType) throws Exception
public UnfiledContainerChild createUnfiledRecordsFolderChild(UserModel user, String parentId, String childName,
String nodeType) throws Exception
{
UnfiledContainerChild childModel = createUnfiledContainerChildModel(childName, nodeType);
UnfiledContainerChild child = getRestAPIFactory().getUnfiledRecordFoldersAPI(user).createUnfiledRecordFolderChild(childModel, parentId);
UnfiledContainerChild child = getRestAPIFactory().getUnfiledRecordFoldersAPI(user)
.createUnfiledRecordFolderChild(childModel, parentId);
assertStatusCode(CREATED);
return child;
@@ -340,7 +344,8 @@ public class BaseRMRestTest extends RestTest
* @return The created folder
* @throws Exception on unsuccessful component creation
*/
public UnfiledContainerChild createUnfiledRecordsFolderChild(String parentId, String childName, String nodeType) throws Exception
public UnfiledContainerChild createUnfiledRecordsFolderChild(String parentId, String childName, String nodeType)
throws Exception
{
return createUnfiledRecordsFolderChild(getAdminUser(), parentId, childName, nodeType);
}
@@ -355,14 +360,16 @@ public class BaseRMRestTest extends RestTest
* @return The created chid
* @throws Exception on unsuccessful child creation
*/
public UnfiledContainerChild createUnfiledContainerChild(UserModel user, String parentId, String childName, String nodeType) throws Exception
public UnfiledContainerChild createUnfiledContainerChild(UserModel user, String parentId, String childName,
String nodeType) throws Exception
{
UnfiledContainerChild child = null;
UnfiledContainerChild childModel = createUnfiledContainerChildModel(childName, nodeType);
if (FilePlanComponentType.CONTENT_TYPE.equals(nodeType))
{
child = getRestAPIFactory().getUnfiledContainersAPI(user).uploadRecord(childModel, parentId, createTempFile(ELECTRONIC_RECORD_NAME, ELECTRONIC_RECORD_NAME));
child = getRestAPIFactory().getUnfiledContainersAPI(user).uploadRecord(childModel, parentId,
createTempFile(ELECTRONIC_RECORD_NAME, ELECTRONIC_RECORD_NAME));
}
else
{
@@ -382,7 +389,8 @@ public class BaseRMRestTest extends RestTest
* @return The created chid
* @throws Exception on unsuccessful child creation
*/
public UnfiledContainerChild createUnfiledContainerChild(String parentId, String childName, String nodeType) throws Exception
public UnfiledContainerChild createUnfiledContainerChild(String parentId, String childName, String nodeType)
throws Exception
{
return createUnfiledContainerChild(getAdminUser(), parentId, childName, nodeType);
}
@@ -397,11 +405,9 @@ public class BaseRMRestTest extends RestTest
protected RecordFolder closeFolder(String folderId) throws Exception
{
RecordFolder recordFolderModel = RecordFolder.builder()
.properties(RecordFolderProperties.builder()
.isClosed(true)
.build())
.build();
RecordFolder updateRecordFolder = getRestAPIFactory().getRecordFolderAPI().updateRecordFolder(recordFolderModel, folderId);
.properties(RecordFolderProperties.builder().isClosed(true).build()).build();
RecordFolder updateRecordFolder = getRestAPIFactory().getRecordFolderAPI().updateRecordFolder(recordFolderModel,
folderId);
assertStatusCode(OK);
return updateRecordFolder;
@@ -497,10 +503,8 @@ public class BaseRMRestTest extends RestTest
*/
public void deleteFolder(SiteModel siteModel, FolderModel folder)
{
contentService.deleteTree(getAdminUser().getUsername(),
getAdminUser().getPassword(),
siteModel.getId(),
folder.getName());
contentService.deleteTree(getAdminUser().getUsername(), getAdminUser().getPassword(), siteModel.getId(),
folder.getName());
}
/**
@@ -514,10 +518,7 @@ public class BaseRMRestTest extends RestTest
public Record createElectronicRecord(String parentId, String name) throws Exception
{
RecordFolderAPI recordFolderAPI = restAPIFactory.getRecordFolderAPI();
Record recordModel = Record.builder()
.name(name)
.nodeType(CONTENT_TYPE)
.build();
Record recordModel = Record.builder().name(name).nodeType(CONTENT_TYPE).build();
return recordFolderAPI.createRecord(recordModel, parentId);
}
@@ -554,6 +555,7 @@ public class BaseRMRestTest extends RestTest
{
getRestAPIFactory().getRMUserAPI().addUserPermission(categoryId, user, PERMISSION_FILING);
rmRolesAndActionsAPI.assignUserToRole(dataUser.getAdminUser().getUsername(),
dataUser.getAdminUser().getPassword(), user.getUsername(), ROLE_RM_USER);
dataUser.getAdminUser().getPassword(), user.getUsername(), ROLE_RM_USER);
}
}