Merge remote-tracking branch 'remotes/origin/release/V2.7' into merge-3.0/RM-6786_FileCan'tBeDeclaredAsRecord

This commit is contained in:
cagache
2019-03-15 10:00:48 +02:00
2 changed files with 34 additions and 2 deletions

View File

@@ -28,6 +28,7 @@ package org.alfresco.rest.rm.community.files;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.UNFILED_RECORDS_CONTAINER_ALIAS; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.UNFILED_RECORDS_CONTAINER_ALIAS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.NON_ELECTRONIC_RECORD_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.NON_ELECTRONIC_RECORD_TYPE;
import static org.alfresco.utility.report.log.Step.STEP;
import static org.springframework.http.HttpStatus.CREATED; import static org.springframework.http.HttpStatus.CREATED;
import static org.springframework.http.HttpStatus.FORBIDDEN; import static org.springframework.http.HttpStatus.FORBIDDEN;
import static org.springframework.http.HttpStatus.UNPROCESSABLE_ENTITY; import static org.springframework.http.HttpStatus.UNPROCESSABLE_ENTITY;
@@ -45,6 +46,7 @@ import org.alfresco.rest.rm.community.model.record.Record;
import org.alfresco.rest.rm.community.model.record.RecordProperties; import org.alfresco.rest.rm.community.model.record.RecordProperties;
import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChildEntry; import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChildEntry;
import org.alfresco.rest.rm.community.requests.gscore.api.UnfiledContainerAPI; import org.alfresco.rest.rm.community.requests.gscore.api.UnfiledContainerAPI;
import org.alfresco.rest.v0.RecordsAPI;
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.FileModel; import org.alfresco.utility.model.FileModel;
@@ -54,6 +56,7 @@ import org.alfresco.utility.model.UserModel;
import org.apache.chemistry.opencmis.client.api.Document; import org.apache.chemistry.opencmis.client.api.Document;
import org.apache.chemistry.opencmis.client.api.SecondaryType; import org.apache.chemistry.opencmis.client.api.SecondaryType;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
@@ -69,6 +72,9 @@ public class DeclareDocumentAsRecordTests extends BaseRMRestTest
private SiteModel testSite; private SiteModel testSite;
private FolderModel testFolder; private FolderModel testFolder;
@Autowired
RecordsAPI recordsAPI;
@BeforeClass(alwaysRun=true) @BeforeClass(alwaysRun=true)
public void declareDocumentAsRecordSetup() throws Exception public void declareDocumentAsRecordSetup() throws Exception
{ {
@@ -239,6 +245,27 @@ public class DeclareDocumentAsRecordTests extends BaseRMRestTest
assertStatusCode(UNPROCESSABLE_ENTITY); assertStatusCode(UNPROCESSABLE_ENTITY);
} }
/**
* Given a file that has version declared as record
* When the file is declared as record
* Then the action is successful
*/
@Test (description = "Declaring as record a file that already has its version declared as record is successful")
@AlfrescoTest (jira = "RM-6786")
public void declareAsRecordAFileWithARecordVersion() throws Exception
{
STEP("Create a file.");
FileModel testFile = dataContent.usingSite(testSite).createContent(CMISUtil.DocumentType.TEXT_PLAIN);
STEP("Declare file version as record and check that record is successfully created.");
recordsAPI.declareDocumentVersionAsRecord(getAdminUser().getUsername(), getAdminUser().getPassword(), testSite.getId(),
testFile.getName());
STEP("Declare file as record and check that record is successfully created.");
getRestAPIFactory().getFilesAPI().declareAsRecord(testFile.getNodeRefWithoutVersion());
assertStatusCode(CREATED);
}
// @Test(description = "Create 500 documents and declare them ass records concurently.") // @Test(description = "Create 500 documents and declare them ass records concurently.")
// public void declare500DocumentsAsRecordsConcurrently() throws Exception // public void declare500DocumentsAsRecordsConcurrently() throws Exception
// { // {

View File

@@ -30,6 +30,7 @@ package org.alfresco.module.org_alfresco_module_rm.model.rma.aspect;
import java.util.Set; import java.util.Set;
import org.alfresco.module.org_alfresco_module_rm.model.BaseBehaviourBean; import org.alfresco.module.org_alfresco_module_rm.model.BaseBehaviourBean;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
import org.alfresco.module.org_alfresco_module_rm.relationship.Relationship; import org.alfresco.module.org_alfresco_module_rm.relationship.Relationship;
import org.alfresco.module.org_alfresco_module_rm.relationship.RelationshipService; import org.alfresco.module.org_alfresco_module_rm.relationship.RelationshipService;
import org.alfresco.module.org_alfresco_module_rm.version.RecordableVersionService; import org.alfresco.module.org_alfresco_module_rm.version.RecordableVersionService;
@@ -143,7 +144,11 @@ public class VersionRecordAspect extends BaseBehaviourBean
@Behaviour(kind = BehaviourKind.CLASS, notificationFrequency = NotificationFrequency.FIRST_EVENT) @Behaviour(kind = BehaviourKind.CLASS, notificationFrequency = NotificationFrequency.FIRST_EVENT)
public void beforeAddAspect(NodeRef nodeRef, QName qName) public void beforeAddAspect(NodeRef nodeRef, QName qName)
{ {
//create a new content URL for the version record // if the node is the originating one the behaviour shouldn't be triggered
createNewContentURL(nodeRef); if (!nodeService.hasAspect(nodeRef, RecordsManagementModel.ASPECT_RECORD_ORIGINATING_DETAILS))
{
//create a new content URL for the version record
createNewContentURL(nodeRef);
}
} }
} }