Merge branch 'feature/RM-4615_TAS_Binary_Request_Handler' into 'master'

Feature/rm 4615 tas binary request handler

See merge request !32
This commit is contained in:
Kristijan Conkas
2017-01-27 12:11:13 +00:00
12 changed files with 149 additions and 100 deletions

View File

@@ -15,7 +15,7 @@
<maven.build.sourceVersion>1.8</maven.build.sourceVersion> <maven.build.sourceVersion>1.8</maven.build.sourceVersion>
<alfresco.rm.share>alfresco-rm-community-share</alfresco.rm.share> <alfresco.rm.share>alfresco-rm-community-share</alfresco.rm.share>
<alfresco.rm.repo>alfresco-rm-community-repo</alfresco.rm.repo> <alfresco.rm.repo>alfresco-rm-community-repo</alfresco.rm.repo>
<tas.restapi.version>5.2.0-0</tas.restapi.version> <tas.restapi.version>5.2.0-2</tas.restapi.version>
<fluent.json.version>2.0.0</fluent.json.version> <fluent.json.version>2.0.0</fluent.json.version>
</properties> </properties>

View File

@@ -50,4 +50,12 @@ public class RMRestWrapper extends RestWrapper
{ {
return new RestIGCoreAPI(this, rmRestProperties); return new RestIGCoreAPI(this, rmRestProperties);
} }
/**
* @return the rmRestProperties
*/
public RMRestProperties getRmRestProperties()
{
return this.rmRestProperties;
}
} }

View File

@@ -29,6 +29,7 @@ package org.alfresco.rest.core;
import org.alfresco.rest.rm.community.requests.igCoreAPI.FilePlanComponentAPI; import org.alfresco.rest.rm.community.requests.igCoreAPI.FilePlanComponentAPI;
import org.alfresco.rest.rm.community.requests.igCoreAPI.FilesAPI; import org.alfresco.rest.rm.community.requests.igCoreAPI.FilesAPI;
import org.alfresco.rest.rm.community.requests.igCoreAPI.RMSiteAPI; import org.alfresco.rest.rm.community.requests.igCoreAPI.RMSiteAPI;
import org.alfresco.rest.rm.community.requests.igCoreAPI.RMUserAPI;
import org.alfresco.rest.rm.community.requests.igCoreAPI.RecordsAPI; import org.alfresco.rest.rm.community.requests.igCoreAPI.RecordsAPI;
import org.alfresco.rest.rm.community.requests.igCoreAPI.RestIGCoreAPI; import org.alfresco.rest.rm.community.requests.igCoreAPI.RestIGCoreAPI;
import org.alfresco.utility.data.DataUser; import org.alfresco.utility.data.DataUser;
@@ -106,4 +107,14 @@ public class RestAPIFactory
{ {
return getRestIGCoreAPI(userModel).usingFiles(); return getRestIGCoreAPI(userModel).usingFiles();
} }
public RMUserAPI getRMUserAPI()
{
return getRestIGCoreAPI(null).usingRMUser();
}
public RMUserAPI getRMUserAPI(UserModel userModel)
{
return getRestIGCoreAPI(userModel).usingRMUser();
}
} }

View File

@@ -35,7 +35,7 @@ import org.alfresco.rest.requests.ModelRequest;
* @author Tuna Aksoy * @author Tuna Aksoy
* @since 2.6 * @since 2.6
*/ */
public abstract class RMModelRequest extends ModelRequest public abstract class RMModelRequest extends ModelRequest<RMModelRequest>
{ {
private RMRestWrapper rmRestWrapper; private RMRestWrapper rmRestWrapper;

View File

@@ -26,9 +26,6 @@
*/ */
package org.alfresco.rest.rm.community.requests.igCoreAPI; package org.alfresco.rest.rm.community.requests.igCoreAPI;
import static com.jayway.restassured.RestAssured.basic;
import static com.jayway.restassured.RestAssured.given;
import static org.alfresco.rest.core.RestRequest.requestWithBody; import static org.alfresco.rest.core.RestRequest.requestWithBody;
import static org.alfresco.rest.core.RestRequest.simpleRequest; import static org.alfresco.rest.core.RestRequest.simpleRequest;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.CONTENT_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.CONTENT_TYPE;
@@ -50,13 +47,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.io.Resources; import com.google.common.io.Resources;
import com.jayway.restassured.builder.RequestSpecBuilder; import com.jayway.restassured.builder.RequestSpecBuilder;
import com.jayway.restassured.http.ContentType; import com.jayway.restassured.http.ContentType;
import com.jayway.restassured.response.Response;
import org.alfresco.rest.core.RMRestWrapper; import org.alfresco.rest.core.RMRestWrapper;
import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponent; import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponent;
import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentsCollection; import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentsCollection;
import org.alfresco.rest.rm.community.requests.RMModelRequest; import org.alfresco.rest.rm.community.requests.RMModelRequest;
import org.alfresco.utility.model.UserModel;
/** /**
* File plan component REST API Wrapper * File plan component REST API Wrapper
@@ -236,13 +231,15 @@ public class FilePlanComponentAPI extends RMModelRequest
/** /**
* Create electronic record from file resource * Create electronic record from file resource
*
* @param electronicRecordModel {@link FilePlanComponent} for electronic record to be created * @param electronicRecordModel {@link FilePlanComponent} for electronic record to be created
* @param recordContent {@link File} pointing to the content of the electronic record to be created * @param recordContent {@link File} pointing to the content of the electronic record to be created
* @param parentId parent container id * @param parentId parent container id
* @return newly created {@link FilePlanComponent} * @return newly created {@link FilePlanComponent}
* @throws Exception if operation failed * @throws Exception for invalid electronicRecordModel JSON strings
*/ */
public FilePlanComponent createElectronicRecord(FilePlanComponent electronicRecordModel, File recordContent, String parentId) throws Exception public FilePlanComponent createElectronicRecord(FilePlanComponent electronicRecordModel, File recordContent,
String parentId) throws Exception
{ {
mandatoryObject("electronicRecordModel", electronicRecordModel); mandatoryObject("electronicRecordModel", electronicRecordModel);
mandatoryString("parentId", parentId); mandatoryString("parentId", parentId);
@@ -251,40 +248,24 @@ public class FilePlanComponentAPI extends RMModelRequest
fail("Only electronic records are supported"); fail("Only electronic records are supported");
} }
UserModel currentUser = getRMRestWrapper().getTestUser();
/* /*
* For file uploads nodeBodyCreate is ignored hence can't be used. Append all FilePlanComponent fields * For file uploads nodeBodyCreate is ignored hence can't be used. Append all FilePlanComponent fields
* to the request. * to the request.
*/ */
RequestSpecBuilder builder = new RequestSpecBuilder(); RequestSpecBuilder builder = getRMRestWrapper().configureRequestSpec();
builder.setAuth(basic(currentUser.getUsername(), currentUser.getPassword())); JsonNode root = new ObjectMapper().readTree(toJson(electronicRecordModel));
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(toJson(electronicRecordModel));
// add request fields
Iterator<String> fieldNames = root.fieldNames(); Iterator<String> fieldNames = root.fieldNames();
while (fieldNames.hasNext()) while (fieldNames.hasNext())
{ {
String fieldName = fieldNames.next(); String fieldName = fieldNames.next();
builder.addMultiPart(fieldName, root.get(fieldName).asText(), ContentType.JSON.name()); builder.addMultiPart(fieldName, root.get(fieldName).asText(), ContentType.JSON.name());
} }
builder.addMultiPart("filedata", recordContent, ContentType.BINARY.name()); builder.addMultiPart("filedata", recordContent, ContentType.BINARY.name());
/* // create node with given content
* RestWrapper adds some headers which break multipart/form-data uploads and also assumes json POST requests. return createFilePlanComponent(electronicRecordModel, parentId);
* Upload the file using RestAssured library.
*/
Response response = given()
.spec(builder.build())
.when()
.post("fileplan-components/{fileplanComponentId}/children?{parameters}", parentId, getRMRestWrapper().getParameters())
.andReturn();
getRMRestWrapper().setStatusCode(Integer.toString(response.getStatusCode()));
/* return a FilePlanComponent object representing Response */
return response.jsonPath().getObject("entry", FilePlanComponent.class);
} }
/** /**

View File

@@ -26,9 +26,11 @@
*/ */
package org.alfresco.rest.rm.community.requests.igCoreAPI; package org.alfresco.rest.rm.community.requests.igCoreAPI;
import static com.jayway.restassured.RestAssured.basic;
import static com.jayway.restassured.RestAssured.given; import static com.jayway.restassured.RestAssured.given;
import static org.jglue.fluentjson.JsonBuilderFactory.buildObject; import static org.jglue.fluentjson.JsonBuilderFactory.buildObject;
import static org.springframework.http.HttpStatus.OK;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.jayway.restassured.builder.RequestSpecBuilder; import com.jayway.restassured.builder.RequestSpecBuilder;
@@ -38,12 +40,13 @@ import com.jayway.restassured.specification.RequestSpecification;
import org.alfresco.dataprep.AlfrescoHttpClient; import org.alfresco.dataprep.AlfrescoHttpClient;
import org.alfresco.dataprep.AlfrescoHttpClientFactory; import org.alfresco.dataprep.AlfrescoHttpClientFactory;
import org.alfresco.dataprep.UserService; import org.alfresco.rest.core.RMRestProperties;
import org.alfresco.rest.core.RestAPI; import org.alfresco.rest.core.RMRestWrapper;
import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponent; import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponent;
import org.alfresco.utility.data.DataUser; import org.alfresco.rest.rm.community.model.user.UserPermissions;
import org.alfresco.rest.rm.community.model.user.UserRoles;
import org.alfresco.rest.rm.community.requests.RMModelRequest;
import org.alfresco.utility.model.UserModel; import org.alfresco.utility.model.UserModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -58,21 +61,44 @@ import org.springframework.stereotype.Component;
// "old-style" API calls. // "old-style" API calls.
@Component @Component
@Scope (value = "prototype") @Scope (value = "prototype")
public class RMUserAPI extends RestAPI<RMUserAPI> public class RMUserAPI extends RMModelRequest
{ {
@Autowired /**
private UserService userService; * @param rmRestWrapper
*/
public RMUserAPI(RMRestWrapper rmRestWrapper)
{
super(rmRestWrapper);
}
@Autowired /**
private DataUser dataUser; * Helper method to obtain {@link AlfrescoHttpClient}
* @return Initialized {@link AlfrescoHttpClient} instance
*/
private AlfrescoHttpClient getAlfrescoHttpClient()
{
RMRestProperties properties = getRMRestWrapper().getRmRestProperties();
@Autowired AlfrescoHttpClientFactory factory = new AlfrescoHttpClientFactory();
private AlfrescoHttpClientFactory alfrescoHttpClientFactory; factory.setHost(properties.getServer());
factory.setPort(Integer.parseInt(properties.getPort()));
factory.setScheme(properties.getScheme());
return factory.getObject();
}
/**
* Assign RM role to user
* @param userName User's username
* @param userRole User's RM role, one of {@link UserRoles} roles
* @throws Exception for failed requests
*/
public void assignRoleToUser(String userName, String userRole) throws Exception public void assignRoleToUser(String userName, String userRole) throws Exception
{ {
UserModel adminUser = getRMRestWrapper().getTestUser();
// get an "old-style" REST API client // get an "old-style" REST API client
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = getAlfrescoHttpClient();
// override v1 baseURI and basePath // override v1 baseURI and basePath
RequestSpecification spec = new RequestSpecBuilder() RequestSpecification spec = new RequestSpecBuilder()
@@ -85,13 +111,13 @@ public class RMUserAPI extends RestAPI<RMUserAPI>
.log().all() .log().all()
.pathParam("role", userRole) .pathParam("role", userRole)
.pathParam("authority", userName) .pathParam("authority", userName)
.param("alf_ticket", client.getAlfTicket( .param("alf_ticket", client.getAlfTicket(adminUser.getUsername(),
dataUser.getAdminUser().getUsername(), dataUser.getAdminUser().getPassword())) adminUser.getPassword()))
.when() .when()
.post("/rm/roles/{role}/authorities/{authority}") .post("/rm/roles/{role}/authorities/{authority}")
.prettyPeek() .prettyPeek()
.andReturn(); .andReturn();
usingRestWrapper().setStatusCode(Integer.toString(response.getStatusCode())); getRMRestWrapper().setStatusCode(Integer.toString(response.getStatusCode()));
} }
/** /**
@@ -102,8 +128,10 @@ public class RMUserAPI extends RestAPI<RMUserAPI>
*/ */
public void addUserPermission(FilePlanComponent component, UserModel user, String permission) public void addUserPermission(FilePlanComponent component, UserModel user, String permission)
{ {
UserModel adminUser = getRMRestWrapper().getTestUser();
// get an "old-style" REST API client // get an "old-style" REST API client
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject(); AlfrescoHttpClient client = getAlfrescoHttpClient();
JsonObject bodyJson = buildObject() JsonObject bodyJson = buildObject()
.addArray("permissions") .addArray("permissions")
@@ -122,7 +150,7 @@ public class RMUserAPI extends RestAPI<RMUserAPI>
// execute an "old-style" API call // execute an "old-style" API call
Response response = given() Response response = given()
.spec(spec) .spec(spec)
.auth().basic(dataUser.getAdminUser().getUsername(), dataUser.getAdminUser().getPassword()) .auth().basic(adminUser.getUsername(), adminUser.getPassword())
.contentType(ContentType.JSON) .contentType(ContentType.JSON)
.body(bodyJson.toString()) .body(bodyJson.toString())
.pathParam("nodeId", component.getId()) .pathParam("nodeId", component.getId())
@@ -131,23 +159,47 @@ public class RMUserAPI extends RestAPI<RMUserAPI>
.post("/node/workspace/SpacesStore/{nodeId}/rmpermissions") .post("/node/workspace/SpacesStore/{nodeId}/rmpermissions")
.prettyPeek() .prettyPeek()
.andReturn(); .andReturn();
usingRestWrapper().setStatusCode(Integer.toString(response.getStatusCode())); getRMRestWrapper().setStatusCode(Integer.toString(response.getStatusCode()));
} }
/** /**
* Creates a user with the given name using the old APIs * Creates a user with the given name using the old APIs
* *
* @param userName The user name * @param userName The user name
* @param userPassword The user's password
* @param userEmail The user's e-mail address
* @return <code>true</code> if the user was created successfully, <code>false</code> otherwise. * @return <code>true</code> if the user was created successfully, <code>false</code> otherwise.
*/ */
public boolean createUser(String userName) public boolean createUser(String userName, String userPassword, String userEmail)
{ {
return userService.create(dataUser.getAdminUser().getUsername(), UserModel adminUser = getRMRestWrapper().getTestUser();
dataUser.getAdminUser().getPassword(), AlfrescoHttpClient client = getAlfrescoHttpClient();
userName,
"password", JsonObject body = buildObject()
"default@alfresco.com", .add("userName", userName)
userName, .add("firstName", userName)
userName); .add("lastName", userName)
.add("password", userPassword)
.add("email", userEmail)
.getJson();
RequestSpecification spec = new RequestSpecBuilder()
.setBaseUri(client.getApiUrl())
.setBasePath("/")
.setAuth(basic(adminUser.getUsername(), adminUser.getPassword()))
.setContentType(ContentType.JSON)
.setBody(body.toString())
.build();
// create POST request to "people" endpoint
Response response = given()
.spec(spec)
.log().all()
.when()
.post("people")
.prettyPeek()
.andReturn();
return (response.getStatusCode() == OK.value());
} }
} }

View File

@@ -26,16 +26,15 @@
*/ */
package org.alfresco.rest.rm.community.requests.igCoreAPI; package org.alfresco.rest.rm.community.requests.igCoreAPI;
import static com.jayway.restassured.RestAssured.given;
import static org.alfresco.rest.core.RestRequest.requestWithBody; import static org.alfresco.rest.core.RestRequest.requestWithBody;
import static org.alfresco.rest.core.RestRequest.simpleRequest;
import static org.alfresco.rest.rm.community.util.ParameterCheck.mandatoryObject; import static org.alfresco.rest.rm.community.util.ParameterCheck.mandatoryObject;
import static org.alfresco.rest.rm.community.util.ParameterCheck.mandatoryString; import static org.alfresco.rest.rm.community.util.ParameterCheck.mandatoryString;
import static org.alfresco.rest.rm.community.util.PojoUtility.toJson; import static org.alfresco.rest.rm.community.util.PojoUtility.toJson;
import static org.apache.commons.lang3.StringUtils.EMPTY; import static org.apache.commons.lang3.StringUtils.EMPTY;
import static org.springframework.http.HttpMethod.GET;
import static org.springframework.http.HttpMethod.POST; import static org.springframework.http.HttpMethod.POST;
import com.jayway.restassured.response.Response;
import com.jayway.restassured.response.ResponseBody; import com.jayway.restassured.response.ResponseBody;
import org.alfresco.rest.core.RMRestWrapper; import org.alfresco.rest.core.RMRestWrapper;
@@ -79,14 +78,11 @@ public class RecordsAPI extends RMModelRequest
public ResponseBody<?> getRecordContent(String recordId) throws Exception public ResponseBody<?> getRecordContent(String recordId) throws Exception
{ {
mandatoryString("recordId", recordId); mandatoryString("recordId", recordId);
Response response = given()
.auth().basic(getRMRestWrapper().getTestUser().getUsername(), return getRMRestWrapper()
getRMRestWrapper().getTestUser().getPassword()) .processHtmlResponse(simpleRequest(GET,"records/{recordId}/content", recordId))
.when() .getBody();
.get("records/{recordId}/content", recordId)
.andReturn();
getRMRestWrapper().setStatusCode(Integer.toString(response.getStatusCode()));
return response.getBody();
} }
/** /**
@@ -144,6 +140,5 @@ public class RecordsAPI extends RMModelRequest
parameters parameters
)); ));
} }
} }

View File

@@ -56,6 +56,7 @@ public class RestIGCoreAPI extends RMModelRequest
RestAssured.baseURI = format("%s://%s", rmRestProperties.getScheme(), rmRestProperties.getServer()); RestAssured.baseURI = format("%s://%s", rmRestProperties.getScheme(), rmRestProperties.getServer());
RestAssured.port = parseInt(rmRestProperties.getPort()); RestAssured.port = parseInt(rmRestProperties.getPort());
RestAssured.basePath = rmRestProperties.getRestRmPath(); RestAssured.basePath = rmRestProperties.getRestRmPath();
restWrapper.configureRequestSpec().setBasePath(RestAssured.basePath);
} }
/** /**
@@ -97,4 +98,14 @@ public class RestIGCoreAPI extends RMModelRequest
{ {
return new FilesAPI(getRMRestWrapper()); return new FilesAPI(getRMRestWrapper());
} }
/**
* Provides DSL for RM user management API
*
* @return {@link RMUserAPI}
*/
public RMUserAPI usingRMUser()
{
return new RMUserAPI(getRMRestWrapper());
}
} }

View File

@@ -41,12 +41,10 @@ import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponent
import org.alfresco.rest.rm.community.model.user.UserPermissions; import org.alfresco.rest.rm.community.model.user.UserPermissions;
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.igCoreAPI.FilePlanComponentAPI; import org.alfresco.rest.rm.community.requests.igCoreAPI.FilePlanComponentAPI;
import org.alfresco.rest.rm.community.requests.igCoreAPI.RMUserAPI;
import org.alfresco.test.AlfrescoTest; import org.alfresco.test.AlfrescoTest;
import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.SiteModel; 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.testng.annotations.Test; import org.testng.annotations.Test;
/** /**
@@ -60,9 +58,6 @@ import org.testng.annotations.Test;
*/ */
public class DeleteRecordTests extends BaseRMRestTest public class DeleteRecordTests extends BaseRMRestTest
{ {
@Autowired
private RMUserAPI rmUserAPI;
/** /**
* <pre> * <pre>
* Given a record * Given a record
@@ -149,8 +144,8 @@ public class DeleteRecordTests extends BaseRMRestTest
getDataUser().addUserToSite(deleteUser, new SiteModel(getRestAPIFactory().getRMSiteAPI().getSite().getId()), UserRole.SiteCollaborator); getDataUser().addUserToSite(deleteUser, new SiteModel(getRestAPIFactory().getRMSiteAPI().getSite().getId()), UserRole.SiteCollaborator);
// add RM role to user // add RM role to user
rmUserAPI.assignRoleToUser(deleteUser.getUsername(), UserRoles.ROLE_RM_POWER_USER); getRestAPIFactory().getRMUserAPI().assignRoleToUser(deleteUser.getUsername(), UserRoles.ROLE_RM_POWER_USER);
rmUserAPI.usingRestWrapper().assertStatusCodeIs(OK); assertStatusCode(OK);
// try to delete newRecord // try to delete newRecord
getRestAPIFactory().getFilePlanComponentsAPI(deleteUser).deleteFilePlanComponent(newRecord.getId()); getRestAPIFactory().getFilePlanComponentsAPI(deleteUser).deleteFilePlanComponent(newRecord.getId());
@@ -183,8 +178,8 @@ public class DeleteRecordTests extends BaseRMRestTest
logger.info("test user: " + deleteUser.getUsername()); logger.info("test user: " + deleteUser.getUsername());
// add RM role to user, RM Power User doesn't have the Delete Record capabilities // add RM role to user, RM Power User doesn't have the Delete Record capabilities
rmUserAPI.assignRoleToUser(deleteUser.getUsername(), UserRoles.ROLE_RM_POWER_USER); getRestAPIFactory().getRMUserAPI().assignRoleToUser(deleteUser.getUsername(), UserRoles.ROLE_RM_POWER_USER);
rmUserAPI.usingRestWrapper().assertStatusCodeIs(OK); assertStatusCode(OK);
// create random folder // create random folder
FilePlanComponent randomFolder = createCategoryFolderInFilePlan(); FilePlanComponent randomFolder = createCategoryFolderInFilePlan();
@@ -193,9 +188,9 @@ public class DeleteRecordTests extends BaseRMRestTest
// grant deleteUser Filing privileges on randomFolder category, this will be // grant deleteUser Filing privileges on randomFolder category, this will be
// inherited to randomFolder // inherited to randomFolder
FilePlanComponentAPI filePlanComponentsAPIAsAdmin = getRestAPIFactory().getFilePlanComponentsAPI(); FilePlanComponentAPI filePlanComponentsAPIAsAdmin = getRestAPIFactory().getFilePlanComponentsAPI();
rmUserAPI.addUserPermission(filePlanComponentsAPIAsAdmin.getFilePlanComponent(randomFolder.getParentId()), getRestAPIFactory().getRMUserAPI().addUserPermission(filePlanComponentsAPIAsAdmin.getFilePlanComponent(randomFolder.getParentId()),
deleteUser, UserPermissions.PERMISSION_FILING); deleteUser, UserPermissions.PERMISSION_FILING);
rmUserAPI.usingRestWrapper().assertStatusCodeIs(OK); assertStatusCode(OK);
// create a non-electronic record in randomFolder // create a non-electronic record in randomFolder
FilePlanComponent newRecord = filePlanComponentsAPIAsAdmin.createFilePlanComponent(createNonElectronicRecordModel(), randomFolder.getId()); FilePlanComponent newRecord = filePlanComponentsAPIAsAdmin.createFilePlanComponent(createNonElectronicRecordModel(), randomFolder.getId());

View File

@@ -99,7 +99,7 @@ public class ElectronicRecordTests extends BaseRMRestTest
) )
public void cantCreateElectronicRecordsInInvalidContainers(FilePlanComponent container) throws Exception public void cantCreateElectronicRecordsInInvalidContainers(FilePlanComponent container) throws Exception
{ {
// Build object the filePlan // Build object the filePlan, this should throw an IllegalArgumentException
getRestAPIFactory().getFilePlanComponentsAPI().createElectronicRecord(createElectronicRecordModel(), IMAGE_FILE, container.getId()); getRestAPIFactory().getFilePlanComponentsAPI().createElectronicRecord(createElectronicRecordModel(), IMAGE_FILE, container.getId());
// verify the create request status code // verify the create request status code
@@ -116,7 +116,10 @@ public class ElectronicRecordTests extends BaseRMRestTest
* </pre> * </pre>
* @throws Exception * @throws Exception
*/ */
@Test(description = "Electronic record can't be created in closed record folder") @Test
(
description = "Electronic record can't be created in closed record folder"
)
public void cantCreateElectronicRecordInClosedFolder() throws Exception public void cantCreateElectronicRecordInClosedFolder() throws Exception
{ {
FilePlanComponent recordFolder = createCategoryFolderInFilePlan(); FilePlanComponent recordFolder = createCategoryFolderInFilePlan();
@@ -127,7 +130,7 @@ public class ElectronicRecordTests extends BaseRMRestTest
// close the folder // close the folder
closeFolder(recordFolder.getId()); closeFolder(recordFolder.getId());
// try to create it, this should fail // try to create it, this should throw IllegalArgumentException
getRestAPIFactory().getFilePlanComponentsAPI().createElectronicRecord(createElectronicRecordModel(), IMAGE_FILE, recordFolder.getId()); getRestAPIFactory().getFilePlanComponentsAPI().createElectronicRecord(createElectronicRecordModel(), IMAGE_FILE, recordFolder.getId());
// verify the status code // verify the status code

View File

@@ -47,7 +47,6 @@ import org.alfresco.test.AlfrescoTest;
import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.SiteModel; 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.testng.annotations.Test; import org.testng.annotations.Test;
/** /**
@@ -60,9 +59,6 @@ import org.testng.annotations.Test;
*/ */
public class UpdateRecordsTests extends BaseRMRestTest public class UpdateRecordsTests extends BaseRMRestTest
{ {
@Autowired
private RMUserAPI rmUserAPI;
/* to be used to append to modifications */ /* to be used to append to modifications */
private final String MODIFIED_PREFIX = "modified_"; private final String MODIFIED_PREFIX = "modified_";
@@ -132,6 +128,7 @@ public class UpdateRecordsTests extends BaseRMRestTest
@AlfrescoTest(jira="RM-4362") @AlfrescoTest(jira="RM-4362")
public void userWithEditMetadataCapsCanUpdateMetadata() throws Exception public void userWithEditMetadataCapsCanUpdateMetadata() throws Exception
{ {
RMUserAPI rmUserAPI = getRestAPIFactory().getRMUserAPI();
// create test user and add it with collab. privileges // create test user and add it with collab. privileges
UserModel updateUser = getDataUser().createRandomTestUser("updateuser"); UserModel updateUser = getDataUser().createRandomTestUser("updateuser");
updateUser.setUserRole(UserRole.SiteCollaborator); updateUser.setUserRole(UserRole.SiteCollaborator);
@@ -139,7 +136,7 @@ public class UpdateRecordsTests extends BaseRMRestTest
// RM Security Officer is the lowest role with Edit Record Metadata capabilities // RM Security Officer is the lowest role with Edit Record Metadata capabilities
rmUserAPI.assignRoleToUser(updateUser.getUsername(), UserRoles.ROLE_RM_SECURITY_OFFICER); rmUserAPI.assignRoleToUser(updateUser.getUsername(), UserRoles.ROLE_RM_SECURITY_OFFICER);
rmUserAPI.usingRestWrapper().assertStatusCodeIs(OK); assertStatusCode(OK);
// create random folder // create random folder
FilePlanComponent randomFolder = createCategoryFolderInFilePlan(); FilePlanComponent randomFolder = createCategoryFolderInFilePlan();
@@ -150,7 +147,7 @@ public class UpdateRecordsTests extends BaseRMRestTest
FilePlanComponentAPI filePlanComponentsAPIAsAdmin = getRestAPIFactory().getFilePlanComponentsAPI(); FilePlanComponentAPI filePlanComponentsAPIAsAdmin = getRestAPIFactory().getFilePlanComponentsAPI();
rmUserAPI.addUserPermission(filePlanComponentsAPIAsAdmin.getFilePlanComponent(randomFolder.getParentId()), rmUserAPI.addUserPermission(filePlanComponentsAPIAsAdmin.getFilePlanComponent(randomFolder.getParentId()),
updateUser, UserPermissions.PERMISSION_FILING); updateUser, UserPermissions.PERMISSION_FILING);
rmUserAPI.usingRestWrapper().assertStatusCodeIs(OK); assertStatusCode(OK);
// create electronic and non-electronic records in a folder // create electronic and non-electronic records in a folder
FilePlanComponentAPI filePlanComponentsAPI = getRestAPIFactory().getFilePlanComponentsAPI(); FilePlanComponentAPI filePlanComponentsAPI = getRestAPIFactory().getFilePlanComponentsAPI();

View File

@@ -49,13 +49,12 @@ import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNotNull;
import org.alfresco.rest.rm.community.base.BaseRMRestTest; import org.alfresco.rest.rm.community.base.BaseRMRestTest;
import org.alfresco.rest.rm.community.base.TestData;
import org.alfresco.rest.rm.community.model.site.RMSite; import org.alfresco.rest.rm.community.model.site.RMSite;
import org.alfresco.rest.rm.community.requests.igCoreAPI.RMSiteAPI; import org.alfresco.rest.rm.community.requests.igCoreAPI.RMSiteAPI;
import org.alfresco.rest.rm.community.requests.igCoreAPI.RMUserAPI;
import org.alfresco.utility.data.RandomData; import org.alfresco.utility.data.RandomData;
import org.alfresco.utility.model.UserModel; import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug; import org.alfresco.utility.report.Bug;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.annotations.Test; import org.testng.annotations.Test;
/** /**
@@ -67,9 +66,6 @@ import org.testng.annotations.Test;
*/ */
public class RMSiteTests extends BaseRMRestTest public class RMSiteTests extends BaseRMRestTest
{ {
@Autowired
private RMUserAPI rmUserAPI;
/** /**
* Given that RM module is installed * Given that RM module is installed
* When I want to create the RM site with specific title, description and compliance * When I want to create the RM site with specific title, description and compliance
@@ -208,7 +204,7 @@ public class RMSiteTests extends BaseRMRestTest
} }
// Create user // Create user
rmUserAPI.createUser(ANOTHER_ADMIN); getRestAPIFactory().getRMUserAPI().createUser(ANOTHER_ADMIN, TestData.DEFAULT_PASSWORD, TestData.DEFAULT_EMAIL);
// Create the RM site // Create the RM site
RMSite rmSiteModel = getRestAPIFactory().getRMSiteAPI(new UserModel(ANOTHER_ADMIN, DEFAULT_PASSWORD)).createRMSite(createDOD5015RMSiteModel()); RMSite rmSiteModel = getRestAPIFactory().getRMSiteAPI(new UserModel(ANOTHER_ADMIN, DEFAULT_PASSWORD)).createRMSite(createDOD5015RMSiteModel());