From 9fd3d7f9d8f75725c27126dcb4bc3e8b80dcb7e5 Mon Sep 17 00:00:00 2001 From: cagache Date: Thu, 5 Sep 2019 10:26:58 +0300 Subject: [PATCH] RM-6918 View legal holds content UI tests --- .../java/org/alfresco/rest/v0/HoldsAPI.java | 34 +++++++++++++++++-- .../community/hold/RemoveFromHoldsTests.java | 33 +++++++++--------- 2 files changed, 48 insertions(+), 19 deletions(-) diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/HoldsAPI.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/HoldsAPI.java index 4dec2955a6..ae4cf38213 100644 --- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/HoldsAPI.java +++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/HoldsAPI.java @@ -127,7 +127,7 @@ public class HoldsAPI extends BaseAPI try { return convertHTTPResponseToJSON(httpResponse).getString("persistedObject") - .replaceAll(NODE_REF_WORKSPACE_SPACES_STORE, ""); + .replace(NODE_REF_WORKSPACE_SPACES_STORE, ""); } catch(JSONException error) { @@ -172,7 +172,22 @@ public class HoldsAPI extends BaseAPI /** * Adds a list of items (content/record/record folder) to a list of holds * - * @param user the user who adds the item to the hold + * @param user the user who adds the items to the holds + * @param password the user's password + * @param itemNodeRefs the list of items nodeRefs to be added to holds + * @param holdNames the list of holds + * @return The HTTP response + */ + public HttpResponse addItemsToHolds(String user, String password, List itemNodeRefs, + List holdNames) + { + return addItemsToHolds(user, password, SC_OK, itemNodeRefs, holdNames); + } + + /** + * Adds a list of items (content/record/record folder) to a list of holds + * + * @param user the user who adds the items to the holds * @param password the user's password * @param itemNodeRefs the list of items nodeRefs to be added to holds * @param holdNames the list of holds @@ -241,6 +256,21 @@ public class HoldsAPI extends BaseAPI Collections.singletonList(holdName)); } + /** + * Remove a list of items (content/record/record folder) from a list of holds + * + * @param user the user who removes the item from the hold + * @param password the user's password + * @param itemNodeRefs the list of items nodeRefs to be removed from hold + * @param holdNames the list of hold names + * @return The HTTP response + */ + public HttpResponse removeItemsFromHolds(String user, String password, List itemNodeRefs, + List holdNames) + { + return removeItemsFromHolds(user, password, SC_OK, itemNodeRefs, holdNames); + } + /** * Remove a list of items (content/record/record folder) from a list of holds * diff --git a/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/hold/RemoveFromHoldsTests.java b/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/hold/RemoveFromHoldsTests.java index f0bacf4f6e..6021842bc2 100644 --- a/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/hold/RemoveFromHoldsTests.java +++ b/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/hold/RemoveFromHoldsTests.java @@ -26,6 +26,8 @@ */ package org.alfresco.rest.rm.community.hold; +import static java.util.Arrays.asList; + import static org.alfresco.rest.rm.community.base.TestData.FROZEN_ASPECT; import static org.alfresco.rest.rm.community.base.TestData.HOLD_DESCRIPTION; import static org.alfresco.rest.rm.community.base.TestData.HOLD_REASON; @@ -43,7 +45,7 @@ import static org.springframework.http.HttpStatus.CREATED; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; -import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -112,16 +114,15 @@ public class RemoveFromHoldsTests extends BaseRMRestTest STEP("Add content to the holds."); holdsAPI.addItemToHold(getAdminUser().getUsername(), getAdminUser().getPassword(), contentHeld .getNodeRefWithoutVersion(), HOLD_ONE); - holdsAPI.addItemToHold(getAdminUser().getUsername(), getAdminUser().getPassword(), contentAddToManyHolds - .getNodeRefWithoutVersion(), String.format("%s,%s", HOLD_ONE, HOLD_TWO)); - + holdsAPI.addItemsToHolds(getAdminUser().getUsername(), getAdminUser().getPassword(), + Collections.singletonList(contentAddToManyHolds.getNodeRefWithoutVersion()), asList(HOLD_ONE, HOLD_TWO)); } /** * Valid nodes to be removed from hold */ @DataProvider (name = "validNodesToRemoveFromHold") - public Object[][] getValidNodesToRemoveFromHold() throws Exception + public Object[][] getValidNodesToRemoveFromHold() { //create electronic and nonElectronic record in record folder RecordCategoryChild recordFolder = createCategoryFolderInFilePlan(); @@ -135,8 +136,8 @@ public class RemoveFromHoldsTests extends BaseRMRestTest RecordCategoryChild folderToHeld = createCategoryFolderInFilePlan(); nodesToBeClean.add(folderToHeld.getParentId()); - Arrays.asList(electronicRecord.getId(), nonElectronicRecord.getId(), folderToHeld.getId()).forEach(item -> - holdsAPI.addItemToHold(getAdminUser().getUsername(), getAdminUser().getPassword(), item, HOLD_ONE)); + holdsAPI.addItemsToHolds(getAdminUser().getUsername(), getAdminUser().getPassword(), + asList(electronicRecord.getId(), nonElectronicRecord.getId(), folderToHeld.getId()), Collections.singletonList(HOLD_ONE)); return new String[][] { // record folder @@ -215,11 +216,11 @@ public class RemoveFromHoldsTests extends BaseRMRestTest FileModel contentNoHoldCap = dataContent.usingSite(testSite).createContent(CMISUtil.DocumentType.TEXT_PLAIN); FileModel privateFile = dataContent.usingSite(privateSite).createContent(CMISUtil.DocumentType.TEXT_PLAIN); //add files to hold - Arrays.asList(recordFolder.getId(), contentNoHoldCap.getNodeRefWithoutVersion(), - contentNoHoldPerm.getNodeRefWithoutVersion(), privateFile.getNodeRefWithoutVersion()).forEach( - node -> holdsAPI.addItemToHold(getAdminUser().getUsername(), getAdminUser().getPassword(), node, - HOLD_ONE) - ); + holdsAPI.addItemsToHolds(getAdminUser().getUsername(), getAdminUser().getPassword(), + asList(recordFolder.getId(), contentNoHoldCap.getNodeRefWithoutVersion(), + contentNoHoldPerm.getNodeRefWithoutVersion(), privateFile.getNodeRefWithoutVersion()), + Collections.singletonList(HOLD_ONE)); + return new Object[][] { // user with read permission on the content, with remove from hold capability and without @@ -290,10 +291,8 @@ public class RemoveFromHoldsTests extends BaseRMRestTest FileModel contentPermission = dataContent.usingSite(testSite).createContent(CMISUtil.DocumentType.TEXT_PLAIN); //add files to hold - Arrays.asList(recordFolder.getId(), contentPermission.getNodeRefWithoutVersion()).forEach( - node -> holdsAPI.addItemToHold(getAdminUser().getUsername(), getAdminUser().getPassword(), node, - HOLD_ONE) - ); + holdsAPI.addItemsToHolds(getAdminUser().getUsername(), getAdminUser().getPassword(), + asList(recordFolder.getId(), contentPermission.getNodeRefWithoutVersion()), Collections.singletonList(HOLD_ONE)); return new Object[][] { @@ -325,7 +324,7 @@ public class RemoveFromHoldsTests extends BaseRMRestTest } @AfterClass (alwaysRun = true) - public void cleanUpRemoveContentFromHold() throws Exception + public void cleanUpRemoveContentFromHold() { holdsAPI.deleteHold(getAdminUser().getUsername(), getAdminUser().getPassword(), HOLD_ONE); holdsAPI.deleteHold(getAdminUser().getUsername(), getAdminUser().getPassword(), HOLD_TWO);