diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/v0/BaseAPI.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/v0/BaseAPI.java index 8f77a8403d..3f0f4c3920 100644 --- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/v0/BaseAPI.java +++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/v0/BaseAPI.java @@ -342,59 +342,60 @@ public abstract class BaseAPI /** * Helper method for POST requests * - * @param adminUser user with administrative privileges - * @param adminPassword password for adminUser - * @param expectFailure If false then an exception will be thrown if the POST is not successful. - * @param requestParams zero or more endpoint specific request parameters - * @param urlTemplate request URL template + * @param adminUser user with administrative privileges + * @param adminPassword password for adminUser + * @param expectedStatusCode The expected return status code. + * @param requestParams zero or more endpoint specific request parameters + * @param urlTemplate request URL template * @param urlTemplateParams zero or more parameters used with urlTemplate */ protected HttpResponse doPostJsonRequest(String adminUser, String adminPassword, - boolean expectFailure, + int expectedStatusCode, JSONObject requestParams, String urlTemplate, String... urlTemplateParams) { AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); - return doPostJsonRequest(adminUser, adminPassword, expectFailure, client.getApiUrl(), requestParams, urlTemplate, urlTemplateParams); + return doPostJsonRequest(adminUser, adminPassword, expectedStatusCode, client.getApiUrl(), requestParams, urlTemplate, urlTemplateParams); } /** * Helper method for POST requests to slingshot. * - * @param adminUser user with administrative privileges - * @param adminPassword password for adminUser - * @param expectFailure If false then an exception will be thrown if the POST is not successful. - * @param requestParams zero or more endpoint specific request parameters - * @param urlTemplate request URL template + * @param adminUser user with administrative privileges + * @param adminPassword password for adminUser + * @param expectedStatusCode The expected return status code. + * @param requestParams zero or more endpoint specific request parameters + * @param urlTemplate request URL template * @param urlTemplateParams zero or more parameters used with urlTemplate */ protected HttpResponse doSlingshotPostJsonRequest(String adminUser, String adminPassword, - boolean expectFailure, + int expectedStatusCode, JSONObject requestParams, String urlTemplate, String... urlTemplateParams) { AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); - return doPostJsonRequest(adminUser, adminPassword, expectFailure, client.getAlfrescoUrl() + SLINGSHOT_PREFIX, requestParams, urlTemplate, urlTemplateParams); + return doPostJsonRequest(adminUser, adminPassword, expectedStatusCode, client.getAlfrescoUrl() + SLINGSHOT_PREFIX, requestParams, urlTemplate, urlTemplateParams); } /** * Helper method for POST requests * - * @param adminUser user with administrative privileges - * @param adminPassword password for adminUser - * @param expectFailure If false then an exception will be thrown if the POST is not successful. - * @param urlStart the start of the URL (for example "alfresco/s/slingshot"). - * @param requestParams zero or more endpoint specific request parameters - * @param urlTemplate request URL template + * @param adminUser user with administrative privileges + * @param adminPassword password for adminUser + * @param expectedStatusCode The expected return status code. + * @param urlStart the start of the URL (for example "alfresco/s/slingshot"). + * @param requestParams zero or more endpoint specific request parameters + * @param urlTemplate request URL template * @param urlTemplateParams zero or more parameters used with urlTemplate + * @throws AssertionError if the returned status code is not as expected. */ private HttpResponse doPostJsonRequest(String adminUser, String adminPassword, - boolean expectFailure, + int expectedStatusCode, String urlStart, JSONObject requestParams, String urlTemplate, @@ -408,10 +409,7 @@ public abstract class BaseAPI try { HttpResponse httpResponse = doRequestJson(HttpPost.class, requestUrl, adminUser, adminPassword, requestParams); - if (!expectFailure) - { - assertEquals("POST request was not successful.", httpResponse.getStatusLine().getStatusCode(), 200); - } + assertEquals("POST request to " + requestUrl + " was not successful.", httpResponse.getStatusLine().getStatusCode(), expectedStatusCode); return httpResponse; } catch (InstantiationException | IllegalAccessException error) diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/CopyToAPI.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/CopyToAPI.java index ecbfc006ce..f50e6ff4d3 100644 --- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/CopyToAPI.java +++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/CopyToAPI.java @@ -65,7 +65,7 @@ public class CopyToAPI extends BaseAPI */ public HttpResponse copyTo(String user, String password, String targetContainerPath, List nodeRefs) { - return copyToAndGetResponse(user, password, false, targetContainerPath, nodeRefs); + return copyTo(user, password, 200, targetContainerPath, nodeRefs); } /** @@ -73,19 +73,20 @@ public class CopyToAPI extends BaseAPI * * @param user The username of the user to use. * @param password The password of the user. - * @param expectFailure If false then an exception will be thrown if the POST is not successful. + * @param expectedStatusCode The expected return status code. * @param targetContainerPath The destination to copy the nodes to. This should be in the format * "{site}/{container}/{path}", "{site}/{container}", "{store_type}/{store_id}/{id}/{path}", * "{store_type}/{store_id}/{id}" or "{store_type}/{store_id}". * @param nodeRefs The list of nodes to copy. * @return The HTTP Response. + * @throws AssertionError If the API didn't return the expected status code. */ - public HttpResponse copyToAndGetResponse(String user, String password, boolean expectFailure, String targetContainerPath, List nodeRefs) + public HttpResponse copyTo(String user, String password, int expectedStatusCode, String targetContainerPath, List nodeRefs) { JSONObject requestParams = new JSONObject(); requestParams.put("nodeRefs", new JSONArray(nodeRefs)); - return doSlingshotPostJsonRequest(user, password, expectFailure, requestParams, + return doSlingshotPostJsonRequest(user, password, expectedStatusCode, requestParams, MessageFormat.format(COPY_TO_API, "{0}", targetContainerPath)); } } diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RMRolesAndActionsAPI.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RMRolesAndActionsAPI.java index 9ff6069efe..36b87aac1e 100644 --- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RMRolesAndActionsAPI.java +++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RMRolesAndActionsAPI.java @@ -238,7 +238,7 @@ public class RMRolesAndActionsAPI extends BaseAPI ) ); } - return doPostJsonRequest(user, password, false, requestParams, RM_ACTIONS_API); + return doPostJsonRequest(user, password, 200, requestParams, RM_ACTIONS_API); } /** @@ -303,7 +303,7 @@ public class RMRolesAndActionsAPI extends BaseAPI requestParams.put("prop_rma_holdReason", reason); // Make the POST request and throw an assertion error if it fails. - HttpResponse httpResponse = doPostJsonRequest(user, password, false, requestParams, CREATE_HOLDS_API); + HttpResponse httpResponse = doPostJsonRequest(user, password, 200, requestParams, CREATE_HOLDS_API); assertNotNull("Expected object to have been created at " + fullHoldPath, getObjectByPath(user, password, fullHoldPath)); return httpResponse; @@ -325,6 +325,6 @@ public class RMRolesAndActionsAPI extends BaseAPI addPropertyToRequest(requestParams, "prop_cm_description", properties, RMProperty.DESCRIPTION); addPropertyToRequest(requestParams, "prop_cm_author", properties, RMProperty.AUTHOR); - return doPostJsonRequest(username, password, false, requestParams, MessageFormat.format(UPDATE_METADATA_API, "{0}", itemNodeRef)); + return doPostJsonRequest(username, password, 200, requestParams, MessageFormat.format(UPDATE_METADATA_API, "{0}", itemNodeRef)); } } diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordCategoriesAPI.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordCategoriesAPI.java index 96e12a7744..2908082b89 100644 --- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordCategoriesAPI.java +++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordCategoriesAPI.java @@ -66,7 +66,7 @@ public class RecordCategoriesAPI extends BaseAPI requestParams.put("name", "createDispositionSchedule"); requestParams.put("nodeRef", catNodeRef); - return doPostJsonRequest(user, password, false, requestParams, RM_ACTIONS_API); + return doPostJsonRequest(user, password, 200, requestParams, RM_ACTIONS_API); } /** @@ -85,7 +85,7 @@ public class RecordCategoriesAPI extends BaseAPI requestParams.put("prop_rma_dispositionAuthority", getPropertyValue(retentionProperties, RETENTION_SCHEDULE.RETENTION_AUTHORITY)); requestParams.put("prop_rma_dispositionInstructions", getPropertyValue(retentionProperties, RETENTION_SCHEDULE.RETENTION_INSTRUCTIONS)); requestParams.put("prop_rma_recordLevelDisposition", appliedToRecords.toString()); - return doPostJsonRequest(user, password, false, requestParams, MessageFormat.format(UPDATE_METADATA_API, "{0}", dispRetentionNodeRef)); + return doPostJsonRequest(user, password, 200, requestParams, MessageFormat.format(UPDATE_METADATA_API, "{0}", dispRetentionNodeRef)); } /** @@ -109,7 +109,7 @@ public class RecordCategoriesAPI extends BaseAPI addPropertyToRequest(requestParams, "events", properties, RETENTION_SCHEDULE.RETENTION_EVENTS); addPropertyToRequest(requestParams, "eligibleOnFirstCompleteEvent", properties, RETENTION_SCHEDULE.RETENTION_ELIGIBLE_FIRST_EVENT); - return doPostJsonRequest(user, password, false, requestParams, MessageFormat.format(DISPOSITION_ACTIONS_API, "{0}", catNodeRef)); + return doPostJsonRequest(user, password, 200, requestParams, MessageFormat.format(DISPOSITION_ACTIONS_API, "{0}", catNodeRef)); } /** diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordFoldersAPI.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordFoldersAPI.java index 776888b633..36681f0094 100644 --- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordFoldersAPI.java +++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordFoldersAPI.java @@ -68,7 +68,7 @@ public class RecordFoldersAPI extends BaseAPI requestParams.put("name", "closeRecordFolder"); requestParams.put("nodeRef", recNodeRef); - return doPostJsonRequest(user, password, false, requestParams, RM_ACTIONS_API); + return doPostJsonRequest(user, password, 200, requestParams, RM_ACTIONS_API); } catch (JSONException error) { diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordsAPI.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordsAPI.java index 0801d3b08c..47fcaefc5a 100644 --- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordsAPI.java +++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RecordsAPI.java @@ -77,7 +77,7 @@ public class RecordsAPI extends BaseAPI requestParams.put("actionedUponNode", docNodeRef); requestParams.put("actionDefinitionName", "create-record"); - return doPostJsonRequest(user, password, false, requestParams, ACTIONS_API); + return doPostJsonRequest(user, password, 200, requestParams, ACTIONS_API); } /** @@ -96,7 +96,7 @@ public class RecordsAPI extends BaseAPI requestParams.put("name", "declareRecord"); requestParams.put("nodeRef", recNodeRef); - return doPostJsonRequest(user, password, false, requestParams, RM_ACTIONS_API); + return doPostJsonRequest(user, password, 200, requestParams, RM_ACTIONS_API); } /** @@ -111,21 +111,21 @@ public class RecordsAPI extends BaseAPI */ public HttpResponse rejectRecord(String user, String password, String recordName, String reason) { - return rejectRecordAndGetResponse(user, password, false, recordName, reason); + return rejectRecord(user, password, 200, recordName, reason); } /** * Reject the record given as parameter * - * @param user the user declaring the document as record - * @param password the user's password - * @param expectFailure If false then throws an exception if the POST call fails. + * @param user the user declaring the document as record + * @param password the user's password + * @param expectedStatusCode The expected return status code. * @param recordName the record name - * @param reason reject reason + * @param reason reject reason * @return The HTTP Response. - * @throws AssertionError If expectFailure is false and the POST call is not successful. + * @throws AssertionError If the expectedStatusCode was not returned. */ - public HttpResponse rejectRecordAndGetResponse(String user, String password, boolean expectFailure, String recordName, String reason) + public HttpResponse rejectRecord(String user, String password, int expectedStatusCode, String recordName, String reason) { String recNodeRef = getNodeRefSpacesStore() + contentService.getNodeRef(user, password, RM_SITE_ID, recordName); @@ -135,7 +135,7 @@ public class RecordsAPI extends BaseAPI requestParams.put("params",new JSONObject() .put("reason",reason)); - return doPostJsonRequest(user, password, expectFailure, requestParams, RM_ACTIONS_API); + return doPostJsonRequest(user, password, expectedStatusCode, requestParams, RM_ACTIONS_API); } /** @@ -155,7 +155,7 @@ public class RecordsAPI extends BaseAPI requestParams.put("actionedUponNode", docNodeRef); requestParams.put("actionDefinitionName", "declare-as-version-record"); - return doPostJsonRequest(user, password, false, requestParams, ACTIONS_API); + return doPostJsonRequest(user, password, 200, requestParams, ACTIONS_API); } /** @@ -217,7 +217,7 @@ public class RecordsAPI extends BaseAPI requestParams.put("prop_rma_box", box); requestParams.put("prop_rma_file", file); - return doPostJsonRequest(username, password, false, requestParams, CREATE_NON_ELECTRONIC_RECORD_API); + return doPostJsonRequest(username, password, 200, requestParams, CREATE_NON_ELECTRONIC_RECORD_API); } /** @@ -343,7 +343,7 @@ public class RecordsAPI extends BaseAPI requestParams.put("actionedUponNode", docNodeRef); requestParams.put("actionDefinitionName", "hide-record"); - return doPostJsonRequest(user, password, false, requestParams, ACTIONS_API); + return doPostJsonRequest(user, password, 200, requestParams, ACTIONS_API); } } diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RulesAPI.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RulesAPI.java index 8b3bef51b0..4d13d277c4 100644 --- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RulesAPI.java +++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/RulesAPI.java @@ -71,7 +71,7 @@ public class RulesAPI extends BaseAPI { try { - return doPostJsonRequest(username, password, false, getRuleRequest(ruleProperties), MessageFormat.format(RULES_API, "{0}", containerNodeRef)); + return doPostJsonRequest(username, password, 200, getRuleRequest(ruleProperties), MessageFormat.format(RULES_API, "{0}", containerNodeRef)); } catch (JSONException error) { @@ -316,7 +316,7 @@ public class RulesAPI extends BaseAPI { if(containerInheritsRulesFromParent(username, password, containerNodeRef)) { - return doPostJsonRequest(username, password, false, new JSONObject(), MessageFormat.format(INHERIT_RULES_API, "{0}", containerNodeRef)); + return doPostJsonRequest(username, password, 200, new JSONObject(), MessageFormat.format(INHERIT_RULES_API, "{0}", containerNodeRef)); } return null; } @@ -333,7 +333,7 @@ public class RulesAPI extends BaseAPI { if (!containerInheritsRulesFromParent(username, password, containerNodeRef)) { - return doPostJsonRequest(username, password, false, new JSONObject(), MessageFormat.format(INHERIT_RULES_API, "{0}", containerNodeRef)); + return doPostJsonRequest(username, password, 200, new JSONObject(), MessageFormat.format(INHERIT_RULES_API, "{0}", containerNodeRef)); } return null; }