mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-5931 Adding transaction fix for integration test
This commit is contained in:
@@ -43,29 +43,28 @@ import org.apache.commons.lang.StringUtils;
|
|||||||
public class RM1914Test extends BaseRMTestCase
|
public class RM1914Test extends BaseRMTestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
|
//Fields required across transactions
|
||||||
|
NodeRef record1, transferFolder;
|
||||||
|
|
||||||
public void testRM1914() throws Exception
|
public void testRM1914() throws Exception
|
||||||
{
|
{
|
||||||
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
||||||
{
|
{
|
||||||
|
|
||||||
NodeRef record1;
|
|
||||||
NodeRef record2;
|
|
||||||
|
|
||||||
public void given()
|
public void given()
|
||||||
{
|
{
|
||||||
// 1. Any Category1, Category2 are created
|
|
||||||
|
// create test holds
|
||||||
NodeRef category1 = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
NodeRef category1 = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
||||||
NodeRef category2 = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
NodeRef category2 = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
||||||
|
|
||||||
|
|
||||||
// 2. Disposition schedule is created for the Category1:
|
|
||||||
// - applied on Record
|
|
||||||
Map<QName, Serializable> dsProps = new HashMap<QName, Serializable>(3);
|
Map<QName, Serializable> dsProps = new HashMap<QName, Serializable>(3);
|
||||||
dsProps.put(PROP_DISPOSITION_AUTHORITY, CommonRMTestUtils.DEFAULT_DISPOSITION_AUTHORITY);
|
dsProps.put(PROP_DISPOSITION_AUTHORITY, CommonRMTestUtils.DEFAULT_DISPOSITION_AUTHORITY);
|
||||||
dsProps.put(PROP_DISPOSITION_INSTRUCTIONS, GUID.generate());
|
dsProps.put(PROP_DISPOSITION_INSTRUCTIONS, GUID.generate());
|
||||||
dsProps.put(PROP_RECORD_LEVEL_DISPOSITION, true);
|
dsProps.put(PROP_RECORD_LEVEL_DISPOSITION, true);
|
||||||
|
DispositionSchedule dispositionSchedule1 = dispositionService.createDispositionSchedule(category1,
|
||||||
DispositionSchedule dispositionSchedule1 = dispositionService.createDispositionSchedule(category1, dsProps);
|
dsProps);
|
||||||
|
NodeRef folder1 = recordFolderService.createRecordFolder(category1, GUID.generate());
|
||||||
|
|
||||||
// - add cutoff after "Related Record Transferred To Inactive Storage" completion event
|
// - add cutoff after "Related Record Transferred To Inactive Storage" completion event
|
||||||
Map<QName, Serializable> dispositionAction1 = new HashMap<QName, Serializable>(3);
|
Map<QName, Serializable> dispositionAction1 = new HashMap<QName, Serializable>(3);
|
||||||
@@ -78,15 +77,13 @@ public class RM1914Test extends BaseRMTestCase
|
|||||||
|
|
||||||
dispositionService.addDispositionActionDefinition(dispositionSchedule1, dispositionAction1);
|
dispositionService.addDispositionActionDefinition(dispositionSchedule1, dispositionAction1);
|
||||||
|
|
||||||
|
|
||||||
// 3. Folder1 > Record1 is created inside Category1
|
// 3. Folder1 > Record1 is created inside Category1
|
||||||
NodeRef folder1 = recordFolderService.createRecordFolder(category1, GUID.generate());
|
|
||||||
record1 = recordService.createRecordFromContent(folder1, GUID.generate(), TYPE_CONTENT, null, null);
|
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
|
// applied on Record
|
||||||
DispositionSchedule dispositionSchedule2 = dispositionService.createDispositionSchedule(category2, dsProps);
|
DispositionSchedule dispositionSchedule2 = dispositionService.createDispositionSchedule(category2,
|
||||||
|
dsProps);
|
||||||
|
|
||||||
// - cutoff immediatelly
|
// - cutoff immediatelly
|
||||||
Map<QName, Serializable> dispositionAction2_1 = new HashMap<QName, Serializable>(3);
|
Map<QName, Serializable> dispositionAction2_1 = new HashMap<QName, Serializable>(3);
|
||||||
@@ -104,26 +101,27 @@ public class RM1914Test extends BaseRMTestCase
|
|||||||
dispositionAction2_2.put(PROP_DISPOSITION_LOCATION, StringUtils.EMPTY);
|
dispositionAction2_2.put(PROP_DISPOSITION_LOCATION, StringUtils.EMPTY);
|
||||||
|
|
||||||
dispositionService.addDispositionActionDefinition(dispositionSchedule2, dispositionAction2_2);
|
dispositionService.addDispositionActionDefinition(dispositionSchedule2, dispositionAction2_2);
|
||||||
|
|
||||||
// 5. Folder2 > Record2 is created inside Category2
|
// 5. Folder2 > Record2 is created inside Category2
|
||||||
NodeRef folder2 = recordFolderService.createRecordFolder(category2, GUID.generate());
|
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
|
// 6. Record1 and Record2 are completed
|
||||||
utils.completeRecord(record1);
|
utils.completeRecord(record1);
|
||||||
utils.completeRecord(record2);
|
utils.completeRecord(record2);
|
||||||
|
|
||||||
// 7. Create Cross-Reference link from Record1 to Record2
|
// 7. Create Cross-Reference link from Record1 to Record2
|
||||||
relationshipService.addRelationship(CUSTOM_REF_CROSSREFERENCE.getLocalName(), record1, 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()
|
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);
|
rmActionService.executeRecordsManagementAction(transferFolder, TransferCompleteAction.NAME);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -135,5 +133,6 @@ public class RM1914Test extends BaseRMTestCase
|
|||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,6 +34,8 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
|||||||
*/
|
*/
|
||||||
public class FreezeServiceImplTest extends BaseRMTestCase
|
public class FreezeServiceImplTest extends BaseRMTestCase
|
||||||
{
|
{
|
||||||
|
private List<NodeRef> holdAssocs;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isRecordTest()
|
protected boolean isRecordTest()
|
||||||
{
|
{
|
||||||
@@ -47,6 +49,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
*/
|
*/
|
||||||
public void testFreezeService() throws Exception
|
public void testFreezeService() throws Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
doTestInTransaction(new Test<Void>()
|
doTestInTransaction(new Test<Void>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@@ -63,19 +66,25 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
|
|
||||||
// Freeze a record
|
// Freeze a record
|
||||||
NodeRef hold101 = holdService.createHold(filePlan, "freezename 101", "FreezeReason", null);
|
NodeRef hold101 = holdService.createHold(filePlan, "freezename 101", "FreezeReason", null);
|
||||||
|
|
||||||
assertNotNull(hold101);
|
assertNotNull(hold101);
|
||||||
holdService.addToHold(hold101, recordOne);
|
holdService.addToHold(hold101, recordOne);
|
||||||
|
|
||||||
//assertTrue(freezeService.hasFrozenChildren(rmFolder));
|
//assertTrue(freezeService.hasFrozenChildren(rmFolder));
|
||||||
|
|
||||||
// Check the hold exists
|
// Check the hold exists
|
||||||
List<NodeRef> holdAssocs = holdService.getHolds(filePlan);
|
holdAssocs = holdService.getHolds(filePlan);
|
||||||
assertNotNull(holdAssocs);
|
assertNotNull(holdAssocs);
|
||||||
assertEquals(1, holdAssocs.size());
|
assertEquals(1, holdAssocs.size());
|
||||||
NodeRef holdNodeRef = holdAssocs.iterator().next();
|
|
||||||
|
NodeRef holdNodeRef = holdAssocs.iterator()
|
||||||
|
.next();
|
||||||
|
|
||||||
assertEquals(holdNodeRef, hold101);
|
assertEquals(holdNodeRef, hold101);
|
||||||
assertTrue(holdService.isHold(holdNodeRef));
|
assertTrue(holdService.isHold(holdNodeRef));
|
||||||
assertEquals("FreezeReason", holdService.getHoldReason(holdNodeRef));
|
assertEquals("FreezeReason", holdService.getHoldReason(holdNodeRef));
|
||||||
List<NodeRef> frozenNodes = holdService.getHeld(holdNodeRef);
|
List<NodeRef> frozenNodes = holdService.getHeld(holdNodeRef);
|
||||||
|
|
||||||
assertNotNull(frozenNodes);
|
assertNotNull(frozenNodes);
|
||||||
assertEquals(1, frozenNodes.size());
|
assertEquals(1, frozenNodes.size());
|
||||||
|
|
||||||
@@ -98,6 +107,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
records.add(recordTwo);
|
records.add(recordTwo);
|
||||||
records.add(recordThree);
|
records.add(recordThree);
|
||||||
NodeRef newHold = holdService.createHold(filePlan, "Hold 102", "Freeze a set of nodes", null);
|
NodeRef newHold = holdService.createHold(filePlan, "Hold 102", "Freeze a set of nodes", null);
|
||||||
|
|
||||||
holdService.addToHold(newHold, records);
|
holdService.addToHold(newHold, records);
|
||||||
assertNotNull(newHold);
|
assertNotNull(newHold);
|
||||||
assertTrue(holdService.isHold(newHold));
|
assertTrue(holdService.isHold(newHold));
|
||||||
@@ -106,6 +116,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
holdAssocs = holdService.getHolds(filePlan);
|
holdAssocs = holdService.getHolds(filePlan);
|
||||||
assertNotNull(holdAssocs);
|
assertNotNull(holdAssocs);
|
||||||
assertEquals(2, holdAssocs.size());
|
assertEquals(2, holdAssocs.size());
|
||||||
|
|
||||||
for (NodeRef hold : holdAssocs)
|
for (NodeRef hold : holdAssocs)
|
||||||
{
|
{
|
||||||
String reason = holdService.getHoldReason(hold);
|
String reason = holdService.getHoldReason(hold);
|
||||||
@@ -139,7 +150,6 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
|
|
||||||
// Unfreeze a node
|
// Unfreeze a node
|
||||||
holdService.removeFromAllHolds(recordThree);
|
holdService.removeFromAllHolds(recordThree);
|
||||||
|
|
||||||
// Check the holds
|
// Check the holds
|
||||||
holdAssocs = holdService.getHolds(filePlan);
|
holdAssocs = holdService.getHolds(filePlan);
|
||||||
assertNotNull(holdAssocs);
|
assertNotNull(holdAssocs);
|
||||||
@@ -174,9 +184,18 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
assertNotNull(freezeService.getFreezeInitiator(recordTwo));
|
assertNotNull(freezeService.getFreezeInitiator(recordTwo));
|
||||||
assertFalse(freezeService.isFrozen(recordThree));
|
assertFalse(freezeService.isFrozen(recordThree));
|
||||||
assertFalse(freezeService.isFrozen(recordFour));
|
assertFalse(freezeService.isFrozen(recordFour));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//Splitting transaction to fix onCreateNodePolicy issue where there was a node not found exception
|
||||||
|
doTestInTransaction(new Test<Void>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Void run() throws Exception
|
||||||
|
{
|
||||||
// Relinquish the first hold
|
// Relinquish the first hold
|
||||||
holdNodeRef = holdAssocs.iterator().next();
|
NodeRef holdNodeRef = holdAssocs.iterator()
|
||||||
|
.next();
|
||||||
holdService.deleteHold(holdNodeRef);
|
holdService.deleteHold(holdNodeRef);
|
||||||
|
|
||||||
// Check the existing hold
|
// Check the existing hold
|
||||||
@@ -185,7 +204,8 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
assertEquals(1, holdAssocs.size());
|
assertEquals(1, holdAssocs.size());
|
||||||
|
|
||||||
// Relinquish the second hold
|
// Relinquish the second hold
|
||||||
holdNodeRef = holdAssocs.iterator().next();
|
holdNodeRef = holdAssocs.iterator()
|
||||||
|
.next();
|
||||||
holdService.removeFromAllHolds(holdService.getHeld(holdNodeRef));
|
holdService.removeFromAllHolds(holdService.getHeld(holdNodeRef));
|
||||||
|
|
||||||
// hold is not automatically removed
|
// hold is not automatically removed
|
||||||
@@ -194,6 +214,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
|
|
||||||
// delete hold
|
// delete hold
|
||||||
holdService.deleteHold(holdNodeRef);
|
holdService.deleteHold(holdNodeRef);
|
||||||
|
|
||||||
holdAssocs = holdService.getHolds(filePlan);
|
holdAssocs = holdService.getHolds(filePlan);
|
||||||
assertEquals(0, holdAssocs.size());
|
assertEquals(0, holdAssocs.size());
|
||||||
|
|
||||||
@@ -213,14 +234,22 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
nodes.add(recordThree);
|
nodes.add(recordThree);
|
||||||
holdService.addToHold(hold, nodes);
|
holdService.addToHold(hold, nodes);
|
||||||
//assertTrue(freezeService.hasFrozenChildren(rmFolder));
|
//assertTrue(freezeService.hasFrozenChildren(rmFolder));
|
||||||
|
|
||||||
// Check the hold
|
// Check the hold
|
||||||
holdAssocs = holdService.getHolds(filePlan);
|
holdAssocs = holdService.getHolds(filePlan);
|
||||||
assertNotNull(holdAssocs);
|
assertNotNull(holdAssocs);
|
||||||
assertEquals(1, holdAssocs.size());
|
assertEquals(1, holdAssocs.size());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//Splitting transaction to fix onCreateNodePolicy issue where there was a node not found exception
|
||||||
|
doTestInTransaction(new Test<Void>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Void run() throws Exception
|
||||||
|
{
|
||||||
// Relinquish the first hold
|
// Relinquish the first hold
|
||||||
holdService.deleteHold(holdAssocs.iterator().next());
|
holdService.deleteHold(holdAssocs.iterator()
|
||||||
|
.next());
|
||||||
|
|
||||||
// Check the nodes are unfrozen
|
// Check the nodes are unfrozen
|
||||||
assertFalse(freezeService.isFrozen(recordOne));
|
assertFalse(freezeService.isFrozen(recordOne));
|
||||||
@@ -233,4 +262,5 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user