mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
RM-1463 (Item the user has read only permissions for can be added to hold in from Records Search results)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@72191 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -20,6 +20,8 @@ package org.alfresco.module.org_alfresco_module_rm.test.service;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
|
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
|
|
||||||
@@ -30,13 +32,19 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
|||||||
* @since 2.2
|
* @since 2.2
|
||||||
*/
|
*/
|
||||||
public class HoldServiceImplTest extends BaseRMTestCase
|
public class HoldServiceImplTest extends BaseRMTestCase
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
protected boolean isRecordTest()
|
protected boolean isRecordTest()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean isUserTest()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public void testDeleteHoldBehaviourForRecordFolder()
|
public void testDeleteHoldBehaviourForRecordFolder()
|
||||||
{
|
{
|
||||||
doTestInTransaction(new Test<Void>()
|
doTestInTransaction(new Test<Void>()
|
||||||
@@ -47,37 +55,37 @@ public class HoldServiceImplTest extends BaseRMTestCase
|
|||||||
// create test holds
|
// create test holds
|
||||||
NodeRef hold1 = holdService.createHold(filePlan, "hold one", "I have my reasons", "but I'll not describe them here!");
|
NodeRef hold1 = holdService.createHold(filePlan, "hold one", "I have my reasons", "but I'll not describe them here!");
|
||||||
assertNotNull(hold1);
|
assertNotNull(hold1);
|
||||||
|
|
||||||
// add the record folder to hold1
|
// add the record folder to hold1
|
||||||
holdService.addToHold(hold1, rmFolder);
|
holdService.addToHold(hold1, rmFolder);
|
||||||
|
|
||||||
// assert that the folder and records are frozen
|
// assert that the folder and records are frozen
|
||||||
assertTrue(freezeService.isFrozen(rmFolder));
|
assertTrue(freezeService.isFrozen(rmFolder));
|
||||||
assertTrue(freezeService.isFrozen(recordOne));
|
assertTrue(freezeService.isFrozen(recordOne));
|
||||||
assertTrue(freezeService.isFrozen(recordDeclaredOne));
|
assertTrue(freezeService.isFrozen(recordDeclaredOne));
|
||||||
|
|
||||||
// check the contents of the hold
|
// check the contents of the hold
|
||||||
List<NodeRef> frozenNodes = holdService.getHeld(hold1);
|
List<NodeRef> frozenNodes = holdService.getHeld(hold1);
|
||||||
assertNotNull(frozenNodes);
|
assertNotNull(frozenNodes);
|
||||||
assertEquals(1, frozenNodes.size());
|
assertEquals(1, frozenNodes.size());
|
||||||
assertEquals(rmFolder, frozenNodes.get(0));
|
assertEquals(rmFolder, frozenNodes.get(0));
|
||||||
|
|
||||||
// delete the hold
|
// delete the hold
|
||||||
holdService.deleteHold(hold1);
|
holdService.deleteHold(hold1);
|
||||||
|
|
||||||
// assert that the folder and records no longer frozen
|
// assert that the folder and records no longer frozen
|
||||||
assertFalse(freezeService.isFrozen(rmFolder));
|
assertFalse(freezeService.isFrozen(rmFolder));
|
||||||
assertFalse(freezeService.isFrozen(recordOne));
|
assertFalse(freezeService.isFrozen(recordOne));
|
||||||
assertFalse(freezeService.isFrozen(recordDeclaredOne));
|
assertFalse(freezeService.isFrozen(recordDeclaredOne));
|
||||||
|
|
||||||
// confirm the hold has been deleted
|
// confirm the hold has been deleted
|
||||||
assertNull(holdService.getHold(filePlan, "hold one"));
|
assertNull(holdService.getHold(filePlan, "hold one"));
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testDeleteHoldBehaviourForMultipleHolds()
|
public void testDeleteHoldBehaviourForMultipleHolds()
|
||||||
{
|
{
|
||||||
doTestInTransaction(new Test<Void>()
|
doTestInTransaction(new Test<Void>()
|
||||||
@@ -90,53 +98,87 @@ public class HoldServiceImplTest extends BaseRMTestCase
|
|||||||
assertNotNull(hold1);
|
assertNotNull(hold1);
|
||||||
NodeRef hold2 = holdService.createHold(filePlan, "hold two", "secrets are everything", "no then! that's just not on!");
|
NodeRef hold2 = holdService.createHold(filePlan, "hold two", "secrets are everything", "no then! that's just not on!");
|
||||||
assertNotNull(hold2);
|
assertNotNull(hold2);
|
||||||
|
|
||||||
// add the record folder to hold1
|
// add the record folder to hold1
|
||||||
holdService.addToHold(hold1, rmFolder);
|
holdService.addToHold(hold1, rmFolder);
|
||||||
|
|
||||||
// assert that the folder and records are frozen
|
// assert that the folder and records are frozen
|
||||||
assertTrue(freezeService.isFrozen(rmFolder));
|
assertTrue(freezeService.isFrozen(rmFolder));
|
||||||
assertTrue(freezeService.isFrozen(recordOne));
|
assertTrue(freezeService.isFrozen(recordOne));
|
||||||
assertTrue(freezeService.isFrozen(recordDeclaredOne));
|
assertTrue(freezeService.isFrozen(recordDeclaredOne));
|
||||||
|
|
||||||
// check the contents of the hold
|
// check the contents of the hold
|
||||||
List<NodeRef> frozenNodes = holdService.getHeld(hold1);
|
List<NodeRef> frozenNodes = holdService.getHeld(hold1);
|
||||||
assertNotNull(frozenNodes);
|
assertNotNull(frozenNodes);
|
||||||
assertEquals(1, frozenNodes.size());
|
assertEquals(1, frozenNodes.size());
|
||||||
assertEquals(rmFolder, frozenNodes.get(0));
|
assertEquals(rmFolder, frozenNodes.get(0));
|
||||||
|
|
||||||
holdService.addToHold(hold2, recordOne);
|
holdService.addToHold(hold2, recordOne);
|
||||||
|
|
||||||
// assert that the folder and records are frozen
|
// assert that the folder and records are frozen
|
||||||
assertTrue(freezeService.isFrozen(rmFolder));
|
assertTrue(freezeService.isFrozen(rmFolder));
|
||||||
assertTrue(freezeService.isFrozen(recordOne));
|
assertTrue(freezeService.isFrozen(recordOne));
|
||||||
assertTrue(freezeService.isFrozen(recordDeclaredOne));
|
assertTrue(freezeService.isFrozen(recordDeclaredOne));
|
||||||
|
|
||||||
// delete the hold
|
// delete the hold
|
||||||
holdService.deleteHold(hold1);
|
holdService.deleteHold(hold1);
|
||||||
|
|
||||||
// assert that the folder and records no longer frozen
|
// assert that the folder and records no longer frozen
|
||||||
assertFalse(freezeService.isFrozen(rmFolder));
|
assertFalse(freezeService.isFrozen(rmFolder));
|
||||||
assertTrue(freezeService.isFrozen(recordOne));
|
assertTrue(freezeService.isFrozen(recordOne));
|
||||||
assertFalse(freezeService.isFrozen(recordDeclaredOne));
|
assertFalse(freezeService.isFrozen(recordDeclaredOne));
|
||||||
|
|
||||||
// confirm the hold has been deleted
|
// confirm the hold has been deleted
|
||||||
assertNull(holdService.getHold(filePlan, "hold one"));
|
assertNull(holdService.getHold(filePlan, "hold one"));
|
||||||
|
|
||||||
// delete the hold
|
// delete the hold
|
||||||
holdService.deleteHold(hold2);
|
holdService.deleteHold(hold2);
|
||||||
|
|
||||||
// assert that the folder and records no longer frozen
|
// assert that the folder and records no longer frozen
|
||||||
assertFalse(freezeService.isFrozen(rmFolder));
|
assertFalse(freezeService.isFrozen(rmFolder));
|
||||||
assertFalse(freezeService.isFrozen(recordOne));
|
assertFalse(freezeService.isFrozen(recordOne));
|
||||||
assertFalse(freezeService.isFrozen(recordDeclaredOne));
|
assertFalse(freezeService.isFrozen(recordDeclaredOne));
|
||||||
|
|
||||||
// confirm the hold has been deleted
|
// confirm the hold has been deleted
|
||||||
assertNull(holdService.getHold(filePlan, "hold two"));
|
assertNull(holdService.getHold(filePlan, "hold two"));
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testAddRecordFolderOrRecordToHoldWithoutFilingPermission()
|
||||||
|
{
|
||||||
|
// Create hold
|
||||||
|
final NodeRef hold = holdService.createHold(filePlan, "hold one", "I have my reasons", "but I'll not describe them here!");
|
||||||
|
assertNotNull(hold);
|
||||||
|
|
||||||
|
doTestInTransaction(new Test<Void>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Void run() throws Exception
|
||||||
|
{
|
||||||
|
// Add the user to the RM Manager role
|
||||||
|
filePlanRoleService.assignRoleToAuthority(filePlan, ROLE_NAME_RECORDS_MANAGER, userName);
|
||||||
|
|
||||||
|
// Give the user filing permissions on the hold
|
||||||
|
permissionService.setPermission(hold, userName, RMPermissionModel.FILING, true);
|
||||||
|
|
||||||
|
// Give the user only read permissions on the record folder
|
||||||
|
permissionService.setPermission(rmFolder, userName, RMPermissionModel.READ_RECORDS, true);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}, "admin");
|
||||||
|
|
||||||
|
doTestInTransaction(new FailureTest(AlfrescoRuntimeException.class)
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run() throws Exception
|
||||||
|
{
|
||||||
|
holdService.addToHold(hold, rmFolder);
|
||||||
|
}
|
||||||
|
}, userName);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user