diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM1914Test.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM1914Test.java index 3961fabe33..d7e4256f04 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM1914Test.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM1914Test.java @@ -42,30 +42,29 @@ import org.apache.commons.lang.StringUtils; */ public class RM1914Test extends BaseRMTestCase { - + + //Fields required across transactions + NodeRef record1, transferFolder; + public void testRM1914() throws Exception { doBehaviourDrivenTest(new BehaviourDrivenTest() { - - NodeRef record1; - NodeRef record2; public void given() { - // 1. Any Category1, Category2 are created + + // create test holds NodeRef category1 = filePlanService.createRecordCategory(filePlan, GUID.generate()); NodeRef category2 = filePlanService.createRecordCategory(filePlan, GUID.generate()); - - - // 2. Disposition schedule is created for the Category1: - // - applied on Record + Map dsProps = new HashMap(3); dsProps.put(PROP_DISPOSITION_AUTHORITY, CommonRMTestUtils.DEFAULT_DISPOSITION_AUTHORITY); dsProps.put(PROP_DISPOSITION_INSTRUCTIONS, GUID.generate()); dsProps.put(PROP_RECORD_LEVEL_DISPOSITION, true); - - DispositionSchedule dispositionSchedule1 = dispositionService.createDispositionSchedule(category1, dsProps); + DispositionSchedule dispositionSchedule1 = dispositionService.createDispositionSchedule(category1, + dsProps); + NodeRef folder1 = recordFolderService.createRecordFolder(category1, GUID.generate()); // - add cutoff after "Related Record Transferred To Inactive Storage" completion event Map dispositionAction1 = new HashMap(3); @@ -73,67 +72,67 @@ public class RM1914Test extends BaseRMTestCase dispositionAction1.put(PROP_DISPOSITION_DESCRIPTION, GUID.generate()); List events = new ArrayList(1); - events.add("related_record_trasfered_inactive_storage"); - dispositionAction1.put(PROP_DISPOSITION_EVENT, (Serializable)events); + events.add("related_record_trasfered_inactive_storage"); + dispositionAction1.put(PROP_DISPOSITION_EVENT, (Serializable) events); dispositionService.addDispositionActionDefinition(dispositionSchedule1, dispositionAction1); - - + // 3. Folder1 > Record1 is created inside Category1 - NodeRef folder1 = recordFolderService.createRecordFolder(category1, GUID.generate()); record1 = recordService.createRecordFromContent(folder1, GUID.generate(), TYPE_CONTENT, null, null); - - - // 4. Disposition schedule is created for the Category2: + + // 4. Disposition schedule is created for the Category2: // applied on Record - DispositionSchedule dispositionSchedule2 = dispositionService.createDispositionSchedule(category2, dsProps); - + DispositionSchedule dispositionSchedule2 = dispositionService.createDispositionSchedule(category2, + dsProps); + // - cutoff immediatelly Map dispositionAction2_1 = new HashMap(3); dispositionAction2_1.put(PROP_DISPOSITION_ACTION_NAME, CutOffAction.NAME); dispositionAction2_1.put(PROP_DISPOSITION_DESCRIPTION, GUID.generate()); - dispositionAction2_1.put(PROP_DISPOSITION_PERIOD, CommonRMTestUtils.PERIOD_IMMEDIATELY); + dispositionAction2_1.put(PROP_DISPOSITION_PERIOD, CommonRMTestUtils.PERIOD_IMMEDIATELY); dispositionService.addDispositionActionDefinition(dispositionSchedule2, dispositionAction2_1); - + // - Transfer Immediatelly Map dispositionAction2_2 = new HashMap(4); dispositionAction2_2.put(PROP_DISPOSITION_ACTION_NAME, TransferAction.NAME); dispositionAction2_2.put(PROP_DISPOSITION_DESCRIPTION, GUID.generate()); dispositionAction2_2.put(PROP_DISPOSITION_PERIOD, CommonRMTestUtils.PERIOD_IMMEDIATELY); dispositionAction2_2.put(PROP_DISPOSITION_LOCATION, StringUtils.EMPTY); - + dispositionService.addDispositionActionDefinition(dispositionSchedule2, dispositionAction2_2); - // 5. Folder2 > Record2 is created inside Category2 NodeRef folder2 = recordFolderService.createRecordFolder(category2, GUID.generate()); - record2 = recordService.createRecordFromContent(folder2, GUID.generate(), TYPE_CONTENT, null, null); - + NodeRef record2 = recordService.createRecordFromContent(folder2, GUID.generate(), TYPE_CONTENT, null, + null); + // 6. Record1 and Record2 are completed utils.completeRecord(record1); utils.completeRecord(record2); - // 7. Create Cross-Reference link from Record1 to Record2 relationshipService.addRelationship(CUSTOM_REF_CROSSREFERENCE.getLocalName(), record1, record2); + // 8. Cut off and transfer Record2 + rmActionService.executeRecordsManagementAction(record2, CutOffAction.NAME, null); + + transferFolder = (NodeRef) rmActionService.executeRecordsManagementAction(record2, TransferAction.NAME) + .getValue(); - } public void when() { - // 8. Cut off and transfer Record2 - rmActionService.executeRecordsManagementAction(record2, CutOffAction.NAME, null); - NodeRef transferFolder = (NodeRef) rmActionService.executeRecordsManagementAction(record2, TransferAction.NAME).getValue(); + rmActionService.executeRecordsManagementAction(transferFolder, TransferCompleteAction.NAME); - + } public void then() { - // 9. Verify Record1 + // 9. Verify Record1 assertTrue(dispositionService.isNextDispositionActionEligible(record1)); - + } }); + } } diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/FreezeServiceImplTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/FreezeServiceImplTest.java index 6a149b8232..6e14666087 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/FreezeServiceImplTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/FreezeServiceImplTest.java @@ -34,19 +34,22 @@ import org.alfresco.service.cmr.repository.NodeRef; */ public class FreezeServiceImplTest extends BaseRMTestCase { + private List holdAssocs; + @Override - protected boolean isRecordTest() - { - return true; - } + protected boolean isRecordTest() + { + return true; + } /** * Test freeze service methods. - * + * * @deprecated as of 2.2 */ public void testFreezeService() throws Exception { + doTestInTransaction(new Test() { @Override @@ -63,19 +66,25 @@ public class FreezeServiceImplTest extends BaseRMTestCase // Freeze a record NodeRef hold101 = holdService.createHold(filePlan, "freezename 101", "FreezeReason", null); + assertNotNull(hold101); holdService.addToHold(hold101, recordOne); + //assertTrue(freezeService.hasFrozenChildren(rmFolder)); // Check the hold exists - List holdAssocs = holdService.getHolds(filePlan); + holdAssocs = holdService.getHolds(filePlan); assertNotNull(holdAssocs); assertEquals(1, holdAssocs.size()); - NodeRef holdNodeRef = holdAssocs.iterator().next(); + + NodeRef holdNodeRef = holdAssocs.iterator() + .next(); + assertEquals(holdNodeRef, hold101); assertTrue(holdService.isHold(holdNodeRef)); assertEquals("FreezeReason", holdService.getHoldReason(holdNodeRef)); List frozenNodes = holdService.getHeld(holdNodeRef); + assertNotNull(frozenNodes); assertEquals(1, frozenNodes.size()); @@ -98,6 +107,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase records.add(recordTwo); records.add(recordThree); NodeRef newHold = holdService.createHold(filePlan, "Hold 102", "Freeze a set of nodes", null); + holdService.addToHold(newHold, records); assertNotNull(newHold); assertTrue(holdService.isHold(newHold)); @@ -106,6 +116,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase holdAssocs = holdService.getHolds(filePlan); assertNotNull(holdAssocs); assertEquals(2, holdAssocs.size()); + for (NodeRef hold : holdAssocs) { String reason = holdService.getHoldReason(hold); @@ -129,7 +140,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase } // Check the nodes are frozen - final List testRecords = Arrays.asList(new NodeRef[]{recordOne, recordTwo, recordThree}); + final List testRecords = Arrays.asList(new NodeRef[] { recordOne, recordTwo, recordThree }); for (NodeRef nr : testRecords) { assertTrue(freezeService.isFrozen(nr)); @@ -139,7 +150,6 @@ public class FreezeServiceImplTest extends BaseRMTestCase // Unfreeze a node holdService.removeFromAllHolds(recordThree); - // Check the holds holdAssocs = holdService.getHolds(filePlan); assertNotNull(holdAssocs); @@ -174,9 +184,18 @@ public class FreezeServiceImplTest extends BaseRMTestCase assertNotNull(freezeService.getFreezeInitiator(recordTwo)); assertFalse(freezeService.isFrozen(recordThree)); assertFalse(freezeService.isFrozen(recordFour)); - + return null; + } + }); + //Splitting transaction to fix onCreateNodePolicy issue where there was a node not found exception + doTestInTransaction(new Test() + { + @Override + public Void run() throws Exception + { // Relinquish the first hold - holdNodeRef = holdAssocs.iterator().next(); + NodeRef holdNodeRef = holdAssocs.iterator() + .next(); holdService.deleteHold(holdNodeRef); // Check the existing hold @@ -185,15 +204,17 @@ public class FreezeServiceImplTest extends BaseRMTestCase assertEquals(1, holdAssocs.size()); // Relinquish the second hold - holdNodeRef = holdAssocs.iterator().next(); + holdNodeRef = holdAssocs.iterator() + .next(); holdService.removeFromAllHolds(holdService.getHeld(holdNodeRef)); // hold is not automatically removed holdAssocs = holdService.getHolds(filePlan); assertEquals(1, holdAssocs.size()); - + // delete hold holdService.deleteHold(holdNodeRef); + holdAssocs = holdService.getHolds(filePlan); assertEquals(0, holdAssocs.size()); @@ -212,25 +233,34 @@ public class FreezeServiceImplTest extends BaseRMTestCase nodes.add(recordTwo); nodes.add(recordThree); holdService.addToHold(hold, nodes); - //assertTrue(freezeService.hasFrozenChildren(rmFolder)); - + //assertTrue(freezeService.hasFrozenChildren(rmFolder)); // Check the hold holdAssocs = holdService.getHolds(filePlan); assertNotNull(holdAssocs); assertEquals(1, holdAssocs.size()); - + return null; + } + }); + //Splitting transaction to fix onCreateNodePolicy issue where there was a node not found exception + doTestInTransaction(new Test() + { + @Override + public Void run() throws Exception + { // Relinquish the first hold - holdService.deleteHold(holdAssocs.iterator().next()); + holdService.deleteHold(holdAssocs.iterator() + .next()); // Check the nodes are unfrozen assertFalse(freezeService.isFrozen(recordOne)); assertFalse(freezeService.isFrozen(recordTwo)); assertFalse(freezeService.isFrozen(recordThree)); assertFalse(freezeService.isFrozen(recordFour)); - // assertFalse(freezeService.hasFrozenChildren(rmFolder)); + // assertFalse(freezeService.hasFrozenChildren(rmFolder)); return null; } }); } + }