mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
tests updates java docs and clean up data after test run
This commit is contained in:
@@ -26,6 +26,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.rest.v0;
|
package org.alfresco.rest.v0;
|
||||||
|
|
||||||
|
import static org.alfresco.rest.core.v0.APIUtils.convertHTTPResponseToJSON;
|
||||||
import static org.apache.http.HttpStatus.SC_OK;
|
import static org.apache.http.HttpStatus.SC_OK;
|
||||||
import static org.testng.AssertJUnit.assertNotNull;
|
import static org.testng.AssertJUnit.assertNotNull;
|
||||||
|
|
||||||
@@ -46,7 +47,6 @@ import org.apache.chemistry.opencmis.client.api.CmisObject;
|
|||||||
import org.apache.http.HttpEntity;
|
import org.apache.http.HttpEntity;
|
||||||
import org.apache.http.HttpResponse;
|
import org.apache.http.HttpResponse;
|
||||||
import org.apache.http.ParseException;
|
import org.apache.http.ParseException;
|
||||||
import org.apache.http.util.EntityUtils;
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
@@ -62,10 +62,16 @@ import org.springframework.stereotype.Component;
|
|||||||
public class HoldsAPI extends BaseAPI
|
public class HoldsAPI extends BaseAPI
|
||||||
{
|
{
|
||||||
public static final String HOLDS_CONTAINER = "Holds";
|
public static final String HOLDS_CONTAINER = "Holds";
|
||||||
|
/**
|
||||||
|
* The URI to create a hold
|
||||||
|
*/
|
||||||
private static final String CREATE_HOLDS_API = "{0}type/rma:hold/formprocessor";
|
private static final String CREATE_HOLDS_API = "{0}type/rma:hold/formprocessor";
|
||||||
|
|
||||||
/** The URI to add items to hold.*/
|
/** The URI to add items to hold.*/
|
||||||
private static final String RM_HOLDS_API = "{0}rma/holds";
|
private static final String RM_HOLDS_API = "{0}rma/holds";
|
||||||
|
/**
|
||||||
|
* The URI to get holds.
|
||||||
|
*/
|
||||||
private static final String GET_RM_HOLDS = RM_HOLDS_API + "?{1}";
|
private static final String GET_RM_HOLDS = RM_HOLDS_API + "?{1}";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -122,15 +128,14 @@ public class HoldsAPI extends BaseAPI
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return new JSONObject(EntityUtils.toString(httpResponse.getEntity()))
|
return convertHTTPResponseToJSON(httpResponse).getString("persistedObject")
|
||||||
.getString("persistedObject")
|
|
||||||
.replaceAll(NODE_REF_WORKSPACE_SPACES_STORE, "");
|
.replaceAll(NODE_REF_WORKSPACE_SPACES_STORE, "");
|
||||||
}
|
}
|
||||||
catch(JSONException error)
|
catch(JSONException error)
|
||||||
{
|
{
|
||||||
LOGGER.error("Converting message body to JSON failed. Body: {}", httpResponse, error);
|
LOGGER.error("Converting message body to JSON failed. Body: {}", httpResponse, error);
|
||||||
}
|
}
|
||||||
catch(ParseException | IOException error)
|
catch(ParseException error)
|
||||||
{
|
{
|
||||||
LOGGER.error("Parsing message body failed.", error);
|
LOGGER.error("Parsing message body failed.", error);
|
||||||
}
|
}
|
||||||
@@ -176,15 +181,15 @@ public class HoldsAPI extends BaseAPI
|
|||||||
* @param holdName the hold name
|
* @param holdName the hold name
|
||||||
* @return The HTTP response
|
* @return The HTTP response
|
||||||
*/
|
*/
|
||||||
public HttpResponse addItemToHold(String user, String password, int expectedStatus, String itemNodeRef, String
|
public HttpResponse addItemToHold(String user, String password, int expectedStatus, String itemNodeRef,
|
||||||
holdName)
|
String holdName)
|
||||||
{
|
{
|
||||||
final JSONObject requestParams = createHoldJsonObject(user, password, itemNodeRef, holdName);
|
final JSONObject requestParams = addToHoldJsonObject(user, password, itemNodeRef, holdName);
|
||||||
return doPostJsonRequest(user, password, expectedStatus, requestParams, RM_HOLDS_API);
|
return doPostJsonRequest(user, password, expectedStatus, requestParams, RM_HOLDS_API);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Util method to add item (active content /record/ record folder) to the hold and gets the error message
|
* Util method to add item (active content /record/ record folder) to the hold and get the error message
|
||||||
*
|
*
|
||||||
* @param user the user who adds the item to the hold
|
* @param user the user who adds the item to the hold
|
||||||
* @param password the user's password
|
* @param password the user's password
|
||||||
@@ -207,7 +212,7 @@ public class HoldsAPI extends BaseAPI
|
|||||||
* @param holdName
|
* @param holdName
|
||||||
* @return JSONObject fo
|
* @return JSONObject fo
|
||||||
*/
|
*/
|
||||||
private JSONObject createHoldJsonObject(String user, String password, String itemNodeRef, String holdName)
|
private JSONObject addToHoldJsonObject(String user, String password, String itemNodeRef, String holdName)
|
||||||
{
|
{
|
||||||
|
|
||||||
final JSONArray nodeRefs = new JSONArray().put(getNodeRefSpacesStore() + itemNodeRef);
|
final JSONArray nodeRefs = new JSONArray().put(getNodeRefSpacesStore() + itemNodeRef);
|
||||||
@@ -239,10 +244,11 @@ public class HoldsAPI extends BaseAPI
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds item (record/ record folder) to the hold
|
* Remove item (record/ record folder) to the hold
|
||||||
*
|
*
|
||||||
* @param user the user who adds the item to the hold
|
* @param user the user who adds the item to the hold
|
||||||
* @param password the user's password
|
* @param password the user's password
|
||||||
|
* @param expectedStatus https status code expected
|
||||||
* @param itemNodeRef the nodeRef of the item to be added to hold
|
* @param itemNodeRef the nodeRef of the item to be added to hold
|
||||||
* @param holdName the hold name
|
* @param holdName the hold name
|
||||||
* @return The HTTP response
|
* @return The HTTP response
|
||||||
@@ -250,12 +256,12 @@ public class HoldsAPI extends BaseAPI
|
|||||||
public HttpResponse removeItemFromHold(String user, String password, int expectedStatus, String itemNodeRef, String
|
public HttpResponse removeItemFromHold(String user, String password, int expectedStatus, String itemNodeRef, String
|
||||||
holdName)
|
holdName)
|
||||||
{
|
{
|
||||||
final JSONObject requestParams = createHoldJsonObject(user, password, itemNodeRef, holdName);
|
final JSONObject requestParams = addToHoldJsonObject(user, password, itemNodeRef, holdName);
|
||||||
return doPutJsonRequest(user, password, expectedStatus, requestParams, RM_HOLDS_API);
|
return doPutJsonRequest(user, password, expectedStatus, requestParams, RM_HOLDS_API);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Util method to add item (active content /record/ record folder) to the hold and gets the error message
|
* Util method to remove item (active content /record/ record folder) from hold and get the error message
|
||||||
*
|
*
|
||||||
* @param user the user who adds the item to the hold
|
* @param user the user who adds the item to the hold
|
||||||
* @param password the user's password
|
* @param password the user's password
|
||||||
@@ -278,9 +284,11 @@ public class HoldsAPI extends BaseAPI
|
|||||||
private String extractErrorMessageFromHttpResponse(HttpResponse httpResponse)
|
private String extractErrorMessageFromHttpResponse(HttpResponse httpResponse)
|
||||||
{
|
{
|
||||||
final HttpEntity entity = httpResponse.getEntity();
|
final HttpEntity entity = httpResponse.getEntity();
|
||||||
|
JsonReader reader = null;
|
||||||
try(InputStream responseStream = entity.getContent(); JsonReader reader = Json.createReader(responseStream))
|
try
|
||||||
{
|
{
|
||||||
|
final InputStream responseStream = entity.getContent();
|
||||||
|
reader = Json.createReader(responseStream);
|
||||||
return reader.readObject().getString("message");
|
return reader.readObject().getString("message");
|
||||||
}
|
}
|
||||||
catch (JSONException error)
|
catch (JSONException error)
|
||||||
@@ -291,20 +299,26 @@ public class HoldsAPI extends BaseAPI
|
|||||||
{
|
{
|
||||||
LOGGER.error("Parsing message body failed.", error);
|
LOGGER.error("Parsing message body failed.", error);
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (reader != null)
|
||||||
|
{
|
||||||
|
reader.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the list of the available holds which have the item node reference if includedInHold parameter is true
|
* Get the list of the available holds which have the item node reference if includedInHold parameter is true,
|
||||||
* otherwise a list of hold node references will be retrieved which do not include the given node reference.
|
* otherwise a list of hold node references will be retrieved which do not include the given node reference.
|
||||||
*
|
*
|
||||||
* @param user The username of the user to use.
|
* @param user The username of the user to use.
|
||||||
* @param password The password of the user.
|
* @param password The password of the user.
|
||||||
* @param itemNodeRef
|
* @param itemNodeRef The item node reference
|
||||||
* @param includedInHold
|
* @param includedInHold True to retrieve the holds which have the item node reference
|
||||||
* @param fileOnly
|
* @param fileOnly True if only files should be return
|
||||||
* @return return
|
* @return return a list of hold entries
|
||||||
*/
|
*/
|
||||||
public List<HoldEntry> getHolds(String user, String password, final String itemNodeRef,
|
public List<HoldEntry> getHolds(String user, String password, final String itemNodeRef,
|
||||||
final Boolean includedInHold, final Boolean fileOnly)
|
final Boolean includedInHold, final Boolean fileOnly)
|
||||||
@@ -318,6 +332,4 @@ public class HoldsAPI extends BaseAPI
|
|||||||
|
|
||||||
return PojoUtility.jsonToObject(holdEntries, HoldEntry.class);
|
return PojoUtility.jsonToObject(holdEntries, HoldEntry.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -148,11 +148,11 @@ public class RoleService
|
|||||||
public UserModel createUserWithRMRoleAndCategoryPermission(String userRole, RecordCategory recordCategory,
|
public UserModel createUserWithRMRoleAndCategoryPermission(String userRole, RecordCategory recordCategory,
|
||||||
UserPermissions userPermission)
|
UserPermissions userPermission)
|
||||||
{
|
{
|
||||||
return createUserWithRMRoleAndRMNodePermission(userRole, recordCategory.getId(),userPermission);
|
return createUserWithRMRoleAndRMNodePermission(userRole, recordCategory.getId(), userPermission);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper method to create a test user with rm role and permissions on the node ref
|
* Helper method to create a user with rm role and permissions on the node ref
|
||||||
*
|
*
|
||||||
* @param userRole the rm role
|
* @param userRole the rm role
|
||||||
* @param userPermission the permissions over the record category
|
* @param userPermission the permissions over the record category
|
||||||
@@ -168,7 +168,7 @@ public class RoleService
|
|||||||
return rmUser;
|
return rmUser;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Helper method to create a test user with rm role and permissions over the recordCategory and collaborator role
|
* Helper method to create a user with rm role and permissions over the recordCategory and collaborator role
|
||||||
* in collaboration site
|
* in collaboration site
|
||||||
*
|
*
|
||||||
* @param siteModel collaboration site
|
* @param siteModel collaboration site
|
||||||
@@ -180,8 +180,8 @@ public class RoleService
|
|||||||
public UserModel createCollaboratorWithRMRoleAndPermission(SiteModel siteModel, RecordCategory recordCategory,
|
public UserModel createCollaboratorWithRMRoleAndPermission(SiteModel siteModel, RecordCategory recordCategory,
|
||||||
UserRoles userRole, UserPermissions userPermission)
|
UserRoles userRole, UserPermissions userPermission)
|
||||||
{
|
{
|
||||||
return createUserWithSiteRoleRMRoleAndPermission(siteModel, UserRole.SiteCollaborator, recordCategory.getId(), userRole,
|
return createUserWithSiteRoleRMRoleAndPermission(siteModel, UserRole.SiteCollaborator, recordCategory.getId(),
|
||||||
userPermission);
|
userRole, userPermission);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -190,9 +190,10 @@ public class RoleService
|
|||||||
* in collaboration site
|
* in collaboration site
|
||||||
*
|
*
|
||||||
* @param siteModel collaboration site
|
* @param siteModel collaboration site
|
||||||
* @param recordCategory the category on which permission should be given
|
* @param userSiteRoles user role in the collaboration site
|
||||||
|
* @param rmNodeId rm node id to grant rm permission
|
||||||
* @param userRole the rm role
|
* @param userRole the rm role
|
||||||
* @param userPermission the permissions over the recordCategory
|
* @param userPermission the permissions over the rmNodeId
|
||||||
* @return the created user model
|
* @return the created user model
|
||||||
*/
|
*/
|
||||||
public UserModel createUserWithSiteRoleRMRoleAndPermission(SiteModel siteModel, UserRole userSiteRoles,
|
public UserModel createUserWithSiteRoleRMRoleAndPermission(SiteModel siteModel, UserRole userSiteRoles,
|
||||||
|
@@ -60,6 +60,8 @@ import org.alfresco.rest.model.RestNodeModel;
|
|||||||
import org.alfresco.rest.rm.community.base.BaseRMRestTest;
|
import org.alfresco.rest.rm.community.base.BaseRMRestTest;
|
||||||
import org.alfresco.rest.rm.community.model.hold.HoldEntry;
|
import org.alfresco.rest.rm.community.model.hold.HoldEntry;
|
||||||
import org.alfresco.rest.rm.community.model.record.Record;
|
import org.alfresco.rest.rm.community.model.record.Record;
|
||||||
|
import org.alfresco.rest.rm.community.model.recordcategory.RecordCategory;
|
||||||
|
import org.alfresco.rest.rm.community.model.recordcategory.RecordCategoryChild;
|
||||||
import org.alfresco.rest.rm.community.model.user.UserRoles;
|
import org.alfresco.rest.rm.community.model.user.UserRoles;
|
||||||
import org.alfresco.rest.rm.community.requests.gscore.api.RecordFolderAPI;
|
import org.alfresco.rest.rm.community.requests.gscore.api.RecordFolderAPI;
|
||||||
import org.alfresco.rest.v0.HoldsAPI;
|
import org.alfresco.rest.v0.HoldsAPI;
|
||||||
@@ -92,16 +94,16 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
|
|
||||||
private SiteModel testSite;
|
private SiteModel testSite;
|
||||||
private String holdNodeRef;
|
private String holdNodeRef;
|
||||||
private FileModel document, contentToAddToHold, contentAddToHoldNoPermission;
|
private FileModel documentHeld, contentToAddToHold, contentAddToHoldNoPermission;
|
||||||
private UserModel userAddHoldPermission;
|
private UserModel userAddHoldPermission;
|
||||||
private List<UserModel> users = new ArrayList<>();
|
private List<UserModel> users = new ArrayList<>();
|
||||||
|
private List<String> nodesToBeClean = new ArrayList<>();
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private HoldsAPI holdsAPI;
|
private HoldsAPI holdsAPI;
|
||||||
@Autowired
|
@Autowired
|
||||||
private RoleService roleService;
|
private RoleService roleService;
|
||||||
|
|
||||||
|
|
||||||
@BeforeClass (alwaysRun = true)
|
@BeforeClass (alwaysRun = true)
|
||||||
public void preconditionForAddContentToHold() throws Exception
|
public void preconditionForAddContentToHold() throws Exception
|
||||||
{
|
{
|
||||||
@@ -111,7 +113,7 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
|
|
||||||
STEP("Create test files.");
|
STEP("Create test files.");
|
||||||
testSite = dataSite.usingAdmin().createPublicRandomSite();
|
testSite = dataSite.usingAdmin().createPublicRandomSite();
|
||||||
document = dataContent.usingSite(testSite)
|
documentHeld = dataContent.usingSite(testSite)
|
||||||
.createContent(CMISUtil.DocumentType.TEXT_PLAIN);
|
.createContent(CMISUtil.DocumentType.TEXT_PLAIN);
|
||||||
contentToAddToHold = dataContent.usingSite(testSite)
|
contentToAddToHold = dataContent.usingSite(testSite)
|
||||||
.createContent(CMISUtil.DocumentType.TEXT_PLAIN);
|
.createContent(CMISUtil.DocumentType.TEXT_PLAIN);
|
||||||
@@ -119,7 +121,7 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
.createContent(CMISUtil.DocumentType.TEXT_PLAIN);
|
.createContent(CMISUtil.DocumentType.TEXT_PLAIN);
|
||||||
|
|
||||||
STEP("Add the content to the hold.");
|
STEP("Add the content to the hold.");
|
||||||
holdsAPI.addItemToHold(getAdminUser().getUsername(), getAdminUser().getPassword(), document
|
holdsAPI.addItemToHold(getAdminUser().getUsername(), getAdminUser().getPassword(), documentHeld
|
||||||
.getNodeRefWithoutVersion(), HOLD);
|
.getNodeRefWithoutVersion(), HOLD);
|
||||||
|
|
||||||
STEP("Create users");
|
STEP("Create users");
|
||||||
@@ -142,13 +144,13 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
List<RestNodeModel> documentsHeld = restClient.authenticateUser(getAdminUser()).withCoreAPI()
|
List<RestNodeModel> documentsHeld = restClient.authenticateUser(getAdminUser()).withCoreAPI()
|
||||||
.usingNode(toContentModel(holdNodeRef))
|
.usingNode(toContentModel(holdNodeRef))
|
||||||
.listChildren().getEntries().stream()
|
.listChildren().getEntries().stream()
|
||||||
.filter(child -> child.onModel().getName().contains(document
|
.filter(child -> child.onModel().getName().contains(documentHeld
|
||||||
.getName()))
|
.getName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
STEP("Check the list of active content");
|
STEP("Check the list of active content");
|
||||||
assertEquals(documentsHeld.size(), 1, "The active content is not retrive when getting the children from the " +
|
assertEquals(documentsHeld.size(), 1, "The active content is not retrive when getting the children from the " +
|
||||||
"hold folder");
|
"hold folder");
|
||||||
assertEquals(documentsHeld.get(0).onModel().getName(), document.getName());
|
assertEquals(documentsHeld.get(0).onModel().getName(), documentHeld.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -160,7 +162,7 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
public void retrieveTheHoldWhereTheContentIsAdded()
|
public void retrieveTheHoldWhereTheContentIsAdded()
|
||||||
{
|
{
|
||||||
List<HoldEntry> holdEntries = holdsAPI.getHolds(getAdminUser().getUsername(), getAdminUser().getPassword(),
|
List<HoldEntry> holdEntries = holdsAPI.getHolds(getAdminUser().getUsername(), getAdminUser().getPassword(),
|
||||||
document.getNodeRefWithoutVersion(), true, null);
|
documentHeld.getNodeRefWithoutVersion(), true, null);
|
||||||
assertTrue(holdEntries.stream().anyMatch(holdEntry -> holdEntry.getName().contains(HOLD)), "Could not find " +
|
assertTrue(holdEntries.stream().anyMatch(holdEntry -> holdEntry.getName().contains(HOLD)), "Could not find " +
|
||||||
"hold with name " + HOLD);
|
"hold with name " + HOLD);
|
||||||
}
|
}
|
||||||
@@ -172,24 +174,26 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
public Object[][] getValidNodesForAddToHold() throws Exception
|
public Object[][] getValidNodesForAddToHold() throws Exception
|
||||||
{
|
{
|
||||||
//create electronic and nonElectronic record in record folder
|
//create electronic and nonElectronic record in record folder
|
||||||
String recordFolderId = createCategoryFolderInFilePlan().getId();
|
RecordCategoryChild recordFolder = createCategoryFolderInFilePlan();
|
||||||
RecordFolderAPI recordFolderAPI = getRestAPIFactory().getRecordFolderAPI();
|
RecordFolderAPI recordFolderAPI = getRestAPIFactory().getRecordFolderAPI();
|
||||||
|
nodesToBeClean.add(recordFolder.getParentId());
|
||||||
Record electronicRecord = recordFolderAPI.createRecord(createElectronicRecordModel(), recordFolderId, getFile
|
Record electronicRecord = recordFolderAPI.createRecord(createElectronicRecordModel(), recordFolder.getId(), getFile
|
||||||
(IMAGE_FILE));
|
(IMAGE_FILE));
|
||||||
assertStatusCode(CREATED);
|
assertStatusCode(CREATED);
|
||||||
|
|
||||||
Record nonElectronicRecord = recordFolderAPI.createRecord(createNonElectronicRecordModel(), recordFolderId);
|
Record nonElectronicRecord = recordFolderAPI.createRecord(createNonElectronicRecordModel(), recordFolder.getId());
|
||||||
assertStatusCode(CREATED);
|
assertStatusCode(CREATED);
|
||||||
getRestAPIFactory().getRMUserAPI().addUserPermission(recordFolderId, userAddHoldPermission, PERMISSION_FILING);
|
getRestAPIFactory().getRMUserAPI().addUserPermission(recordFolder.getId(), userAddHoldPermission,
|
||||||
|
PERMISSION_FILING);
|
||||||
String folderToHold = createCategoryFolderInFilePlan().getId();
|
|
||||||
getRestAPIFactory().getRMUserAPI().addUserPermission(folderToHold, userAddHoldPermission, PERMISSION_FILING);
|
|
||||||
|
|
||||||
|
RecordCategoryChild folderToHold = createCategoryFolderInFilePlan();
|
||||||
|
getRestAPIFactory().getRMUserAPI().addUserPermission(folderToHold.getId(), userAddHoldPermission,
|
||||||
|
PERMISSION_FILING);
|
||||||
|
nodesToBeClean.add(folderToHold.getParentId());
|
||||||
|
|
||||||
return new String[][]
|
return new String[][]
|
||||||
{ // record folder
|
{ // record folder
|
||||||
{ folderToHold },
|
{ folderToHold.getId() },
|
||||||
//electronic record
|
//electronic record
|
||||||
{ electronicRecord.getId() },
|
{ electronicRecord.getId() },
|
||||||
// non electronic record
|
// non electronic record
|
||||||
@@ -231,12 +235,13 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
@DataProvider (name = "userWithoutPermissionForAddToHold")
|
@DataProvider (name = "userWithoutPermissionForAddToHold")
|
||||||
public Object[][] getUserWithoutPermissionForAddToHold() throws Exception
|
public Object[][] getUserWithoutPermissionForAddToHold() throws Exception
|
||||||
{
|
{
|
||||||
//create electronic and nonElectronic record in record folder
|
//create record folder
|
||||||
String recordFolderId = createCategoryFolderInFilePlan().getId();
|
RecordCategoryChild recordFolder = createCategoryFolderInFilePlan();
|
||||||
UserModel user = roleService.createUserWithRMRoleAndRMNodePermission(ROLE_RM_MANAGER.roleId, recordFolderId,
|
//create a rm manager and grant read permission over the record folder created
|
||||||
|
UserModel user = roleService.createUserWithRMRoleAndRMNodePermission(ROLE_RM_MANAGER.roleId, recordFolder.getId(),
|
||||||
PERMISSION_READ_RECORDS);
|
PERMISSION_READ_RECORDS);
|
||||||
getRestAPIFactory().getRMUserAPI().addUserPermission(holdNodeRef, user, PERMISSION_FILING);
|
getRestAPIFactory().getRMUserAPI().addUserPermission(holdNodeRef, user, PERMISSION_FILING);
|
||||||
|
nodesToBeClean.add(recordFolder.getParentId());
|
||||||
return new Object[][]
|
return new Object[][]
|
||||||
{ // user without write permission on the content
|
{ // user without write permission on the content
|
||||||
{
|
{
|
||||||
@@ -261,7 +266,7 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
},
|
},
|
||||||
//user without write permission on RM record folder
|
//user without write permission on RM record folder
|
||||||
{
|
{
|
||||||
user, recordFolderId
|
user, recordFolder.getId()
|
||||||
},
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -298,19 +303,20 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Data provider withh invalid item types that can be added to a hold
|
* Data provider with invalid item types that can be added to a hold
|
||||||
*/
|
*/
|
||||||
@DataProvider (name = "invalidNodesForAddToHold")
|
@DataProvider (name = "invalidNodesForAddToHold")
|
||||||
public Object[][] getInvalidNodesForAddToHold() throws Exception
|
public Object[][] getInvalidNodesForAddToHold() throws Exception
|
||||||
{
|
{
|
||||||
|
RecordCategory category = createRootCategory(getRandomAlphanumeric());
|
||||||
|
nodesToBeClean.add(category.getId());
|
||||||
return new Object[][]
|
return new Object[][]
|
||||||
{ // file plan node id
|
{ // file plan node id
|
||||||
{ getFilePlan(FILE_PLAN_ALIAS).getId(), SC_BAD_REQUEST, INVALID_TYPE_ERROR_MESSAGE },
|
{ getFilePlan(FILE_PLAN_ALIAS).getId(), SC_BAD_REQUEST, INVALID_TYPE_ERROR_MESSAGE },
|
||||||
//transfer container
|
//transfer container
|
||||||
{ getTransferContainer(TRANSFERS_ALIAS).getId(), SC_BAD_REQUEST, INVALID_TYPE_ERROR_MESSAGE },
|
{ getTransferContainer(TRANSFERS_ALIAS).getId(), SC_BAD_REQUEST, INVALID_TYPE_ERROR_MESSAGE },
|
||||||
// an arbitrary record category
|
// a record category
|
||||||
{ createRootCategory(getRandomAlphanumeric()).getId(), SC_INTERNAL_SERVER_ERROR, ACCESS_DENIED_ERROR_MESSAGE },
|
{ category.getId(), SC_INTERNAL_SERVER_ERROR, ACCESS_DENIED_ERROR_MESSAGE },
|
||||||
// unfiled records root
|
// unfiled records root
|
||||||
{ getUnfiledContainer(UNFILED_RECORDS_CONTAINER_ALIAS).getId(), SC_BAD_REQUEST, INVALID_TYPE_ERROR_MESSAGE },
|
{ getUnfiledContainer(UNFILED_RECORDS_CONTAINER_ALIAS).getId(), SC_BAD_REQUEST, INVALID_TYPE_ERROR_MESSAGE },
|
||||||
// an arbitrary unfiled records folder
|
// an arbitrary unfiled records folder
|
||||||
@@ -337,7 +343,7 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
String responseErrorMessage = holdsAPI.addToHoldAndGetMessage(userAddHoldPermission.getUsername(),
|
String responseErrorMessage = holdsAPI.addToHoldAndGetMessage(userAddHoldPermission.getUsername(),
|
||||||
userAddHoldPermission.getPassword(), responseCode, itemNodeRef, HOLD);
|
userAddHoldPermission.getPassword(), responseCode, itemNodeRef, HOLD);
|
||||||
assertTrue(responseErrorMessage.contains(errorMessage),
|
assertTrue(responseErrorMessage.contains(errorMessage),
|
||||||
"Actual message " + responseErrorMessage);
|
"Actual error message " + responseErrorMessage + " expected " + responseErrorMessage);
|
||||||
|
|
||||||
STEP("Check active content is not frozen.");
|
STEP("Check active content is not frozen.");
|
||||||
RestNodeModel heldActiveContent = restClient.authenticateUser(getAdminUser())
|
RestNodeModel heldActiveContent = restClient.authenticateUser(getAdminUser())
|
||||||
@@ -351,5 +357,6 @@ public class AddContentToHoldsTests extends BaseRMRestTest
|
|||||||
holdsAPI.deleteHold(getAdminUser().getUsername(), getAdminUser().getPassword(), HOLD);
|
holdsAPI.deleteHold(getAdminUser().getUsername(), getAdminUser().getPassword(), HOLD);
|
||||||
dataSite.usingAdmin().deleteSite(testSite);
|
dataSite.usingAdmin().deleteSite(testSite);
|
||||||
users.forEach(user -> getDataUser().usingAdmin().deleteUser(user));
|
users.forEach(user -> getDataUser().usingAdmin().deleteUser(user));
|
||||||
|
nodesToBeClean.forEach( category -> getRestAPIFactory().getRecordCategoryAPI().deleteRecordCategory(category));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -67,7 +67,7 @@ public class PreventActionsOnFrozenContentTests extends BaseRMRestTest
|
|||||||
private HoldsAPI holdsAPI;
|
private HoldsAPI holdsAPI;
|
||||||
|
|
||||||
@BeforeClass (alwaysRun = true)
|
@BeforeClass (alwaysRun = true)
|
||||||
public void preconditionForRemoveContentFromHold() throws Exception
|
public void preconditionForPreventActionsOnFrozenContent() throws Exception
|
||||||
{
|
{
|
||||||
STEP("Create a hold.");
|
STEP("Create a hold.");
|
||||||
holdNodeRef = holdsAPI.createHoldAndGetNodeRef(getAdminUser().getUsername(), getAdminUser().getUsername(),
|
holdNodeRef = holdsAPI.createHoldAndGetNodeRef(getAdminUser().getUsername(), getAdminUser().getUsername(),
|
||||||
@@ -138,7 +138,7 @@ public class PreventActionsOnFrozenContentTests extends BaseRMRestTest
|
|||||||
|
|
||||||
STEP("Check the request failed.");
|
STEP("Check the request failed.");
|
||||||
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
|
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
|
||||||
restClient.assertLastError().containsSummary("Frozen nodes can not be updated.");
|
restClient.assertLastError().containsSummary("Frozen nodes can not be deleted.");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,12 +173,12 @@ public class PreventActionsOnFrozenContentTests extends BaseRMRestTest
|
|||||||
|
|
||||||
STEP("Check the request failed.");
|
STEP("Check the request failed.");
|
||||||
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
|
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
|
||||||
restClient.assertLastError().containsSummary("Frozen nodes can not be copied.");
|
restClient.assertLastError().containsSummary("Frozen nodes can not be updated.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@AfterClass (alwaysRun = true)
|
@AfterClass (alwaysRun = true)
|
||||||
public void cleanUpAddContentToHold() throws Exception
|
public void cleanUpPreventActionsOnFrozenContent() throws Exception
|
||||||
{
|
{
|
||||||
holdsAPI.deleteHold(getAdminUser().getUsername(), getAdminUser().getPassword(), HOLD_ONE);
|
holdsAPI.deleteHold(getAdminUser().getUsername(), getAdminUser().getPassword(), HOLD_ONE);
|
||||||
dataSite.usingAdmin().deleteSite(testSite);
|
dataSite.usingAdmin().deleteSite(testSite);
|
||||||
|
Reference in New Issue
Block a user