From 096c74aaa9b15c401872f23b6d46f8ac37295e6b Mon Sep 17 00:00:00 2001 From: Roy Wetherall Date: Thu, 21 Mar 2013 06:27:19 +0000 Subject: [PATCH] RM: Fix failing unit tests git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@48440 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org_alfresco_module_rm/action-context.xml | 2 +- .../action/dm/CreateRecordAction.java | 47 +++++++++++-------- .../fileplan/FilePlanService.java | 3 ++ .../admin/RoleDeclarativeWebScript.java | 13 ++++- .../test/action/CreateRecordActionTest.java | 7 +-- .../test/action/RejectActionTest.java | 1 + 6 files changed, 48 insertions(+), 25 deletions(-) diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/action-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/action-context.xml index ca3a80db91..f9d640678c 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/action-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/action-context.xml @@ -14,7 +14,7 @@ - + diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/CreateRecordAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/CreateRecordAction.java index d9c37d8431..871e4f1b55 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/CreateRecordAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/CreateRecordAction.java @@ -22,12 +22,13 @@ import java.util.List; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.model.ContentModel; -import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService; import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.module.org_alfresco_module_rm.record.RecordService; +import org.alfresco.module.org_alfresco_module_rm.security.FilePlanAuthenticationService; import org.alfresco.repo.action.ParameterDefinitionImpl; import org.alfresco.repo.action.executer.ActionExecuterAbstractBase; +import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.action.ParameterDefinition; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; @@ -57,9 +58,6 @@ public class CreateRecordAction extends ActionExecuterAbstractBase public static final String PARAM_FILE_PLAN = "file-plan"; public static final String PARAM_HIDE_RECORD = "hide-record"; - /** Records management service */ - private RecordsManagementService recordsManagementService; - /** Record service */ private RecordService recordService; @@ -72,13 +70,8 @@ public class CreateRecordAction extends ActionExecuterAbstractBase /** Dictionary service */ private DictionaryService dictionaryService; - /** - * @param recordsManagementService records management service - */ - public void setRecordsManagementService(RecordsManagementService recordsManagementService) - { - this.recordsManagementService = recordsManagementService; - } + /** File plan authentication service */ + private FilePlanAuthenticationService filePlanAuthenticationService; /** * @param recordService record service @@ -104,12 +97,22 @@ public class CreateRecordAction extends ActionExecuterAbstractBase this.filePlanService = filePlanService; } - @Override + /** + * @param dictionaryService dictionary service + */ public void setDictionaryService(DictionaryService dictionaryService) { this.dictionaryService = dictionaryService; } + /** + * @param filePlanAuthenticationService file plan authentication service + */ + public void setFilePlanAuthenticationService(FilePlanAuthenticationService filePlanAuthenticationService) + { + this.filePlanAuthenticationService = filePlanAuthenticationService; + } + /** * @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef) */ @@ -162,17 +165,23 @@ public class CreateRecordAction extends ActionExecuterAbstractBase { NodeRef filePlan = (NodeRef)action.getParameterValue(PARAM_FILE_PLAN); if (filePlan == null) - { - List filePlans = recordsManagementService.getFilePlans(); - if (filePlans.size() == 1) + { + // TODO .. eventually make the file plan parameter required + filePlan = filePlanAuthenticationService.runAsRmAdmin(new RunAsWork() { - filePlan = filePlans.get(0); - } - else + @Override + public NodeRef doWork() throws Exception + { + return filePlanService.getFilePlanBySiteId(FilePlanService.DEFAULT_RM_SITE_ID); + } + }); + + // if the file plan is still null, raise an exception + if (filePlan == null) { if (logger.isDebugEnabled() == true) { - logger.debug("Can not create record, because the default file plan can not be determined."); + logger.debug("Can not create record, because the default file plan can not be determined. Make sure at least one file plan has been created."); } throw new AlfrescoRuntimeException("Can not create record, because the default file plan can not be determined."); } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanService.java index fbae15f2cc..4067cbb650 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanService.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanService.java @@ -33,6 +33,9 @@ import com.hazelcast.impl.Node; */ public interface FilePlanService { + /** Default RM site id. Can be used with {@link FilePlanService#getFilePlanBySiteId(String)} to get the file plan node. */ + public static final String DEFAULT_RM_SITE_ID = "rm"; + /** * Indicates whether the given node is file plan node or not. * diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RoleDeclarativeWebScript.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RoleDeclarativeWebScript.java index 741363cf40..b75fb080f9 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RoleDeclarativeWebScript.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RoleDeclarativeWebScript.java @@ -113,13 +113,14 @@ public class RoleDeclarativeWebScript extends DeclarativeWebScript if (filePlan == null) { // Assume we are in a legacy repository and we will grab the default file plan - filePlan = filePlanService.getFilePlanBySiteId("rm"); + filePlan = filePlanService.getFilePlanBySiteId(FilePlanService.DEFAULT_RM_SITE_ID); } return filePlan; } /** + * Create role items * * @param filePlan * @param roles @@ -131,6 +132,7 @@ public class RoleDeclarativeWebScript extends DeclarativeWebScript } /** + * Create role items * * @param filePlan * @param roles @@ -159,6 +161,7 @@ public class RoleDeclarativeWebScript extends DeclarativeWebScript } /** + * Create authority items * * @param authorities * @return @@ -177,7 +180,7 @@ public class RoleDeclarativeWebScript extends DeclarativeWebScript } /** - * Role item utility class + * Role Item Helper Class * * @author Roy Wetherall * @since 2.1 @@ -239,6 +242,12 @@ public class RoleDeclarativeWebScript extends DeclarativeWebScript } } + /** + * Authority Item Helper Class + * + * @author Roy Wetherall + * @since 2.1 + */ public class AuthorityItem { private String name; diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/action/CreateRecordActionTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/action/CreateRecordActionTest.java index 118f93497c..1ba19c6d4c 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/action/CreateRecordActionTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/action/CreateRecordActionTest.java @@ -69,6 +69,7 @@ public class CreateRecordActionTest extends BaseRMTestCase Action action = dmActionService.createAction(CreateRecordAction.NAME); action.setParameterValue(CreateRecordAction.PARAM_HIDE_RECORD, false); + action.setParameterValue(CreateRecordAction.PARAM_FILE_PLAN, filePlan); dmActionService.executeAction(action, dmDocument); return null; @@ -76,10 +77,10 @@ public class CreateRecordActionTest extends BaseRMTestCase public void test(Void result) throws Exception { - assertEquals(AccessStatus.ALLOWED, dmPermissionService.hasPermission(dmDocument, RMPermissionModel.READ_RECORDS)); - assertEquals(AccessStatus.ALLOWED, dmPermissionService.hasPermission(filePlan, RMPermissionModel.VIEW_RECORDS)); + assertTrue(recordService.isRecord(dmDocument)); - assertTrue(recordService.isRecord(dmDocument)); + assertEquals(AccessStatus.ALLOWED, dmPermissionService.hasPermission(dmDocument, RMPermissionModel.READ_RECORDS)); + assertEquals(AccessStatus.ALLOWED, dmPermissionService.hasPermission(filePlan, RMPermissionModel.VIEW_RECORDS)); }; }, dmCollaborator); diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/action/RejectActionTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/action/RejectActionTest.java index 1af90cd232..a75882e48d 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/action/RejectActionTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/action/RejectActionTest.java @@ -69,6 +69,7 @@ public class RejectActionTest extends BaseRMTestCase { // Create a record from the document Action createAction = rmActionService.createAction(CreateRecordAction.NAME); + createAction.setParameterValue(CreateRecordAction.PARAM_FILE_PLAN, filePlan); rmActionService.executeAction(createAction, dmDocument); // Check if the document is a record now