RM-6851 Fix declare record into hold - add unit test

This commit is contained in:
Sara Aspery
2019-05-23 12:32:01 +01:00
parent 4f84727da0
commit 16ef2130a8

View File

@@ -76,6 +76,7 @@ public class RecordServiceImplUnitTest extends BaseUnitTest
private NodeRef nonStandardFilePlan; private NodeRef nonStandardFilePlan;
private NodeRef dmNodeRef; private NodeRef dmNodeRef;
private NodeRef unfiledRecordContainer; private NodeRef unfiledRecordContainer;
private NodeRef frozenRecordFolder;
private ChildAssociationRef parentAssoc; private ChildAssociationRef parentAssoc;
private static QName TYPE_MY_FILE_PLAN = generateQName(); private static QName TYPE_MY_FILE_PLAN = generateQName();
@@ -94,6 +95,7 @@ public class RecordServiceImplUnitTest extends BaseUnitTest
nonStandardFilePlan = generateNodeRef(TYPE_MY_FILE_PLAN); nonStandardFilePlan = generateNodeRef(TYPE_MY_FILE_PLAN);
dmNodeRef = generateNodeRef(TYPE_CONTENT); dmNodeRef = generateNodeRef(TYPE_CONTENT);
unfiledRecordContainer = generateNodeRef(TYPE_UNFILED_RECORD_CONTAINER); unfiledRecordContainer = generateNodeRef(TYPE_UNFILED_RECORD_CONTAINER);
frozenRecordFolder = generateNodeRef(TYPE_RECORD_FOLDER);
parentAssoc = mock(ChildAssociationRef.class); parentAssoc = mock(ChildAssociationRef.class);
// set-up node service // set-up node service
@@ -583,6 +585,20 @@ public class RecordServiceImplUnitTest extends BaseUnitTest
recordService.createRecord(filePlan, dmNodeRef, recordFolder); recordService.createRecord(filePlan, dmNodeRef, recordFolder);
} }
/**
* Given a file that is not yet a record
* When I create the record specifying a folder which is in a hold
* Then an exception is thrown
*/
@Test(expected=AccessDeniedException.class)
public void createRecordIntoRecordFolderInHold()
{
mocksForRecordCreation();
// create the record
recordService.createRecord(filePlan, dmNodeRef, frozenRecordFolder);
}
/* Helper method to set up the mocks for record creation */ /* Helper method to set up the mocks for record creation */
private void mocksForRecordCreation() private void mocksForRecordCreation()
{ {
@@ -590,10 +606,12 @@ public class RecordServiceImplUnitTest extends BaseUnitTest
.thenReturn(parentAssoc); .thenReturn(parentAssoc);
when(parentAssoc.getQName()).thenReturn(generateQName()); when(parentAssoc.getQName()).thenReturn(generateQName());
// mocks for sanity checks on node and fileplan // mocks for sanity checks on node, folder and fileplan
when(mockedExtendedPermissionService.hasPermission(dmNodeRef, PermissionService.WRITE)).thenReturn(AccessStatus.ALLOWED); when(mockedExtendedPermissionService.hasPermission(dmNodeRef, PermissionService.WRITE)).thenReturn(AccessStatus.ALLOWED);
when(mockedDictionaryService.isSubClass(mockedNodeService.getType(dmNodeRef), ContentModel.TYPE_CONTENT)).thenReturn(true); when(mockedDictionaryService.isSubClass(mockedNodeService.getType(dmNodeRef), ContentModel.TYPE_CONTENT)).thenReturn(true);
when(mockedFilePlanService.isFilePlan(nonStandardFilePlan)).thenReturn(true); when(mockedFilePlanService.isFilePlan(nonStandardFilePlan)).thenReturn(true);
when(mockedFreezeService.isFrozen(recordFolder)).thenReturn(false);
when(mockedFreezeService.isFrozen(frozenRecordFolder)).thenReturn(true);
// mocks for policies // mocks for policies
doNothing().when(recordService).invokeBeforeRecordDeclaration(dmNodeRef); doNothing().when(recordService).invokeBeforeRecordDeclaration(dmNodeRef);