From 105d43659e45bee21469378003ea1597f0059db3 Mon Sep 17 00:00:00 2001 From: Ross Gale Date: Wed, 6 Sep 2017 15:04:37 +0100 Subject: [PATCH] RM-5612 Changing versions and fixing failing tests --- rm-community/pom.xml | 4 +- .../test/integration/hold/DeleteHoldTest.java | 73 +++++++++++-------- .../test/integration/issue/RM1914Test.java | 57 +++++++-------- .../test/integration/issue/RM4804Test.java | 27 ++++--- .../legacy/service/FreezeServiceImplTest.java | 63 +++++++++++----- 5 files changed, 132 insertions(+), 92 deletions(-) diff --git a/rm-community/pom.xml b/rm-community/pom.xml index 3e968cbb1d..8e9816ba62 100644 --- a/rm-community/pom.xml +++ b/rm-community/pom.xml @@ -43,7 +43,7 @@ - 5.2.f - 5.2.e + 5.2.g + 5.2.f diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/DeleteHoldTest.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/DeleteHoldTest.java index 01ee388041..6117658a96 100644 --- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/DeleteHoldTest.java +++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/DeleteHoldTest.java @@ -91,53 +91,68 @@ public class DeleteHoldTest extends BaseRMTestCase public void testDeleteHoldBehaviourForRecordFolder() { + NodeRef hold1 = doTestInTransaction(new Test() + { + @Override + public NodeRef run() throws Exception + { + // create test holds + return createAndCheckHold(); + } + }); + //Splitting transaction to fix onCreateNodePolicy issue where there was a node not found exception doTestInTransaction(new Test() { - @Override - public Void run() throws Exception - { - // create test holds - NodeRef hold1 = createAndCheckHold(); + @Override + public Void run() throws Exception + { + // add the record folder to hold1 + holdService.addToHold(hold1, rmFolder); - // add the record folder to hold1 - holdService.addToHold(hold1, rmFolder); + // assert that the folder and records are frozen + assertTrue(freezeService.isFrozen(rmFolder)); + assertTrue(freezeService.isFrozen(recordOne)); + assertTrue(freezeService.isFrozen(recordDeclaredOne)); - // assert that the folder and records are frozen - assertTrue(freezeService.isFrozen(rmFolder)); - assertTrue(freezeService.isFrozen(recordOne)); - assertTrue(freezeService.isFrozen(recordDeclaredOne)); + // check the contents of the hold + List frozenNodes = holdService.getHeld(hold1); + assertNotNull(frozenNodes); + assertEquals(1, frozenNodes.size()); + assertEquals(rmFolder, frozenNodes.get(0)); - // check the contents of the hold - List frozenNodes = holdService.getHeld(hold1); - assertNotNull(frozenNodes); - assertEquals(1, frozenNodes.size()); - assertEquals(rmFolder, frozenNodes.get(0)); + // delete the hold + holdService.deleteHold(hold1); - // delete the hold - holdService.deleteHold(hold1); + // assert that the folder and records no longer frozen + assertFalse(freezeService.isFrozen(rmFolder)); + assertFalse(freezeService.isFrozen(recordOne)); + assertFalse(freezeService.isFrozen(recordDeclaredOne)); - // assert that the folder and records no longer frozen - assertFalse(freezeService.isFrozen(rmFolder)); - assertFalse(freezeService.isFrozen(recordOne)); - assertFalse(freezeService.isFrozen(recordDeclaredOne)); + // confirm the hold has been deleted + assertNull(holdService.getHold(filePlan, "hold one")); - // confirm the hold has been deleted - assertNull(holdService.getHold(filePlan, "hold one")); - - return null; - } + return null; + } }); } public void testDeleteHoldBehaviourForMultipleHolds() { + List holds = doTestInTransaction(new Test>() + { + @Override + public List run() throws Exception + { + // create test holds + return createAndCheckHolds(); + } + }); + //Splitting transaction to fix onCreateNodePolicy issue where there was a node not found exception doTestInTransaction(new Test() { @Override public Void run() throws Exception { - // create test holds - List holds = createAndCheckHolds(); NodeRef hold1 = holds.get(0); NodeRef hold2 = holds.get(1); diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM1914Test.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM1914Test.java index 8650797d79..49cd661457 100644 --- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM1914Test.java +++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM1914Test.java @@ -43,6 +43,7 @@ import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; import org.alfresco.util.GUID; import org.apache.commons.lang.StringUtils; +import org.junit.Before; /** * @@ -51,30 +52,26 @@ 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 + public void given(){ + + // 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); + NodeRef folder1 = recordFolderService.createRecordFolder(category1, GUID.generate()); // - add cutoff after "Related Record Transferred To Inactive Storage" completion event Map dispositionAction1 = new HashMap(3); @@ -82,57 +79,55 @@ 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); - + // - 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); } diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM4804Test.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM4804Test.java index 0005ce388f..3bcf50c6da 100644 --- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM4804Test.java +++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM4804Test.java @@ -46,6 +46,8 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.springframework.extensions.webscripts.GUID; +import javax.xml.soap.Node; + /** * Integration test for RM-4804 * @@ -56,6 +58,10 @@ import org.springframework.extensions.webscripts.GUID; */ public class RM4804Test extends BaseRMTestCase { + //Fields required across transactions + NodeRef record; + NodeRef transferFolder; + /** * Given a category with disposition schedule applied on folder with Cut Of and Transfer, a record folder and a file PDF document * to folder, complete the record @@ -67,14 +73,10 @@ public class RM4804Test extends BaseRMTestCase { doBehaviourDrivenTest(new BehaviourDrivenTest() { - NodeRef recordCategory; - NodeRef recordFolder; - NodeRef record; - public void given() { // category is created - recordCategory = filePlanService.createRecordCategory(filePlan, GUID.generate()); + NodeRef recordCategory = filePlanService.createRecordCategory(filePlan, GUID.generate()); // create a disposition schedule for category, applied on folder Map dsProps = new HashMap(3); @@ -82,7 +84,8 @@ public class RM4804Test extends BaseRMTestCase dsProps.put(PROP_DISPOSITION_INSTRUCTIONS, GUID.generate()); dsProps.put(PROP_RECORD_LEVEL_DISPOSITION, false); - DispositionSchedule dispositionSchedule = dispositionService.createDispositionSchedule(recordCategory, dsProps); + DispositionSchedule dispositionSchedule = dispositionService.createDispositionSchedule(recordCategory, + dsProps); // cutoff immediately Map dispositionActionCutOff = new HashMap(3); @@ -102,8 +105,7 @@ public class RM4804Test extends BaseRMTestCase dispositionService.addDispositionActionDefinition(dispositionSchedule, dispositionActionTransfer); // add folder under category - recordFolder = recordFolderService.createRecordFolder(recordCategory, GUID.generate()); - + NodeRef recordFolder = recordFolderService.createRecordFolder(recordCategory, GUID.generate()); // add record of type PDF under folder Map props = new HashMap(1); props.put(ContentModel.PROP_TITLE, GUID.generate()); @@ -112,14 +114,15 @@ public class RM4804Test extends BaseRMTestCase // complete the record utils.completeRecord(record); + // cut off and transfer record + rmActionService.executeRecordsManagementAction(recordFolder, CutOffAction.NAME, null); + transferFolder = (NodeRef) rmActionService.executeRecordsManagementAction(recordFolder, + TransferAction.NAME) + .getValue(); } public void when() { - // cut off and transfer record - rmActionService.executeRecordsManagementAction(recordFolder, CutOffAction.NAME, null); - NodeRef transferFolder = (NodeRef) rmActionService.executeRecordsManagementAction(recordFolder, TransferAction.NAME) - .getValue(); rmActionService.executeRecordsManagementAction(transferFolder, TransferCompleteAction.NAME); } diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/FreezeServiceImplTest.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/FreezeServiceImplTest.java index 514d52fe97..65d5f51fad 100644 --- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/FreezeServiceImplTest.java +++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/FreezeServiceImplTest.java @@ -43,7 +43,9 @@ import org.alfresco.service.cmr.repository.NodeRef; */ public class FreezeServiceImplTest extends BaseRMTestCase { - @Override + private List holdAssocs; + + @Override protected boolean isRecordTest() { return true; @@ -56,7 +58,9 @@ public class FreezeServiceImplTest extends BaseRMTestCase */ public void testFreezeService() throws Exception { - doTestInTransaction(new Test() + + + doTestInTransaction(new Test() { @Override public Void run() throws Exception @@ -71,20 +75,26 @@ public class FreezeServiceImplTest extends BaseRMTestCase assertTrue(filePlanService.isFilePlanComponent(recordFour)); // Freeze a record - NodeRef hold101 = holdService.createHold(filePlan, "freezename 101", "FreezeReason", null); - assertNotNull(hold101); - holdService.addToHold(hold101, recordOne); - //assertTrue(freezeService.hasFrozenChildren(rmFolder)); + NodeRef hold101 = holdService.createHold(filePlan, "freezename 101", "FreezeReason", null); + + assertNotNull(hold101); + holdService.addToHold(hold101, recordOne); + + //assertTrue(freezeService.hasFrozenChildren(rmFolder)); + + // Check the hold exists + holdAssocs = holdService.getHolds(filePlan); + assertNotNull(holdAssocs); + assertEquals(1, holdAssocs.size()); + + NodeRef holdNodeRef = holdAssocs.iterator().next(); + - // Check the hold exists - List holdAssocs = holdService.getHolds(filePlan); - assertNotNull(holdAssocs); - assertEquals(1, holdAssocs.size()); - NodeRef holdNodeRef = holdAssocs.iterator().next(); assertEquals(holdNodeRef, hold101); assertTrue(holdService.isHold(holdNodeRef)); assertEquals("FreezeReason", holdService.getHoldReason(holdNodeRef)); - List frozenNodes = holdService.getHeld(holdNodeRef); + List frozenNodes = holdService.getHeld(holdNodeRef); + assertNotNull(frozenNodes); assertEquals(1, frozenNodes.size()); @@ -102,11 +112,12 @@ public class FreezeServiceImplTest extends BaseRMTestCase assertEquals("NewFreezeReason", holdService.getHoldReason(holdNodeRef)); // Freeze a number of records - List records = new ArrayList(); + List records = new ArrayList(); records.add(recordOne); 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)); @@ -115,6 +126,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); @@ -148,7 +160,6 @@ public class FreezeServiceImplTest extends BaseRMTestCase // Unfreeze a node holdService.removeFromAllHolds(recordThree); - // Check the holds holdAssocs = holdService.getHolds(filePlan); assertNotNull(holdAssocs); @@ -183,9 +194,17 @@ 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 @@ -203,6 +222,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase // delete hold holdService.deleteHold(holdNodeRef); + holdAssocs = holdService.getHolds(filePlan); assertEquals(0, holdAssocs.size()); @@ -222,12 +242,19 @@ public class FreezeServiceImplTest extends BaseRMTestCase nodes.add(recordThree); holdService.addToHold(hold, nodes); //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());