mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merge branch 'feature/RM-4311_NPEWhenUsingAllowedOperationsForUserWithoutPermission' into 'master'
Feature/rm 4311 npe when using allowed operations for user without permission See merge request !594
This commit is contained in:
@@ -128,7 +128,7 @@ public class RMNodesImpl extends NodesImpl implements RMNodes
|
||||
}
|
||||
|
||||
//TODO to remove this part of code after isSpecialNode will be made protected on core, will not need this anymore since the right allowed operations will be returned from core(REPO-1459).
|
||||
if (includeParam.contains(PARAM_INCLUDE_ALLOWABLEOPERATIONS))
|
||||
if (includeParam.contains(PARAM_INCLUDE_ALLOWABLEOPERATIONS) && originalNode.getAllowableOperations() != null)
|
||||
{
|
||||
List<String> allowableOperations = originalNode.getAllowableOperations();
|
||||
List<String> modifiedAllowableOperations = new ArrayList<>();
|
||||
@@ -256,7 +256,7 @@ public class RMNodesImpl extends NodesImpl implements RMNodes
|
||||
|
||||
return super.validateNode(nodeId);
|
||||
}
|
||||
|
||||
|
||||
private RMNodeType getType(QName typeQName, NodeRef nodeRef)
|
||||
{
|
||||
// quick check for common types
|
||||
|
@@ -30,6 +30,7 @@ package org.alfresco.rm.rest.api.impl;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.mockito.Matchers.any;
|
||||
@@ -128,12 +129,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
when(mockedDictionaryService.isSubClass(mockedType, ContentModel.TYPE_CMOBJECT)).thenReturn(true);
|
||||
when(mockedDictionaryService.isSubClass(mockedType, ContentModel.TYPE_SYSTEM_FOLDER)).thenReturn(false);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
when(mockedFilePlanService.isFilePlanComponent(nodeRef)).thenReturn(true);
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
@@ -157,20 +153,13 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
when(mockedDictionaryService.isSubClass(mockedType, ContentModel.TYPE_SYSTEM_FOLDER)).thenReturn(false);
|
||||
when(mockedDictionaryService.isSubClass(mockedType, ContentModel.TYPE_FOLDER)).thenReturn(true);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
when(mockedFilePlanService.isFilePlanComponent(nodeRef)).thenReturn(true);
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
includeParamList.add(RMNodes.PARAM_INCLUDE_ALLOWABLEOPERATIONS);
|
||||
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.WRITE)).thenReturn(AccessStatus.ALLOWED);
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.DELETE)).thenReturn(AccessStatus.ALLOWED);
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.ADD_CHILDREN)).thenReturn(AccessStatus.ALLOWED);
|
||||
setPermissions(nodeRef, AccessStatus.ALLOWED);
|
||||
|
||||
when(mockedFilePlanService.getFilePlanBySiteId(RM_SITE_ID)).thenReturn(nodeRef);
|
||||
Node folderOrDocument = rmNodesImpl.getFolderOrDocument(nodeRef, null, null, includeParamList, null);
|
||||
@@ -187,6 +176,37 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
assertFalse("Delete operation should note be available for FilePlan.", allowableOperations.contains(RMNodes.OP_DELETE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetFilePlanAllowableOperationsWithoutPermissions() throws Exception
|
||||
{
|
||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
QName mockedType = AlfMock.generateQName();
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(mockedType);
|
||||
when(mockedDictionaryService.isSubClass(mockedType, ContentModel.TYPE_CMOBJECT)).thenReturn(true);
|
||||
when(mockedDictionaryService.isSubClass(mockedType, ContentModel.TYPE_SYSTEM_FOLDER)).thenReturn(false);
|
||||
when(mockedDictionaryService.isSubClass(mockedType, ContentModel.TYPE_FOLDER)).thenReturn(true);
|
||||
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
when(mockedFilePlanService.isFilePlanComponent(nodeRef)).thenReturn(true);
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
includeParamList.add(RMNodes.PARAM_INCLUDE_ALLOWABLEOPERATIONS);
|
||||
|
||||
setPermissions(nodeRef, AccessStatus.DENIED);
|
||||
|
||||
when(mockedFilePlanService.getFilePlanBySiteId(RM_SITE_ID)).thenReturn(nodeRef);
|
||||
Node folderOrDocument = rmNodesImpl.getFolderOrDocument(nodeRef, null, null, includeParamList, null);
|
||||
assertNotNull(folderOrDocument);
|
||||
assertTrue(FileplanComponentNode.class.isInstance(folderOrDocument));
|
||||
|
||||
FileplanComponentNode resultNode = (FileplanComponentNode) folderOrDocument;
|
||||
assertEquals(false, resultNode.getIsRecordFolder());
|
||||
assertEquals(false, resultNode.getIsFile());
|
||||
assertEquals(false, resultNode.getIsCategory());
|
||||
List<String> allowableOperations = resultNode.getAllowableOperations();
|
||||
assertNull(allowableOperations);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTransferContainerAllowableOperations() throws Exception
|
||||
{
|
||||
@@ -194,36 +214,19 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(RecordsManagementModel.TYPE_RECORD_CATEGORY);
|
||||
when(mockedDictionaryService.isSubClass(RecordsManagementModel.TYPE_RECORD_CATEGORY, ContentModel.TYPE_FOLDER)).thenReturn(true);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
includeParamList.add(RMNodes.PARAM_INCLUDE_ALLOWABLEOPERATIONS);
|
||||
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.WRITE)).thenReturn(AccessStatus.ALLOWED);
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.DELETE)).thenReturn(AccessStatus.ALLOWED);
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.ADD_CHILDREN)).thenReturn(AccessStatus.ALLOWED);
|
||||
setPermissions(nodeRef, AccessStatus.ALLOWED);
|
||||
|
||||
NodeRef filePlanNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedFilePlanService.getFilePlanBySiteId(RM_SITE_ID)).thenReturn(filePlanNodeRef);
|
||||
when(mockedFilePlanService.getTransferContainer(filePlanNodeRef)).thenReturn(nodeRef);
|
||||
|
||||
Node folderOrDocument = rmNodesImpl.getFolderOrDocument(nodeRef, null, null, includeParamList, null);
|
||||
assertNotNull(folderOrDocument);
|
||||
assertTrue(RecordCategoryNode.class.isInstance(folderOrDocument));
|
||||
|
||||
RecordCategoryNode resultNode = (RecordCategoryNode) folderOrDocument;
|
||||
assertEquals(false, resultNode.getIsRecordFolder());
|
||||
assertEquals(false, resultNode.getIsFile());
|
||||
assertEquals(true, resultNode.getIsCategory());
|
||||
List<String> allowableOperations = resultNode.getAllowableOperations();
|
||||
assertTrue("Create operation should be available for Transfers container.", allowableOperations.contains(RMNodes.OP_CREATE));
|
||||
assertTrue("Update operation should be available for Transfers container.", allowableOperations.contains(RMNodes.OP_UPDATE));
|
||||
assertFalse("Delete operation should note be available for Transfers container.", allowableOperations.contains(RMNodes.OP_DELETE));
|
||||
checkSpecialContainersAllowedOperations(folderOrDocument);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -233,19 +236,12 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(RecordsManagementModel.TYPE_RECORD_CATEGORY);
|
||||
when(mockedDictionaryService.isSubClass(RecordsManagementModel.TYPE_RECORD_CATEGORY, ContentModel.TYPE_FOLDER)).thenReturn(true);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
includeParamList.add(RMNodes.PARAM_INCLUDE_ALLOWABLEOPERATIONS);
|
||||
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.WRITE)).thenReturn(AccessStatus.ALLOWED);
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.DELETE)).thenReturn(AccessStatus.ALLOWED);
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.ADD_CHILDREN)).thenReturn(AccessStatus.ALLOWED);
|
||||
setPermissions(nodeRef, AccessStatus.ALLOWED);
|
||||
|
||||
NodeRef filePlanNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedFilePlanService.getFilePlanBySiteId(RM_SITE_ID)).thenReturn(filePlanNodeRef);
|
||||
@@ -256,17 +252,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
when(mockedFilePlanService.getHoldContainer(filePlanNodeRef)).thenReturn(nodeRef);
|
||||
|
||||
Node folderOrDocument = rmNodesImpl.getFolderOrDocument(nodeRef, null, null, includeParamList, null);
|
||||
assertNotNull(folderOrDocument);
|
||||
assertTrue(RecordCategoryNode.class.isInstance(folderOrDocument));
|
||||
|
||||
RecordCategoryNode resultNode = (RecordCategoryNode) folderOrDocument;
|
||||
assertEquals(false, resultNode.getIsRecordFolder());
|
||||
assertEquals(false, resultNode.getIsFile());
|
||||
assertEquals(true, resultNode.getIsCategory());
|
||||
List<String> allowableOperations = resultNode.getAllowableOperations();
|
||||
assertTrue("Create operation should be available for Holds container.", allowableOperations.contains(RMNodes.OP_CREATE));
|
||||
assertTrue("Update operation should be available for Holds container.", allowableOperations.contains(RMNodes.OP_UPDATE));
|
||||
assertFalse("Delete operation should note be available for Holds container.", allowableOperations.contains(RMNodes.OP_DELETE));
|
||||
checkSpecialContainersAllowedOperations(folderOrDocument);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -276,19 +262,12 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(RecordsManagementModel.TYPE_RECORD_CATEGORY);
|
||||
when(mockedDictionaryService.isSubClass(RecordsManagementModel.TYPE_RECORD_CATEGORY, ContentModel.TYPE_FOLDER)).thenReturn(true);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
includeParamList.add(RMNodes.PARAM_INCLUDE_ALLOWABLEOPERATIONS);
|
||||
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.WRITE)).thenReturn(AccessStatus.ALLOWED);
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.DELETE)).thenReturn(AccessStatus.ALLOWED);
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.ADD_CHILDREN)).thenReturn(AccessStatus.ALLOWED);
|
||||
setPermissions(nodeRef, AccessStatus.ALLOWED);
|
||||
|
||||
NodeRef filePlanNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedFilePlanService.getFilePlanBySiteId(RM_SITE_ID)).thenReturn(filePlanNodeRef);
|
||||
@@ -302,17 +281,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
when(mockedFilePlanService.getUnfiledContainer(filePlanNodeRef)).thenReturn(nodeRef);
|
||||
|
||||
Node folderOrDocument = rmNodesImpl.getFolderOrDocument(nodeRef, null, null, includeParamList, null);
|
||||
assertNotNull(folderOrDocument);
|
||||
assertTrue(RecordCategoryNode.class.isInstance(folderOrDocument));
|
||||
|
||||
RecordCategoryNode resultNode = (RecordCategoryNode) folderOrDocument;
|
||||
assertEquals(false, resultNode.getIsRecordFolder());
|
||||
assertEquals(false, resultNode.getIsFile());
|
||||
assertEquals(true, resultNode.getIsCategory());
|
||||
List<String> allowableOperations = resultNode.getAllowableOperations();
|
||||
assertTrue("Create operation should be available for Unfiled Records container.", allowableOperations.contains(RMNodes.OP_CREATE));
|
||||
assertTrue("Update operation should be available for Unfiled Records container.", allowableOperations.contains(RMNodes.OP_UPDATE));
|
||||
assertFalse("Delete operation should note be available for Unfiled Records container.", allowableOperations.contains(RMNodes.OP_DELETE));
|
||||
checkSpecialContainersAllowedOperations(folderOrDocument);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -324,12 +293,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
when(mockedDictionaryService.isSubClass(mockedType, ContentModel.TYPE_CMOBJECT)).thenReturn(true);
|
||||
when(mockedDictionaryService.isSubClass(mockedType, ContentModel.TYPE_SYSTEM_FOLDER)).thenReturn(false);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
when(mockedFilePlanService.isFilePlanComponent(nodeRef)).thenReturn(false);
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
@@ -351,12 +315,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(RecordsManagementModel.TYPE_RECORD_CATEGORY);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
Node folderOrDocument = rmNodesImpl.getFolderOrDocument(nodeRef, null, null, includeParamList, null);
|
||||
@@ -375,12 +334,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(RecordsManagementModel.TYPE_RECORD_CATEGORY);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
includeParamList.add(RMNodes.PARAM_INCLUDE_HAS_RETENTION_SCHEDULE);
|
||||
@@ -417,12 +371,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(RecordsManagementModel.TYPE_RECORD_FOLDER);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
Node folderOrDocument = rmNodesImpl.getFolderOrDocument(nodeRef, null, null, includeParamList, null);
|
||||
@@ -441,12 +390,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(RecordsManagementModel.TYPE_RECORD_FOLDER);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
includeParamList.add(RMNodes.PARAM_INCLUDE_IS_CLOSED);
|
||||
@@ -482,12 +426,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(ContentModel.TYPE_CONTENT);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
Node folderOrDocument = rmNodesImpl.getFolderOrDocument(nodeRef, null, null, includeParamList, null);
|
||||
@@ -506,12 +445,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(ContentModel.TYPE_CONTENT);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
List<String> includeParamList = new ArrayList<String>();
|
||||
|
||||
@@ -684,12 +618,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
QName mockedType = AlfMock.generateQName();
|
||||
when(mockedNodeService.getType(nodeRef)).thenReturn(mockedType);
|
||||
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
setupCompanyHomeAndPrimaryParent(nodeRef);
|
||||
|
||||
rmNodesImpl.deleteNode(nodeRef.getId(), mockedParameters);
|
||||
verify(mockedFileFolderService, times(1)).delete(nodeRef);
|
||||
@@ -821,4 +750,36 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
||||
isRMSite = rmNodesImpl.isRMSite(parentNodeRef.getId());
|
||||
assertEquals("Should return true.", true, isRMSite);
|
||||
}
|
||||
|
||||
private void setupCompanyHomeAndPrimaryParent(NodeRef nodeRef)
|
||||
{
|
||||
NodeRef companyHomeNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
when(mockedRepositoryHelper.getCompanyHome()).thenReturn(companyHomeNodeRef);
|
||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||
ChildAssociationRef mockedChildAssoc = mock(ChildAssociationRef.class);
|
||||
when(mockedChildAssoc.getParentRef()).thenReturn(parentNodeRef);
|
||||
when(mockedNodeService.getPrimaryParent(nodeRef)).thenReturn(mockedChildAssoc);
|
||||
}
|
||||
|
||||
private void setPermissions(NodeRef nodeRef, AccessStatus permissionToSet)
|
||||
{
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.WRITE)).thenReturn(permissionToSet);
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.DELETE)).thenReturn(permissionToSet);
|
||||
when(mockedPermissionService.hasPermission(nodeRef, PermissionService.ADD_CHILDREN)).thenReturn(permissionToSet);
|
||||
}
|
||||
|
||||
private void checkSpecialContainersAllowedOperations(Node containerNode)
|
||||
{
|
||||
assertNotNull(containerNode);
|
||||
assertTrue(RecordCategoryNode.class.isInstance(containerNode));
|
||||
|
||||
RecordCategoryNode resultNode = (RecordCategoryNode) containerNode;
|
||||
assertEquals(false, resultNode.getIsRecordFolder());
|
||||
assertEquals(false, resultNode.getIsFile());
|
||||
assertEquals(true, resultNode.getIsCategory());
|
||||
List<String> allowableOperations = resultNode.getAllowableOperations();
|
||||
assertTrue("Create operation should be available for provided container.", allowableOperations.contains(RMNodes.OP_CREATE));
|
||||
assertTrue("Update operation should be available for provided container.", allowableOperations.contains(RMNodes.OP_UPDATE));
|
||||
assertFalse("Delete operation should note be available for provided container.", allowableOperations.contains(RMNodes.OP_DELETE));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user