diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml index a579ccda39..451ec7e270 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml @@ -105,6 +105,8 @@ + + diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionActionImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionActionImpl.java index 6af426aa63..2661a5b61b 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionActionImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionActionImpl.java @@ -472,28 +472,33 @@ public class DispositionActionImpl implements DispositionAction, if (!events.isEmpty()) { - if (!getDispositionActionDefinition().eligibleOnFirstCompleteEvent()) - { - // if one event is complete then the disposition action is eligible - eligible = true; - for (EventCompletionDetails event : events) + // get the disposition action definition + DispositionActionDefinition dispositionActionDefinition = getDispositionActionDefinition(); + if (dispositionActionDefinition != null) + { + if (!dispositionActionDefinition.eligibleOnFirstCompleteEvent()) { - if (!event.isEventComplete()) + // if one event is complete then the disposition action is eligible + eligible = true; + for (EventCompletionDetails event : events) { - eligible = false; - break; + if (!event.isEventComplete()) + { + eligible = false; + break; + } } } - } - else - { - // all events must be complete for the disposition action to be eligible - for (EventCompletionDetails event : events) + else { - if (event.isEventComplete()) + // all events must be complete for the disposition action to be eligible + for (EventCompletionDetails event : events) { - eligible = true; - break; + if (event.isEventComplete()) + { + eligible = true; + break; + } } } } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/AbstractDisposableItem.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/AbstractDisposableItem.java new file mode 100644 index 0000000000..5a8d161bd7 --- /dev/null +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/AbstractDisposableItem.java @@ -0,0 +1,65 @@ +/** + * + */ +package org.alfresco.module.org_alfresco_module_rm.model.behaviour; + +import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction; +import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService; +import org.alfresco.module.org_alfresco_module_rm.model.BaseBehaviourBean; +import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.repository.NodeService; +import org.alfresco.service.namespace.QName; + +/** + * Abstract disposable item, containing commonality between record and record folder. + * + * @author Roy Wetherall + * @since 2.2 + */ +public abstract class AbstractDisposableItem extends BaseBehaviourBean +{ + /** unwanted aspects */ + protected QName[] unwantedAspects = + { + ASPECT_VITAL_RECORD, + ASPECT_DISPOSITION_LIFECYCLE, + RecordsManagementSearchBehaviour.ASPECT_RM_SEARCH + }; + + /** disposition service */ + protected DispositionService dispositionService; + + /** + * @param dispositionService disposition service + */ + public void setDispositionService(DispositionService dispositionService) + { + this.dispositionService = dispositionService; + } + + /** + * Removes unwanted aspects + * + * @param nodeService + * @param nodeRef + */ + protected void cleanDisposableItem(NodeService nodeService, NodeRef nodeRef) + { + // Remove unwanted aspects + for (QName aspect : unwantedAspects) + { + if (nodeService.hasAspect(nodeRef, aspect)) + { + nodeService.removeAspect(nodeRef, aspect); + } + } + + // remove the current disposition action (if there is one) + DispositionAction dispositionAction = dispositionService.getNextDispositionAction(nodeRef); + if (dispositionAction != null) + { + nodeService.deleteNode(dispositionAction.getNodeRef()); + } + } + +} diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordAspect.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordAspect.java index e2b55580e1..15106e3e76 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordAspect.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordAspect.java @@ -25,9 +25,9 @@ import java.util.Set; import org.alfresco.model.ContentModel; import org.alfresco.module.org_alfresco_module_rm.RecordsManagementPolicies; -import org.alfresco.module.org_alfresco_module_rm.model.BaseBehaviourBean; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementCustomModel; -import org.alfresco.module.org_alfresco_module_rm.model.behaviour.RecordsManagementSearchBehaviour; +import org.alfresco.module.org_alfresco_module_rm.model.behaviour.AbstractDisposableItem; +import org.alfresco.module.org_alfresco_module_rm.record.RecordService; import org.alfresco.module.org_alfresco_module_rm.security.ExtendedSecurityService; import org.alfresco.repo.copy.CopyBehaviourCallback; import org.alfresco.repo.copy.CopyDetails; @@ -54,7 +54,7 @@ import org.alfresco.service.namespace.QName; ( defaultType = "rma:record" ) -public class RecordAspect extends BaseBehaviourBean +public class RecordAspect extends AbstractDisposableItem implements NodeServicePolicies.OnCreateChildAssociationPolicy, RecordsManagementPolicies.OnCreateReference, RecordsManagementPolicies.OnRemoveReference, @@ -69,6 +69,9 @@ public class RecordAspect extends BaseBehaviourBean /** script service */ protected ScriptService scriptService; + + /** record service */ + protected RecordService recordService; /** * @param extendedSecurityService extended security service @@ -85,6 +88,14 @@ public class RecordAspect extends BaseBehaviourBean { this.scriptService = scriptService; } + + /** + * @param recordService record service + */ + public void setRecordService(RecordService recordService) + { + this.recordService = recordService; + } /** * Behaviour to ensure renditions have the appropriate extended security. @@ -219,15 +230,18 @@ public class RecordAspect extends BaseBehaviourBean // check the records parent has actually changed if (!oldChildAssocRef.getParentRef().equals(newChildAssocRef.getParentRef())) { - final NodeRef newNodeRef = newChildAssocRef.getChildRef(); + final NodeRef record = newChildAssocRef.getChildRef(); AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork() { public Object doWork() { - if (nodeService.exists(newNodeRef)) + if (nodeService.exists(record)) { - // only remove the search details .. the rest will be resolved automatically - nodeService.removeAspect(newNodeRef, RecordsManagementSearchBehaviour.ASPECT_RM_SEARCH); + // clean record + cleanDisposableItem(nodeService, record); + + // re-file in the new folder + recordService.file(record); } return null; @@ -239,10 +253,10 @@ public class RecordAspect extends BaseBehaviourBean /** * Executes a reference script if present * - * @param policy - * @param reference - * @param from - * @param to + * @param policy policy + * @param reference reference + * @param from reference from + * @param to reference to */ private void executeReferenceScript(String policy, QName reference, NodeRef from, NodeRef to) { diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java index 69c50049a1..54c6d399ee 100755 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java @@ -22,10 +22,7 @@ import java.io.Serializable; import java.util.Map; import org.alfresco.error.AlfrescoRuntimeException; -import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction; -import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService; -import org.alfresco.module.org_alfresco_module_rm.model.BaseBehaviourBean; -import org.alfresco.module.org_alfresco_module_rm.model.behaviour.RecordsManagementSearchBehaviour; +import org.alfresco.module.org_alfresco_module_rm.model.behaviour.AbstractDisposableItem; import org.alfresco.module.org_alfresco_module_rm.record.RecordService; import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService; import org.alfresco.module.org_alfresco_module_rm.vital.VitalRecordService; @@ -41,7 +38,6 @@ import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.namespace.QName; import org.apache.commons.lang.ArrayUtils; @@ -55,27 +51,16 @@ import org.apache.commons.lang.ArrayUtils; ( defaultType = "rma:recordFolder" ) -public class RecordFolderType extends BaseBehaviourBean +public class RecordFolderType extends AbstractDisposableItem implements NodeServicePolicies.OnMoveNodePolicy, NodeServicePolicies.OnCreateChildAssociationPolicy { - /** unwanted aspects */ - private QName[] unwantedAspects = - { - ASPECT_VITAL_RECORD, - ASPECT_DISPOSITION_LIFECYCLE, - RecordsManagementSearchBehaviour.ASPECT_RM_SEARCH - }; - /** record service */ private RecordService recordService; /** record folder service */ private RecordFolderService recordFolderService; - /** disposition service */ - private DispositionService dispositionService; - /** vital record service */ protected VitalRecordService vitalRecordService; @@ -95,14 +80,6 @@ public class RecordFolderType extends BaseBehaviourBean this.recordFolderService = recordFolderService; } - /** - * @param dispositionService disposition service - */ - public void setDispositionService(DispositionService dispositionService) - { - this.dispositionService = dispositionService; - } - /** * @param vitalRecordService vital record service */ @@ -273,29 +250,4 @@ public class RecordFolderType extends BaseBehaviourBean behaviourFilter.enableBehaviour(); } } - - /** - * Removes unwanted aspects - * - * @param nodeService - * @param nodeRef - */ - private void cleanDisposableItem(NodeService nodeService, NodeRef nodeRef) - { - // Remove unwanted aspects - for (QName aspect : unwantedAspects) - { - if (nodeService.hasAspect(nodeRef, aspect)) - { - nodeService.removeAspect(nodeRef, aspect); - } - } - - // remove the current disposition action (if there is one) - DispositionAction dispositionAction = dispositionService.getNextDispositionAction(nodeRef); - if (dispositionAction != null) - { - nodeService.deleteNode(dispositionAction.getNodeRef()); - } - } } diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/MoveRecordTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/MoveRecordTest.java new file mode 100644 index 0000000000..daf0ac994a --- /dev/null +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/MoveRecordTest.java @@ -0,0 +1,278 @@ +/* + * Copyright (C) 2005-2014 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +package org.alfresco.module.org_alfresco_module_rm.test.integration.record; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.alfresco.module.org_alfresco_module_rm.action.impl.CutOffAction; +import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction; +import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule; +import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase; +import org.alfresco.module.org_alfresco_module_rm.test.util.CommonRMTestUtils; +import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.namespace.QName; +import org.springframework.extensions.webscripts.GUID; + +/** + * Move record tests. + * + * @author Roy Wetherall + * @since 2.2 + */ +@SuppressWarnings("unchecked") +public class MoveRecordTest extends BaseRMTestCase +{ + private static final String OTHER_EVENT = "abolished"; + + /** + * Given a record is filed in a event disposition and moved then the + * record no longer has any disposition. + * + * @see https://issues.alfresco.com/jira/browse/RM-1540 + */ + public void testMoveRecordEventDispositinoToNoDisposition() throws Exception + { + doBehaviourDrivenTest(new BehaviourDrivenTest() + { + NodeRef sourceCategory; + NodeRef sourceRecordFolder; + NodeRef destinationCategory; + NodeRef destinationRecordFolder; + NodeRef record; + + public void given() + { + // create test data + sourceCategory = filePlanService.createRecordCategory(filePlan, GUID.generate()); + utils.createBasicDispositionSchedule(sourceCategory, GUID.generate(), GUID.generate(), true, true); + sourceRecordFolder = recordFolderService.createRecordFolder(sourceCategory, GUID.generate()); + destinationCategory = filePlanService.createRecordCategory(filePlan, GUID.generate());; + destinationRecordFolder = recordFolderService.createRecordFolder(destinationCategory, GUID.generate()); + + // create record + record = utils.createRecord(sourceRecordFolder, GUID.generate()); + + // check for the lifecycle aspect + assertFalse(nodeService.hasAspect(sourceRecordFolder, ASPECT_DISPOSITION_LIFECYCLE)); + assertTrue(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE)); + + // check the disposition action details + DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record); + assertNotNull(dispositionAction); + assertNotNull(CutOffAction.NAME, dispositionAction.getName()); + assertNull(dispositionAction.getAsOfDate()); + assertFalse(dispositionService.isNextDispositionActionEligible(record)); + assertNotNull(dispositionAction.getEventCompletionDetails(CommonRMTestUtils.DEFAULT_EVENT_NAME)); + } + + public void when() throws Exception + { + // check the search aspect details + assertTrue(nodeService.hasAspect(record, ASPECT_RM_SEARCH)); + assertEquals(CutOffAction.NAME, nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_NAME)); + assertNull(nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_AS_OF)); + assertTrue(((List)nodeService.getProperty(record, PROP_RS_DISPOSITION_EVENTS)).contains(CommonRMTestUtils.DEFAULT_EVENT_NAME)); + + // move record + fileFolderService.move(record, destinationRecordFolder, null); + } + + public void then() + { + // check for the lifecycle aspect + assertFalse(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE)); + + // check the disposition action details + assertNull(dispositionService.getNextDispositionAction(record)); + + // check the search aspect properties + assertFalse(nodeService.hasAspect(record, ASPECT_RM_SEARCH)); + + } + }); + } + + /** + * Given a record in a event disposition, when it moved to another event disposition then the record should have the + * new events, rather than the old ones. + */ + public void testMoveRecordEventDisToEventDis() + { + doBehaviourDrivenTest(new BehaviourDrivenTest() + { + NodeRef sourceCategory; + NodeRef sourceRecordFolder; + NodeRef destinationCategory; + NodeRef destinationRecordFolder; + NodeRef record; + + public void given() + { + // create test data + sourceCategory = filePlanService.createRecordCategory(filePlan, GUID.generate()); + utils.createBasicDispositionSchedule(sourceCategory, GUID.generate(), GUID.generate(), true, true); + sourceRecordFolder = recordFolderService.createRecordFolder(sourceCategory, GUID.generate()); + + destinationCategory = filePlanService.createRecordCategory(filePlan, GUID.generate()); + utils.createDispositionSchedule(destinationCategory, GUID.generate(), GUID.generate(), true, true, false, OTHER_EVENT); + destinationRecordFolder = recordFolderService.createRecordFolder(destinationCategory, GUID.generate()); + + // create record + record = utils.createRecord(sourceRecordFolder, GUID.generate()); + + // check for the lifecycle aspect + assertFalse(nodeService.hasAspect(sourceRecordFolder, ASPECT_DISPOSITION_LIFECYCLE)); + assertTrue(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE)); + + // check the disposition action details + DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record); + assertNotNull(dispositionAction); + assertNotNull(CutOffAction.NAME, dispositionAction.getName()); + assertNull(dispositionAction.getAsOfDate()); + assertFalse(dispositionService.isNextDispositionActionEligible(record)); + assertNotNull(dispositionAction.getEventCompletionDetails(CommonRMTestUtils.DEFAULT_EVENT_NAME)); + assertNull(dispositionAction.getEventCompletionDetails(OTHER_EVENT)); + } + + public void when() throws Exception + { + // check the search aspect details + assertTrue(nodeService.hasAspect(record, ASPECT_RM_SEARCH)); + assertEquals(CutOffAction.NAME, nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_NAME)); + assertNull(nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_AS_OF)); + assertTrue(((List)nodeService.getProperty(record, PROP_RS_DISPOSITION_EVENTS)).contains(CommonRMTestUtils.DEFAULT_EVENT_NAME)); + + // move record + fileFolderService.move(record, destinationRecordFolder, null); + } + + public void then() + { + // check for the lifecycle aspect + assertTrue(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE)); + + // check the disposition action details + DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record); + assertNotNull(dispositionAction); + assertNotNull(CutOffAction.NAME, dispositionAction.getName()); + assertNull(dispositionAction.getAsOfDate()); + assertFalse(dispositionService.isNextDispositionActionEligible(record)); + assertNull(dispositionAction.getEventCompletionDetails(CommonRMTestUtils.DEFAULT_EVENT_NAME)); + assertNotNull(dispositionAction.getEventCompletionDetails(OTHER_EVENT)); + + // check the search aspect details + assertTrue(nodeService.hasAspect(record, ASPECT_RM_SEARCH)); + assertEquals(CutOffAction.NAME, nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_NAME)); + assertNull(nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_AS_OF)); + assertTrue(((List)nodeService.getProperty(record, PROP_RS_DISPOSITION_EVENTS)).contains(OTHER_EVENT)); + } + }); + + } + + /** + * Given a record in a event disposition, when it moved to a time disposition then the record should have the correct as of + * date and no longer have the events. + */ + public void testMoveRecordEventDisToTimeDis() + { + doBehaviourDrivenTest(new BehaviourDrivenTest() + { + NodeRef sourceCategory; + NodeRef sourceRecordFolder; + NodeRef destinationCategory; + NodeRef destinationRecordFolder; + NodeRef record; + + public void given() + { + // create test data + sourceCategory = filePlanService.createRecordCategory(filePlan, GUID.generate()); + utils.createBasicDispositionSchedule(sourceCategory, GUID.generate(), GUID.generate(), true, true); + sourceRecordFolder = recordFolderService.createRecordFolder(sourceCategory, GUID.generate()); + + destinationCategory = filePlanService.createRecordCategory(filePlan, GUID.generate()); + DispositionSchedule dis = utils.createBasicDispositionSchedule(destinationCategory, GUID.generate(), GUID.generate(), true, false); + Map adParams = new HashMap(3); + adParams.put(PROP_DISPOSITION_ACTION_NAME, CutOffAction.NAME); + adParams.put(PROP_DISPOSITION_DESCRIPTION, GUID.generate()); + adParams.put(PROP_DISPOSITION_PERIOD, CommonRMTestUtils.PERIOD_IMMEDIATELY); + dispositionService.addDispositionActionDefinition(dis, adParams); + destinationRecordFolder = recordFolderService.createRecordFolder(destinationCategory, GUID.generate()); + + // create record + record = utils.createRecord(sourceRecordFolder, GUID.generate()); + + // check for the lifecycle aspect + assertFalse(nodeService.hasAspect(sourceRecordFolder, ASPECT_DISPOSITION_LIFECYCLE)); + assertTrue(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE)); + + // check the disposition action details + DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record); + assertNotNull(dispositionAction); + assertNotNull(CutOffAction.NAME, dispositionAction.getName()); + assertNull(dispositionAction.getAsOfDate()); + assertFalse(dispositionService.isNextDispositionActionEligible(record)); + assertNotNull(dispositionAction.getEventCompletionDetails(CommonRMTestUtils.DEFAULT_EVENT_NAME)); + assertNull(dispositionAction.getEventCompletionDetails(OTHER_EVENT)); + } + + public void when() throws Exception + { + // check the search aspect details + assertTrue(nodeService.hasAspect(record, ASPECT_RM_SEARCH)); + assertEquals(CutOffAction.NAME, nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_NAME)); + assertNull(nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_AS_OF)); + assertTrue(((List)nodeService.getProperty(record, PROP_RS_DISPOSITION_EVENTS)).contains(CommonRMTestUtils.DEFAULT_EVENT_NAME)); + + // move record + fileFolderService.move(record, destinationRecordFolder, null); + } + + public void then() + { + // check for the lifecycle aspect + assertTrue(nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE)); + + // check the disposition action details + DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record); + assertNotNull(dispositionAction); + assertNotNull(CutOffAction.NAME, dispositionAction.getName()); + assertNotNull(dispositionAction.getAsOfDate()); + assertTrue(dispositionService.isNextDispositionActionEligible(record)); + assertNull(dispositionAction.getEventCompletionDetails(CommonRMTestUtils.DEFAULT_EVENT_NAME)); + + // check the search aspect details + assertTrue(nodeService.hasAspect(record, ASPECT_RM_SEARCH)); + assertEquals(CutOffAction.NAME, nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_NAME)); + assertNotNull(nodeService.getProperty(record, PROP_RS_DISPOSITION_ACTION_AS_OF)); + assertNull(((List)nodeService.getProperty(record, PROP_RS_DISPOSITION_EVENTS))); + } + }); + + } + + // TODO moveRecordNoDisToEventDis + + // TODO moveRecordRecordDisToFolderDis + +} diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/RecordTestSuite.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/RecordTestSuite.java index 7aace3f7f7..6e7e7d97c8 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/RecordTestSuite.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/RecordTestSuite.java @@ -32,7 +32,8 @@ import org.junit.runners.Suite.SuiteClasses; @SuiteClasses( { RejectRecordTest.class, - CreateRecordTest.class + CreateRecordTest.class, + MoveRecordTest.class }) public class RecordTestSuite { diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/recordfolder/MoveRecordFolderTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/recordfolder/MoveRecordFolderTest.java index 74791abb4b..2e18dc091e 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/recordfolder/MoveRecordFolderTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/recordfolder/MoveRecordFolderTest.java @@ -38,7 +38,7 @@ import org.alfresco.service.namespace.QName; import org.springframework.extensions.webscripts.GUID; /** - * Move record tests. + * Move record folder tests. * * @author Roy Wetherall * @since 2.2 diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/CommonRMTestUtils.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/CommonRMTestUtils.java index 9a81c06650..65c67165b2 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/CommonRMTestUtils.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/CommonRMTestUtils.java @@ -76,6 +76,11 @@ public class CommonRMTestUtils implements RecordsManagementModel public static final String PERIOD_NONE = "none|0"; public static final String PERIOD_IMMEDIATELY = "immediately|0"; + /** + * Constructor + * + * @param applicationContext application context + */ public CommonRMTestUtils(ApplicationContext applicationContext) { dispositionService = (DispositionService)applicationContext.getBean("DispositionService"); @@ -99,14 +104,8 @@ public class CommonRMTestUtils implements RecordsManagementModel } /** - * - * @param container - * @param dispositionInstructions - * @param dispositionAuthority - * @param isRecordLevel - * @param defaultDispositionActions - * @return - */ + * Create test disposition schedule + */ public DispositionSchedule createBasicDispositionSchedule( NodeRef container, String dispositionInstructions, @@ -118,14 +117,7 @@ public class CommonRMTestUtils implements RecordsManagementModel } /** - * - * @param container - * @param dispositionInstructions - * @param dispositionAuthority - * @param isRecordLevel - * @param defaultDispositionActions - * @param extendedDispositionSchedule - * @return + * Create test disposition schedule */ public DispositionSchedule createDispositionSchedule( NodeRef container, @@ -134,6 +126,28 @@ public class CommonRMTestUtils implements RecordsManagementModel boolean isRecordLevel, boolean defaultDispositionActions, boolean extendedDispositionSchedule) + { + return createDispositionSchedule( + container, + dispositionInstructions, + dispositionAuthority, + isRecordLevel, + defaultDispositionActions, + extendedDispositionSchedule, + DEFAULT_EVENT_NAME); + } + + /** + * Create test disposition schedule + */ + public DispositionSchedule createDispositionSchedule( + NodeRef container, + String dispositionInstructions, + String dispositionAuthority, + boolean isRecordLevel, + boolean defaultDispositionActions, + boolean extendedDispositionSchedule, + String defaultEvent) { Map dsProps = new HashMap(3); dsProps.put(PROP_DISPOSITION_AUTHORITY, dispositionAuthority); @@ -148,7 +162,7 @@ public class CommonRMTestUtils implements RecordsManagementModel adParams.put(PROP_DISPOSITION_DESCRIPTION, DEFAULT_DISPOSITION_DESCRIPTION); List events = new ArrayList(1); - events.add(DEFAULT_EVENT_NAME); + events.add(defaultEvent); adParams.put(PROP_DISPOSITION_EVENT, (Serializable)events); dispositionService.addDispositionActionDefinition(dispositionSchedule, adParams);