From e9bb18f9f5d33814403a0abb071a1c80a5544481 Mon Sep 17 00:00:00 2001 From: Roxana Lucanu-Ghetu Date: Wed, 1 Jun 2016 17:41:36 +0300 Subject: [PATCH] Changed test class and commented initial fix. --- .../disposition/DispositionServiceImpl.java | 10 +- .../UpdateNextDispositionActionTest.java | 108 ++++++++---------- 2 files changed, 54 insertions(+), 64 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java index 04455015dd..76d476b8f4 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java @@ -891,11 +891,11 @@ public class DispositionServiceImpl extends ServiceBaseImpl currentDispositionActionDefinition = di.getDispositionActionDefinition(currentADId); // When the record has multiple disposition schedules the current disposition action may not be found by id // In this case it will be searched by name - if(currentDispositionActionDefinition == null) - { - String currentADName = (String) nodeService.getProperty(currentDispositionAction, PROP_DISPOSITION_ACTION); - currentDispositionActionDefinition = di.getDispositionActionDefinitionByName(currentADName); - } +// if(currentDispositionActionDefinition == null) +// { +// String currentADName = (String) nodeService.getProperty(currentDispositionAction, PROP_DISPOSITION_ACTION); +// currentDispositionActionDefinition = di.getDispositionActionDefinitionByName(currentADName); +// } // Get the next disposition action int index = currentDispositionActionDefinition.getIndex(); diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/UpdateNextDispositionActionTest.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/UpdateNextDispositionActionTest.java index b9d4900133..edd76ccdbf 100644 --- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/UpdateNextDispositionActionTest.java +++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/UpdateNextDispositionActionTest.java @@ -26,25 +26,22 @@ */ package org.alfresco.module.org_alfresco_module_rm.test.integration.disposition; +import static org.alfresco.module.org_alfresco_module_rm.test.util.CommonRMTestUtils.DEFAULT_DISPOSITION_DESCRIPTION; import static org.alfresco.module.org_alfresco_module_rm.test.util.CommonRMTestUtils.DEFAULT_DISPOSITION_INSTRUCTIONS; +import static org.alfresco.module.org_alfresco_module_rm.test.util.CommonRMTestUtils.PERIOD_IMMEDIATELY; import static org.alfresco.util.GUID.generate; import java.io.Serializable; -import java.util.ArrayList; 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.action.impl.DestroyAction; import org.alfresco.module.org_alfresco_module_rm.action.impl.TransferAction; import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule; -import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; 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; /** * Update next disposition step integration tests. @@ -52,10 +49,8 @@ import org.springframework.extensions.webscripts.GUID; * @author Roxana Lucanu * @since 2.4.1 */ - public class UpdateNextDispositionActionTest extends BaseRMTestCase { - /** * Given a record with multiple dispositions * When updating the next step @@ -68,59 +63,36 @@ public class UpdateNextDispositionActionTest extends BaseRMTestCase doBehaviourDrivenTest(new BehaviourDrivenTest() { NodeRef record; + NodeRef folder2; @Override public void given() { - // create first category + // create category1 NodeRef category1 = filePlanService.createRecordCategory(filePlan, generate()); + // create disposition schedule for category1 - DispositionSchedule ds1 = utils.createDispositionSchedule(category1, DEFAULT_DISPOSITION_INSTRUCTIONS, - "ds1", true, false, false); + createDispositionSchedule(category1); - // create the properties for CUTOFF action - Map adCutOff = new HashMap(3); - adCutOff.put(RecordsManagementModel.PROP_DISPOSITION_ACTION_NAME, CutOffAction.NAME); - adCutOff.put(RecordsManagementModel.PROP_DISPOSITION_DESCRIPTION, "CutOffDesc"); - adCutOff.put(RecordsManagementModel.PROP_DISPOSITION_PERIOD, CommonRMTestUtils.PERIOD_IMMEDIATELY); - - dispositionService.addDispositionActionDefinition(ds1, adCutOff); - - // create the properties for TRANSFER action - Map adTransfer = new HashMap(3); - adTransfer.put(RecordsManagementModel.PROP_DISPOSITION_ACTION_NAME, TransferAction.NAME); - adTransfer.put(RecordsManagementModel.PROP_DISPOSITION_DESCRIPTION, "TransferDesc"); - List eventsList = new ArrayList(1); - eventsList.add("study_complete"); - adTransfer.put(RecordsManagementModel.PROP_DISPOSITION_EVENT, (Serializable)eventsList); - - dispositionService.addDispositionActionDefinition(ds1, adTransfer); - - // create the properties for DESTROY action - Map adDestroy = new HashMap(3); - adDestroy.put(RecordsManagementModel.PROP_DISPOSITION_ACTION_NAME, DestroyAction.NAME); - adDestroy.put(RecordsManagementModel.PROP_DISPOSITION_DESCRIPTION, "DestroyDesc"); - adDestroy.put(RecordsManagementModel.PROP_DISPOSITION_PERIOD, "week|1"); - - dispositionService.addDispositionActionDefinition(ds1, adDestroy); - - // create folder1 > record inside category1 - NodeRef firstFolder = recordFolderService.createRecordFolder(category1, GUID.generate()); - record = utils.createRecord(firstFolder, GUID.generate(), "title"); - - // create second category + // create category2 NodeRef category2 = filePlanService.createRecordCategory(filePlan, generate()); + // create disposition schedule for category2 - DispositionSchedule ds2 = utils.createDispositionSchedule(category2, DEFAULT_DISPOSITION_INSTRUCTIONS, - "ds2", true, false, true); - // add disposition actions - dispositionService.addDispositionActionDefinition(ds2, adCutOff); - dispositionService.addDispositionActionDefinition(ds2, adTransfer); - dispositionService.addDispositionActionDefinition(ds2, adDestroy); + createDispositionSchedule(category2); // create folder2 inside category2 - NodeRef folder2 = recordFolderService.createRecordFolder(category2, GUID.generate()); + folder2 = recordFolderService.createRecordFolder(category2, generate()); + // create folder1 inside category1 + NodeRef folder1 = recordFolderService.createRecordFolder(category1, generate()); + + // create record inside folder1 + record = utils.createRecord(folder1, generate(), generate()); + } + + @Override + public void when() + { // link the record to folder2 recordService.link(record, folder2); @@ -129,19 +101,37 @@ public class UpdateNextDispositionActionTest extends BaseRMTestCase } @Override - public void when() + public void then() throws Exception { - // complete event + // cut off rmActionService.executeRecordsManagementAction(record, CutOffAction.NAME, null); } - - @Override - public void then() - { - // ensure the record folder is cut off - assertTrue(dispositionService.isDisposableItemCutoff(record)); - } }); - } -} + + private void createDispositionSchedule(NodeRef category) + { + DispositionSchedule ds = utils.createDispositionSchedule(category, DEFAULT_DISPOSITION_INSTRUCTIONS, DEFAULT_DISPOSITION_DESCRIPTION, true, false, false); + + // create the properties for CUTOFF action and add it to the disposition action definition + Map cutOff = new HashMap(3); + cutOff.put(PROP_DISPOSITION_ACTION_NAME, CutOffAction.NAME); + cutOff.put(PROP_DISPOSITION_DESCRIPTION, generate()); + cutOff.put(PROP_DISPOSITION_PERIOD, PERIOD_IMMEDIATELY); + dispositionService.addDispositionActionDefinition(ds, cutOff); + + // create the properties for TRANSFER action and add it to the disposition action definition + Map transfer = new HashMap(3); + transfer.put(PROP_DISPOSITION_ACTION_NAME, TransferAction.NAME); + transfer.put(PROP_DISPOSITION_DESCRIPTION, generate()); + transfer.put(PROP_DISPOSITION_PERIOD, PERIOD_IMMEDIATELY); + dispositionService.addDispositionActionDefinition(ds, transfer); + + // create the properties for DESTROY action and add it to the disposition action definition + Map destroy = new HashMap(3); + destroy.put(PROP_DISPOSITION_ACTION_NAME, DestroyAction.NAME); + destroy.put(PROP_DISPOSITION_DESCRIPTION, generate()); + destroy.put(PROP_DISPOSITION_PERIOD, PERIOD_IMMEDIATELY); + dispositionService.addDispositionActionDefinition(ds, destroy); + } +} \ No newline at end of file