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:
Tuna Aksoy
2012-11-13 16:42:44 +00:00
parent d8ab355a05
commit ceb945aa82
3 changed files with 172 additions and 47 deletions

View File

@@ -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;
}
});
}
}