mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
ALF-13640: fix merged from V4.0-BUGFIX branch
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@35257 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -226,7 +226,7 @@ public class WorkflowObjectFactory
|
||||
String processKey = getProcessKey(defName) + ".task." + name;
|
||||
TypeDefinition metadata = taskDef.getMetadata();
|
||||
String title = getLabel(processKey, TITLE_LABEL, metadata.getTitle(), defaultTitle, name);
|
||||
String description = getLabel(processKey, DESC_LABEL, metadata.getDescription(), title, defaultDescription);
|
||||
String description = getLabel(processKey, DESC_LABEL, metadata.getDescription(), defaultDescription, title);
|
||||
return new WorkflowTask(actualId,
|
||||
taskDef, name, title, description,
|
||||
state, path, properties);
|
||||
|
@@ -389,6 +389,17 @@ public class AbstractActivitiComponentTest
|
||||
return (String) arg;
|
||||
}
|
||||
});
|
||||
|
||||
when(tenantService.getName(anyString())).thenAnswer(new Answer<String>()
|
||||
{
|
||||
public String answer(InvocationOnMock invocation) throws Throwable
|
||||
{
|
||||
Object arg= invocation.getArguments()[0];
|
||||
return (String) arg;
|
||||
}
|
||||
});
|
||||
|
||||
when(tenantService.getCurrentUserDomain()).thenReturn("");
|
||||
}
|
||||
|
||||
@After
|
||||
|
@@ -448,13 +448,13 @@ public class ActivitiTaskComponentTest extends AbstractActivitiComponentTest
|
||||
|
||||
// Test query by process-name
|
||||
taskQuery = createWorkflowTaskQuery(WorkflowTaskState.IN_PROGRESS);
|
||||
taskQuery.setProcessName(QName.createQName("testTask"));
|
||||
taskQuery.setWorkflowDefinitionName("testTask");
|
||||
tasks = workflowEngine.queryTasks(taskQuery);
|
||||
|
||||
Assert.assertNotNull(tasks);
|
||||
Assert.assertEquals(1, tasks.size());
|
||||
|
||||
taskQuery.setProcessName(QName.createQName("unexistingTaskName"));
|
||||
taskQuery.setWorkflowDefinitionName("unexistingTaskName");
|
||||
tasks = workflowEngine.queryTasks(taskQuery);
|
||||
Assert.assertNotNull(tasks);
|
||||
Assert.assertEquals(0, tasks.size());
|
||||
@@ -635,14 +635,14 @@ public class ActivitiTaskComponentTest extends AbstractActivitiComponentTest
|
||||
|
||||
// Test query by process-name
|
||||
taskQuery = createWorkflowTaskQuery(WorkflowTaskState.COMPLETED);
|
||||
taskQuery.setProcessName(QName.createQName("testTask"));
|
||||
taskQuery.setWorkflowDefinitionName("testTask");
|
||||
taskQuery.setActive(Boolean.FALSE);
|
||||
tasks = workflowEngine.queryTasks(taskQuery);
|
||||
|
||||
Assert.assertNotNull(tasks);
|
||||
Assert.assertEquals(1, tasks.size());
|
||||
|
||||
taskQuery.setProcessName(QName.createQName("unexistingTaskName"));
|
||||
taskQuery.setWorkflowDefinitionName("unexistingTaskName");
|
||||
tasks = workflowEngine.queryTasks(taskQuery);
|
||||
Assert.assertNotNull(tasks);
|
||||
Assert.assertEquals(0, tasks.size());
|
||||
@@ -704,6 +704,61 @@ public class ActivitiTaskComponentTest extends AbstractActivitiComponentTest
|
||||
assertEquals(1, tasks.size());
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Test
|
||||
public void testUpdateTask() {
|
||||
NodeRef nodeRef = new NodeRef("workspace:///someRef");
|
||||
NodeRef anotherRef = new NodeRef("workspace:///anotherRef");
|
||||
|
||||
QName propQname = QName.createQName("testProp");
|
||||
QName nodeRefPropQname = QName.createQName("testAssoc");
|
||||
HashMap<QName, Serializable> props = new HashMap<QName, Serializable>();
|
||||
|
||||
// Start the workflow-path
|
||||
WorkflowPath path = workflowEngine.startWorkflow(workflowDef.getId(), props);
|
||||
WorkflowTask startTask = workflowEngine.getStartTask(path.getInstance().getId());
|
||||
|
||||
// End the start-task
|
||||
workflowEngine.endTask(startTask.getId(), null);
|
||||
|
||||
// Get the task to update
|
||||
WorkflowTaskQuery taskQuery = createWorkflowTaskQuery(WorkflowTaskState.IN_PROGRESS);
|
||||
taskQuery.setProcessId(path.getInstance().getId());
|
||||
|
||||
List<WorkflowTask> tasks = workflowEngine.queryTasks(taskQuery);
|
||||
WorkflowTask task = tasks.get(0);
|
||||
|
||||
// Test altering plain properties
|
||||
props = new HashMap<QName, Serializable>();
|
||||
props.put(propQname, "54321");
|
||||
workflowEngine.updateTask(task.getId(), props, null, null);
|
||||
|
||||
tasks = workflowEngine.queryTasks(taskQuery);
|
||||
task = tasks.get(0);
|
||||
assertEquals("54321", task.getProperties().get(propQname));
|
||||
|
||||
// Test adding association
|
||||
HashMap<QName, List<NodeRef>> toAdd = new HashMap<QName, List<NodeRef>>();
|
||||
toAdd.put(nodeRefPropQname, Arrays.asList(anotherRef, nodeRef));
|
||||
|
||||
workflowEngine.updateTask(task.getId(), null, toAdd, null);
|
||||
|
||||
tasks = workflowEngine.queryTasks(taskQuery);
|
||||
task = tasks.get(0);
|
||||
assertEquals(2, ((List<NodeRef>)task.getProperties().get(nodeRefPropQname)).size());
|
||||
|
||||
// Test removing association
|
||||
HashMap<QName, List<NodeRef>> toRemove = new HashMap<QName, List<NodeRef>>();
|
||||
toRemove.put(nodeRefPropQname, Arrays.asList(nodeRef));
|
||||
|
||||
workflowEngine.updateTask(task.getId(), null, null, toRemove);
|
||||
|
||||
tasks = workflowEngine.queryTasks(taskQuery);
|
||||
task = tasks.get(0);
|
||||
assertEquals(1, ((List<NodeRef>)task.getProperties().get(nodeRefPropQname)).size());
|
||||
assertEquals(anotherRef, ((List<NodeRef>)task.getProperties().get(nodeRefPropQname)).get(0));
|
||||
}
|
||||
|
||||
private void checkTaskVariableTaskPresent(WorkflowTaskState state,
|
||||
QName varName, Object varValue, String expectedTask)
|
||||
{
|
||||
|
@@ -385,10 +385,12 @@ public class ActivitiPropertyConverter
|
||||
Serializable existingValue = existingValues.get(WorkflowModel.PROP_PRIORITY);
|
||||
try
|
||||
{
|
||||
for (ConstraintDefinition constraintDef : priorDef.getConstraints())
|
||||
{
|
||||
constraintDef.getConstraint().evaluate(existingValue);
|
||||
}
|
||||
if(priorDef != null) {
|
||||
for (ConstraintDefinition constraintDef : priorDef.getConstraints())
|
||||
{
|
||||
constraintDef.getConstraint().evaluate(existingValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (ConstraintException ce)
|
||||
{
|
||||
@@ -687,6 +689,7 @@ public class ActivitiPropertyConverter
|
||||
if (existingAdd == null)
|
||||
{
|
||||
existingAdd = (List<NodeRef>) existingProperties.get(toAdd.getKey());
|
||||
newProperties.put(toAdd.getKey(), (Serializable) existingAdd);
|
||||
}
|
||||
|
||||
// make the additions
|
||||
@@ -718,6 +721,10 @@ public class ActivitiPropertyConverter
|
||||
if (existingRemove == null)
|
||||
{
|
||||
existingRemove = (List<NodeRef>) existingProperties.get(toRemove.getKey());
|
||||
if(existingRemove != null) {
|
||||
existingRemove = new ArrayList<NodeRef>(existingRemove);
|
||||
newProperties.put(toRemove.getKey(), (Serializable) existingRemove);
|
||||
}
|
||||
}
|
||||
|
||||
// make the subtractions
|
||||
|
Reference in New Issue
Block a user