Merge changes from feature/RM-6873_RemoveActiveContentFromHold

This commit is contained in:
cagache
2019-08-20 16:54:58 +03:00
2 changed files with 19 additions and 23 deletions

View File

@@ -28,16 +28,18 @@ package org.alfresco.module.org_alfresco_module_rm.test.integration.hold;
import static org.alfresco.repo.security.authentication.AuthenticationUtil.getAdminUserName;
import java.util.ArrayList;
import java.util.List;
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.repo.security.permissions.AccessDeniedException;
import org.alfresco.repo.site.SiteModel;
import org.alfresco.service.cmr.repository.NodeRef;
import org.springframework.extensions.webscripts.GUID;
/**
* Remove Active Content To Hold Integration Tests
* Remove active content from hold integration tests
*
* @author Ross Gale
* @since 3.2
@@ -114,8 +116,10 @@ public class RemoveActiveContentFromHoldTest extends BaseRMTestCase
{
hold = holdService.createHold(filePlan, GUID.generate(), GUID.generate(), GUID.generate());
hold2 = holdService.createHold(filePlan, GUID.generate(), GUID.generate(), GUID.generate());
holdService.addToHold(hold, dmDocument);
holdService.addToHold(hold2, dmDocument);
final List<NodeRef> holds = new ArrayList<>(2);
holds.add(hold);
holds.add(hold2);
holdService.addToHolds(holds, dmDocument);
}
public void when()
@@ -134,7 +138,7 @@ public class RemoveActiveContentFromHoldTest extends BaseRMTestCase
/**
* Given a piece of active content on hold
* When I try to remove the active content to the hold without permission
* When I try to remove the active content from the hold without permission
* Then an access denied exception is thrown
*/
public void testRemoveDocumentFromHoldFailsWithoutFilingPermission()
@@ -162,7 +166,7 @@ public class RemoveActiveContentFromHoldTest extends BaseRMTestCase
/**
* Given a piece of active content on hold
* When I try to remove the active content to the hold without the remove hold capability
* When I try to remove the active content from the hold without the remove hold capability
* Then an access denied exception is thrown
*/
public void testRemoveDocumentFromHoldFailsWithoutRemoveHoldPermission()
@@ -173,10 +177,8 @@ public class RemoveActiveContentFromHoldTest extends BaseRMTestCase
public void given()
{
//add powerUserPerson as manager in collaboration site to have write permissions on dmDocument
AuthenticationUtil.runAs(
(RunAsWork<Void>) () -> {
siteService.setMembership(collabSiteId, powerUserName, SiteModel.SITE_MANAGER);
hold = holdService.createHold(filePlan, GUID.generate(), GUID.generate(), GUID.generate());
holdService.addToHold(hold, dmDocument);
return null;

View File

@@ -43,7 +43,6 @@ import org.alfresco.model.ContentModel;
import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService;
import org.alfresco.module.org_alfresco_module_rm.util.NodeTypeUtility;
import org.alfresco.module.org_alfresco_module_rm.util.TransactionalResourceHelper;
import org.alfresco.repo.security.permissions.AccessDeniedException;
import org.alfresco.rest.framework.core.exceptions.PermissionDeniedException;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
@@ -90,9 +89,6 @@ public class FrozenAspectUnitTest
@Mock
private ChildAssociationRef mockOldRef;
@Mock
private ChildAssociationRef mockNewRef;
@Mock
private Set mockSet;
@@ -116,11 +112,11 @@ public class FrozenAspectUnitTest
when(mockNodeService.hasAspect(folder, ASPECT_HELD_CHILDREN)).thenReturn(true);
when(mockNodeService.getProperty(folder, PROP_HELD_CHILDREN_COUNT)).thenReturn(1);
when(mockApplicationContext.getBean("dbNodeService")).thenReturn(mockNodeService);
when(mockNodeService.exists(content)).thenReturn(true);
when(mockFreezeService.isFrozen(content)).thenReturn(false);
children.add(mockChildRef);
when(mockNodeService.getChildAssocs(content)).thenReturn(children);
when(mockChildRef.isPrimary()).thenReturn(true);
when(mockNodeService.hasAspect(record, ASPECT_RECORD)).thenReturn(true);
}
/**
@@ -129,7 +125,6 @@ public class FrozenAspectUnitTest
@Test
public void testRemoveAspectForRecords()
{
when(mockNodeService.hasAspect(record, ASPECT_RECORD)).thenReturn(true);
when(mockNodeService.getPrimaryParent(record)).thenReturn(mockChildAssociationRef);
when(mockChildAssociationRef.getParentRef()).thenReturn(folder);
frozenAspect.onRemoveAspect(record, null);
@@ -152,14 +147,14 @@ public class FrozenAspectUnitTest
}
/**
* Test that the remove code is only ran for records or active content
* Test that the remove code is only run for records or active content
*/
@Test
public void testRemoveAspectForContentDoesntUpdateForOtherTypes()
{
when(mockNodeService.hasAspect(content, ASPECT_RECORD)).thenReturn(false);
when(mockNodeService.getType(content)).thenReturn(ContentModel.TYPE_FOLDER);
when(mockedNodeTypeUtility.instanceOf(ContentModel.TYPE_FOLDER, ContentModel.TYPE_CONTENT)).thenReturn(false);
when(mockedNodeTypeUtility.instanceOf(mockNodeService.getType(content), ContentModel.TYPE_CONTENT)).thenReturn(false);
frozenAspect.onRemoveAspect(content, null);
verify(mockNodeService, times(0)).setProperty(folder, PROP_HELD_CHILDREN_COUNT, 0);
}
@@ -202,29 +197,28 @@ public class FrozenAspectUnitTest
@Test
public void testOnAddAspectForRecord()
{
when(mockNodeService.getType(record)).thenReturn(ContentModel.TYPE_CONTENT);
when(mockNodeService.getPrimaryParent(record)).thenReturn(mockParentRef);
when(mockParentRef.getParentRef()).thenReturn(parent);
when(mockNodeService.hasAspect(parent, ASPECT_HELD_CHILDREN)).thenReturn(true);
when(mockNodeService.getProperty(parent, PROP_HELD_CHILDREN_COUNT)).thenReturn(0);
frozenAspect.onAddAspect(record,null);
verify(mockNodeService, times(1)).setProperty(parent, PROP_HELD_CHILDREN_COUNT,1);
verify(mockNodeService, times(1)).setProperty(parent, PROP_HELD_CHILDREN_COUNT, 1);
}
/**
* Test on add for a content node
* Test on add aspect for a content node
*/
@Test
public void testOnAddAspectForContent()
{
when(mockNodeService.getType(record)).thenReturn(ContentModel.TYPE_CONTENT);
when(mockedNodeTypeUtility.instanceOf(mockNodeService.getType(record), ContentModel.TYPE_CONTENT)).thenReturn(true);
when(mockNodeService.getPrimaryParent(record)).thenReturn(mockParentRef);
when(mockNodeService.getType(content)).thenReturn(ContentModel.TYPE_CONTENT);
when(mockedNodeTypeUtility.instanceOf(mockNodeService.getType(content), ContentModel.TYPE_CONTENT)).thenReturn(true);
when(mockNodeService.getPrimaryParent(content)).thenReturn(mockParentRef);
when(mockParentRef.getParentRef()).thenReturn(parent);
when(mockNodeService.hasAspect(parent, ASPECT_HELD_CHILDREN)).thenReturn(false);
when(mockNodeService.getType(parent)).thenReturn(ContentModel.TYPE_FOLDER);
when(mockedNodeTypeUtility.instanceOf(mockNodeService.getType(parent), ContentModel.TYPE_FOLDER)).thenReturn(true);
frozenAspect.onAddAspect(record, null);
frozenAspect.onAddAspect(content, null);
verify(mockNodeService, times(1)).addAspect(any(NodeRef.class), any(QName.class), anyMap());
}