mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Test for FreezeService
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@43581 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.alfresco.module.org_alfresco_module_rm.freeze;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
@@ -153,4 +154,20 @@ public interface FreezeService
|
||||
* @return true if the given nodeRef has frozen children, false otherwise
|
||||
*/
|
||||
boolean hasFrozenChildren(NodeRef nodeRef);
|
||||
|
||||
/**
|
||||
* Gets the date of the freeze for the given node, null if the node is not frozen
|
||||
*
|
||||
* @param nodeRef The nodeRef for which the date check will be performed
|
||||
* @return Date The of the freeze or null
|
||||
*/
|
||||
Date getFreezeDate(NodeRef nodeRef);
|
||||
|
||||
/**
|
||||
* Gets the initiator of the freeze for the given node, null if the node is not frozen
|
||||
*
|
||||
* @param nodeRef The nodeRef for which the initiator check will be performed
|
||||
* @return String The initiator of the freeze or null
|
||||
*/
|
||||
String getFreezeInitiator(NodeRef nodeRef);
|
||||
}
|
||||
|
@@ -489,6 +489,50 @@ public class FreezeServiceImpl implements FreezeService,
|
||||
return getFrozen(nodeRef).size() > 0 ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService#getFreezeDate(org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
@Override
|
||||
public Date getFreezeDate(NodeRef nodeRef)
|
||||
{
|
||||
ParameterCheck.mandatory("nodeRef", nodeRef);
|
||||
|
||||
if (isFrozen(nodeRef))
|
||||
{
|
||||
Serializable property = nodeService.getProperty(nodeRef, PROP_FROZEN_AT);
|
||||
if (property != null)
|
||||
{
|
||||
return (Date) property;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService#getFreezeInitiator(org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
@Override
|
||||
public String getFreezeInitiator(NodeRef nodeRef)
|
||||
{
|
||||
ParameterCheck.mandatory("nodeRef", nodeRef);
|
||||
|
||||
if (isFrozen(nodeRef))
|
||||
{
|
||||
Serializable property = nodeService.getProperty(nodeRef, PROP_FROZEN_BY);
|
||||
if (property != null)
|
||||
{
|
||||
return (String) property;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Creates a hold using the given nodeRef and reason
|
||||
*
|
||||
|
@@ -1,22 +1,23 @@
|
||||
package org.alfresco.module.org_alfresco_module_rm.test.service;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.dataset.DataSetService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
|
||||
import org.alfresco.repo.content.MimetypeMap;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.ContentWriter;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.service.namespace.RegexQNamePattern;
|
||||
|
||||
public class FreezeServiceImplTest extends BaseRMTestCase
|
||||
{
|
||||
@@ -52,10 +53,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
||||
freezeService = (FreezeService) applicationContext.getBean("freezeService");
|
||||
}
|
||||
|
||||
/**
|
||||
* @see FreezeService#freeze(String, NodeRef)
|
||||
*/
|
||||
public void testFreeze() throws Exception
|
||||
public void testFreezeService() throws Exception
|
||||
{
|
||||
doTestInTransaction(new Test<Void>()
|
||||
{
|
||||
@@ -74,26 +72,26 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
||||
@Override
|
||||
public void test(Void result) throws Exception
|
||||
{
|
||||
assertTrue(nodeService.hasAspect(recordOne, ASPECT_RECORD));
|
||||
assertTrue(nodeService.hasAspect(recordOne, ASPECT_FILE_PLAN_COMPONENT));
|
||||
assertTrue(rmService.isRecord(recordOne));
|
||||
assertTrue(rmService.isFilePlanComponent(recordOne));
|
||||
|
||||
freezeService.freeze("FreezeReason", recordOne);
|
||||
|
||||
// Check the hold exists
|
||||
List<ChildAssociationRef> holdAssocs = nodeService.getChildAssocs(filePlan, ASSOC_HOLDS, RegexQNamePattern.MATCH_ALL);
|
||||
Set<NodeRef> holdAssocs = freezeService.getHolds(filePlan);
|
||||
assertNotNull(holdAssocs);
|
||||
assertEquals(1, holdAssocs.size());
|
||||
NodeRef holdNodeRef = holdAssocs.get(0).getChildRef();
|
||||
NodeRef holdNodeRef = holdAssocs.iterator().next();
|
||||
assertTrue(freezeService.isHold(holdNodeRef));
|
||||
assertEquals("FreezeReason", freezeService.getReason(holdNodeRef));
|
||||
Set<NodeRef> freezeAssocs = freezeService.getFrozen(holdNodeRef);
|
||||
assertNotNull(freezeAssocs);
|
||||
assertEquals(1, freezeAssocs.size());
|
||||
Set<NodeRef> frozenNodes = freezeService.getFrozen(holdNodeRef);
|
||||
assertNotNull(frozenNodes);
|
||||
assertEquals(1, frozenNodes.size());
|
||||
|
||||
// Check the nodes are frozen
|
||||
assertTrue(freezeService.isFrozen(recordOne));
|
||||
assertNotNull(nodeService.getProperty(recordOne, PROP_FROZEN_AT));
|
||||
assertNotNull(nodeService.getProperty(recordOne, PROP_FROZEN_BY));
|
||||
assertNotNull(freezeService.getFreezeDate(recordOne));
|
||||
assertNotNull(freezeService.getFreezeInitiator(recordOne));
|
||||
assertFalse(freezeService.isFrozen(recordTwo));
|
||||
assertFalse(freezeService.isFrozen(recordThree));
|
||||
|
||||
@@ -102,8 +100,98 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
||||
|
||||
// Check the hold has been updated
|
||||
assertEquals("NewFreezeReason", freezeService.getReason(holdNodeRef));
|
||||
|
||||
// Freeze a number of records
|
||||
Set<NodeRef> records = new HashSet<NodeRef>();
|
||||
records.add(recordOne);
|
||||
records.add(recordTwo);
|
||||
records.add(recordThree);
|
||||
NodeRef newHold = freezeService.freeze("Freeze a set of nodes", records);
|
||||
assertNotNull(newHold);
|
||||
assertTrue(freezeService.isHold(newHold));
|
||||
|
||||
// Check the holds exist
|
||||
holdAssocs = freezeService.getHolds(filePlan);
|
||||
assertNotNull(holdAssocs);
|
||||
assertEquals(2, holdAssocs.size());
|
||||
for (NodeRef hold : holdAssocs)
|
||||
{
|
||||
String reason = freezeService.getReason(hold);
|
||||
if (reason.equals("Freeze a set of nodes"))
|
||||
{
|
||||
assertEquals(newHold, hold);
|
||||
frozenNodes = freezeService.getFrozen(hold);
|
||||
assertNotNull(frozenNodes);
|
||||
assertEquals(3, frozenNodes.size());
|
||||
}
|
||||
else if (reason.equals("NewFreezeReason"))
|
||||
{
|
||||
frozenNodes = freezeService.getFrozen(hold);
|
||||
assertNotNull(frozenNodes);
|
||||
assertEquals(1, frozenNodes.size());
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new AlfrescoRuntimeException("The reason '" + reason + "' was not found in the existing holds.");
|
||||
}
|
||||
}
|
||||
|
||||
// Check the nodes are frozen
|
||||
final List<NodeRef> testRecords = Arrays.asList(new NodeRef[]{recordOne, recordTwo, recordThree});
|
||||
for (NodeRef nr : testRecords)
|
||||
{
|
||||
assertTrue(freezeService.isFrozen(nr));
|
||||
assertNotNull(freezeService.getFreezeDate(nr));
|
||||
assertNotNull(freezeService.getFreezeInitiator(nr));
|
||||
}
|
||||
|
||||
// Unfreeze a node
|
||||
freezeService.unFreeze(recordThree);
|
||||
|
||||
// Check the holds
|
||||
holdAssocs = freezeService.getHolds(filePlan);
|
||||
assertNotNull(holdAssocs);
|
||||
assertEquals(2, holdAssocs.size());
|
||||
for (NodeRef hold : holdAssocs)
|
||||
{
|
||||
String reason = freezeService.getReason(hold);
|
||||
if (reason.equals("Freeze a set of nodes"))
|
||||
{
|
||||
frozenNodes = freezeService.getFrozen(hold);
|
||||
assertNotNull(frozenNodes);
|
||||
assertEquals(2, frozenNodes.size());
|
||||
}
|
||||
else if (reason.equals("NewFreezeReason"))
|
||||
{
|
||||
frozenNodes = freezeService.getFrozen(hold);
|
||||
assertNotNull(frozenNodes);
|
||||
assertEquals(1, frozenNodes.size());
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new AlfrescoRuntimeException("The reason '" + reason + "' was not found in the existing holds.");
|
||||
}
|
||||
}
|
||||
|
||||
// Check the nodes are frozen
|
||||
assertTrue(freezeService.isFrozen(recordOne));
|
||||
assertNotNull(freezeService.getFreezeDate(recordOne));
|
||||
assertNotNull(freezeService.getFreezeInitiator(recordOne));
|
||||
assertTrue(freezeService.isFrozen(recordTwo));
|
||||
assertNotNull(freezeService.getFreezeDate(recordTwo));
|
||||
assertNotNull(freezeService.getFreezeInitiator(recordTwo));
|
||||
assertFalse(freezeService.isFrozen(recordThree));
|
||||
|
||||
// FIXME
|
||||
freezeService.unFreeze(recordTwo);
|
||||
freezeService.unFreeze(recordOne);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method for getting a record folder from the test data
|
||||
*
|
||||
* @return NodeRef of a record folder from the test data
|
||||
*/
|
||||
private NodeRef getRecordFolder()
|
||||
{
|
||||
// Load the data set into the specified file plan
|
||||
@@ -126,6 +214,14 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
||||
return recFol13;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method for creating a record
|
||||
*
|
||||
* @param recordFolder Record folder in which the record will be created
|
||||
* @param name The name of the record
|
||||
* @param someTextContent The content of the record
|
||||
* @return NodeRef of the created record
|
||||
*/
|
||||
private NodeRef createRecord(NodeRef recordFolder, String name, String someTextContent)
|
||||
{
|
||||
// Create the document
|
||||
@@ -146,36 +242,4 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @see FreezeService#unFreeze(NodeRef)
|
||||
*/
|
||||
public void testUnFreeze() throws Exception
|
||||
{
|
||||
doTestInTransaction(new Test<Void>()
|
||||
{
|
||||
@Override
|
||||
public Void run() throws Exception
|
||||
{
|
||||
// FIXME
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @see FreezeService#relinquish(NodeRef)
|
||||
*/
|
||||
public void testRelinquish() throws Exception
|
||||
{
|
||||
doTestInTransaction(new Test<Void>()
|
||||
{
|
||||
@Override
|
||||
public Void run() throws Exception
|
||||
{
|
||||
// FIXME
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user