mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Fixed tests (for disposition schedules with event based actions).
This commit is contained in:
@@ -71,6 +71,8 @@ public class DispositionServiceImpl extends ServiceBaseImpl
|
|||||||
/** Logger */
|
/** Logger */
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(DispositionServiceImpl.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(DispositionServiceImpl.class);
|
||||||
|
|
||||||
|
private static final String PERIOD_IMMEDIATELY = "immediately";
|
||||||
|
|
||||||
/** Transaction mode for setting next action */
|
/** Transaction mode for setting next action */
|
||||||
public enum WriteMode {READ_ONLY, DATE_ONLY, DATE_AND_NAME};
|
public enum WriteMode {READ_ONLY, DATE_ONLY, DATE_AND_NAME};
|
||||||
|
|
||||||
@@ -636,8 +638,14 @@ public class DispositionServiceImpl extends ServiceBaseImpl
|
|||||||
* @param dispositionActionDefinition disposition action definition
|
* @param dispositionActionDefinition disposition action definition
|
||||||
* @param allowContextFromAsOf true if the context date is allowed to be obtained from the disposition "as of" property.
|
* @param allowContextFromAsOf true if the context date is allowed to be obtained from the disposition "as of" property.
|
||||||
*/
|
*/
|
||||||
private void initialiseDispositionAction(NodeRef nodeRef, DispositionActionDefinition dispositionActionDefinition, boolean allowContextFromAsOf)
|
private DispositionAction initialiseDispositionAction(NodeRef nodeRef, DispositionActionDefinition dispositionActionDefinition, boolean allowContextFromAsOf)
|
||||||
{
|
{
|
||||||
|
List<ChildAssociationRef> childAssocs = nodeService.getChildAssocs(nodeRef, ASSOC_NEXT_DISPOSITION_ACTION, ASSOC_NEXT_DISPOSITION_ACTION, 1, true);
|
||||||
|
if (childAssocs != null && childAssocs.size() > 0)
|
||||||
|
{
|
||||||
|
return new DispositionActionImpl(serviceRegistry, childAssocs.get(0).getChildRef());
|
||||||
|
}
|
||||||
|
|
||||||
// Create the properties
|
// Create the properties
|
||||||
Map<QName, Serializable> props = new HashMap<QName, Serializable>(10);
|
Map<QName, Serializable> props = new HashMap<QName, Serializable>(10);
|
||||||
|
|
||||||
@@ -667,6 +675,7 @@ public class DispositionServiceImpl extends ServiceBaseImpl
|
|||||||
// For every event create an entry on the action
|
// For every event create an entry on the action
|
||||||
da.addEventCompletionDetails(event);
|
da.addEventCompletionDetails(event);
|
||||||
}
|
}
|
||||||
|
return da;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -699,7 +708,7 @@ public class DispositionServiceImpl extends ServiceBaseImpl
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (period.getPeriodType().equals("immediately"))
|
if (period.getPeriodType().equals(PERIOD_IMMEDIATELY))
|
||||||
{
|
{
|
||||||
contextDate = (Date)nodeService.getProperty(nodeRef, ContentModel.PROP_CREATED);
|
contextDate = (Date)nodeService.getProperty(nodeRef, ContentModel.PROP_CREATED);
|
||||||
}
|
}
|
||||||
@@ -1130,20 +1139,36 @@ public class DispositionServiceImpl extends ServiceBaseImpl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (nextDispositionActionDate == null || dispositionNodeRef == null)
|
if (dispositionNodeRef == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
WriteMode mode = null;
|
WriteMode mode = null;
|
||||||
if (!nextDispositionActionDate.equals(recordNextDispositionActionDate)
|
if (recordNextDispositionActionDate != null)
|
||||||
&& recordNextDispositionActionDate.before(nextDispositionActionDate))
|
|
||||||
{
|
{
|
||||||
mode = WriteMode.DATE_ONLY;
|
if ((nextDispositionActionDate == null)
|
||||||
|
|| (!nextDispositionActionDate.equals(recordNextDispositionActionDate)
|
||||||
|
&& recordNextDispositionActionDate.before(nextDispositionActionDate)))
|
||||||
|
{
|
||||||
|
mode = WriteMode.DATE_ONLY;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mode = WriteMode.READ_ONLY;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mode = WriteMode.READ_ONLY;
|
if (nextDispositionActionDate != null)
|
||||||
|
{
|
||||||
|
mode = WriteMode.DATE_ONLY;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mode = WriteMode.READ_ONLY;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new NextActionFromDisposition(dispositionNodeRef, nextDispositionAction.getNodeRef(),
|
return new NextActionFromDisposition(dispositionNodeRef, nextDispositionAction.getNodeRef(),
|
||||||
recordNextDispositionActionName, nextDispositionActionDate, mode);
|
recordNextDispositionActionName, nextDispositionActionDate, mode);
|
||||||
}
|
}
|
||||||
@@ -1164,28 +1189,33 @@ public class DispositionServiceImpl extends ServiceBaseImpl
|
|||||||
NodeRef folderDS = getDispositionScheduleImpl(folder);
|
NodeRef folderDS = getDispositionScheduleImpl(folder);
|
||||||
if (folderDS != null)
|
if (folderDS != null)
|
||||||
{
|
{
|
||||||
List<ChildAssociationRef> assocs = nodeService.getChildAssocs(folderDS);
|
DispositionSchedule ds = new DispositionScheduleImpl(serviceRegistry, nodeService, folderDS);
|
||||||
if (assocs != null && assocs.size() > 0)
|
List<DispositionActionDefinition> dispositionActionDefinitions = ds.getDispositionActionDefinitions();
|
||||||
|
|
||||||
|
if (dispositionActionDefinitions != null && dispositionActionDefinitions.size() > 0)
|
||||||
{
|
{
|
||||||
NodeRef firstAction = assocs.get(0).getChildRef();
|
DispositionActionDefinition firstDispositionActionDef = dispositionActionDefinitions.get(0);
|
||||||
DispositionAction firstDispositionAction = new DispositionActionImpl(serviceRegistry, firstAction);
|
|
||||||
|
|
||||||
if (newAction == null)
|
if (newAction == null)
|
||||||
{
|
{
|
||||||
newAction = firstAction;
|
DispositionAction firstDispositionAction = initialiseDispositionAction(record, firstDispositionActionDef, true);
|
||||||
|
newAction = firstDispositionAction.getNodeRef();
|
||||||
newDispositionActionName = (String)nodeService.getProperty(newAction, PROP_DISPOSITION_ACTION_NAME);
|
newDispositionActionName = (String)nodeService.getProperty(newAction, PROP_DISPOSITION_ACTION_NAME);
|
||||||
newDispositionActionDateAsOf = getDispositionActionDate(record, folderDS, newDispositionActionName);
|
|
||||||
}
|
|
||||||
else if (firstDispositionAction.getAsOfDate() != null && newDispositionActionDateAsOf.before(firstDispositionAction.getAsOfDate()))
|
|
||||||
{
|
|
||||||
newDispositionActionName = (String)nodeService.getProperty(firstAction, PROP_DISPOSITION_ACTION_NAME);
|
|
||||||
newDispositionActionDateAsOf = firstDispositionAction.getAsOfDate();
|
newDispositionActionDateAsOf = firstDispositionAction.getAsOfDate();
|
||||||
}
|
}
|
||||||
|
else if (firstDispositionActionDef.getPeriod() != null) {
|
||||||
|
Date firstActionDate = calculateAsOfDate(record, firstDispositionActionDef, true);
|
||||||
|
if (newDispositionActionDateAsOf.before(firstActionDate))
|
||||||
|
{
|
||||||
|
newDispositionActionName =firstDispositionActionDef.getName();
|
||||||
|
newDispositionActionDateAsOf = firstActionDate;
|
||||||
|
}
|
||||||
|
}
|
||||||
dispositionNodeRef = folderDS;
|
dispositionNodeRef = folderDS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (newDispositionActionName == null || newDispositionActionDateAsOf == null
|
if (newDispositionActionName == null
|
||||||
|| dispositionNodeRef == null || newAction == null)
|
|| dispositionNodeRef == null || newAction == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
|
@@ -36,6 +36,7 @@ import org.alfresco.module.org_alfresco_module_rm.action.impl.EditDispositionAct
|
|||||||
import org.alfresco.module.org_alfresco_module_rm.action.impl.TransferAction;
|
import org.alfresco.module.org_alfresco_module_rm.action.impl.TransferAction;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule;
|
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
|
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.test.util.CommonRMTestUtils;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
|
|
||||||
@@ -95,11 +96,6 @@ public class UpdateNextDispositionActionTest extends BaseRMTestCase
|
|||||||
// complete record
|
// complete record
|
||||||
utils.completeRecord(record);
|
utils.completeRecord(record);
|
||||||
|
|
||||||
// set the disposition as of date to now on the record
|
|
||||||
rmActionService.executeRecordsManagementAction(record,
|
|
||||||
EditDispositionActionAsOfDateAction.NAME,
|
|
||||||
Collections.singletonMap(EditDispositionActionAsOfDateAction.PARAM_AS_OF_DATE, (Serializable)new Date()));
|
|
||||||
|
|
||||||
// cut off
|
// cut off
|
||||||
rmActionService.executeRecordsManagementAction(record, CutOffAction.NAME, null);
|
rmActionService.executeRecordsManagementAction(record, CutOffAction.NAME, null);
|
||||||
}
|
}
|
||||||
@@ -120,7 +116,7 @@ public class UpdateNextDispositionActionTest extends BaseRMTestCase
|
|||||||
Map<QName, Serializable> cutOff = new HashMap<QName, Serializable>(3);
|
Map<QName, Serializable> cutOff = new HashMap<QName, Serializable>(3);
|
||||||
cutOff.put(PROP_DISPOSITION_ACTION_NAME, CutOffAction.NAME);
|
cutOff.put(PROP_DISPOSITION_ACTION_NAME, CutOffAction.NAME);
|
||||||
cutOff.put(PROP_DISPOSITION_DESCRIPTION, generate());
|
cutOff.put(PROP_DISPOSITION_DESCRIPTION, generate());
|
||||||
cutOff.put(PROP_DISPOSITION_PERIOD, PERIOD_ONE_WEEK);
|
cutOff.put(PROP_DISPOSITION_PERIOD, CommonRMTestUtils.PERIOD_IMMEDIATELY);
|
||||||
dispositionService.addDispositionActionDefinition(ds, cutOff);
|
dispositionService.addDispositionActionDefinition(ds, cutOff);
|
||||||
|
|
||||||
// create the properties for TRANSFER action and add it to the disposition action definition
|
// create the properties for TRANSFER action and add it to the disposition action definition
|
||||||
|
@@ -657,7 +657,7 @@ public class DispositionServiceImplTest extends BaseRMTestCase
|
|||||||
checkDisposableItemChanged(mhRecordFolder42);
|
checkDisposableItemChanged(mhRecordFolder42);
|
||||||
checkDisposableItemChanged(record43);
|
checkDisposableItemChanged(record43);
|
||||||
checkDisposableItemUnchanged(mhRecordFolder44);
|
checkDisposableItemUnchanged(mhRecordFolder44);
|
||||||
checkDisposableItemUnchanged(record45);;
|
checkDisposableItemUnchanged(record45);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user