ALF-4057 The default form returned by Task and Workflow Form Processors now excludes several properties which should not be displayed, such as the bpm:package association and the bpm:packageActionGroup property.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@21495 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
N Smith
2010-07-29 17:50:04 +00:00
parent a272009f7e
commit 4a6b87905d
9 changed files with 171 additions and 40 deletions

View File

@@ -64,6 +64,7 @@ import org.springframework.util.StringUtils;
* Form service implementation unit test.
*
* @author Gavin Cornwell
* @author Nick Smith
*/
public class FormServiceImplTest extends BaseAlfrescoSpringTest
{
@@ -1296,7 +1297,6 @@ public class FormServiceImplTest extends BaseAlfrescoSpringTest
ArrayList<String> fields = new ArrayList<String>(4);
fields.add(WorkflowModel.PROP_DESCRIPTION.toPrefixString(namespaceService));
fields.add(WorkflowModel.PROP_STATUS.toPrefixString(namespaceService));
fields.add(WorkflowModel.PROP_PACKAGE_ACTION_GROUP.toPrefixString(namespaceService));
fields.add(ContentModel.PROP_OWNER.toPrefixString(namespaceService));
return fields;
}

View File

@@ -41,6 +41,8 @@ public abstract class FilteredFormProcessor<ItemType, PersistType> extends Abstr
{
private static final Log logger = LogFactory.getLog(FilteredFormProcessor.class);
private List<String> ignoredFields = null;
protected FilterRegistry<ItemType, PersistType> filterRegistry;
protected FieldProcessorRegistry fieldProcessorRegistry;
@@ -58,6 +60,14 @@ public abstract class FilteredFormProcessor<ItemType, PersistType> extends Abstr
logger.debug("Set filter registry: " + this.filterRegistry + " for processor: " + this);
}
/**
* @param ignoredFields the ignoredFields to set
*/
public void setIgnoredFields(List<String> ignoredFields)
{
this.ignoredFields = ignoredFields;
}
/*
* @see
* org.alfresco.repo.forms.processor.FormProcessor#generate(org.alfresco
@@ -170,17 +180,25 @@ public abstract class FilteredFormProcessor<ItemType, PersistType> extends Abstr
}
else
{
fieldsToAdd = generateDefaultFields(data);
fieldsToAdd = generateDefaultFields(data, getIgnoredFields());
}
form.addFields(fieldsToAdd);
}
private List<String> getIgnoredFields()
{
if(ignoredFields != null)
return ignoredFields;
return getDefaultIgnoredFields();
}
/**
* Generates a list of default fields to add if no field names are specified.
* @param data Used for field creation.
* @param ignoredFields TODO
* @return a {@link List} of {@link Field Fields} which may be empty.
*/
protected List<Field> generateDefaultFields(FormCreationData data)
protected List<Field> generateDefaultFields(FormCreationData data, List<String> fieldsToIgnore)
{
return Collections.emptyList();
}
@@ -266,4 +284,5 @@ public abstract class FilteredFormProcessor<ItemType, PersistType> extends Abstr
*/
protected abstract PersistType internalPersist(ItemType item, FormData data);
protected abstract List<String> getDefaultIgnoredFields();
}

View File

@@ -21,9 +21,9 @@ package org.alfresco.repo.forms.processor.node;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC_DATA_ADDED_SUFFIX;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC_DATA_PREFIX;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC_DATA_REMOVED_SUFFIX;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.DEFAULT_CONTENT_MIMETYPE;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ON;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.PROP_DATA_PREFIX;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.DEFAULT_CONTENT_MIMETYPE;
import java.io.Serializable;
import java.util.ArrayList;
@@ -183,9 +183,10 @@ public abstract class ContentModelFormProcessor<ItemType, PersistType> extends
}
@Override
protected List<Field> generateDefaultFields(FormCreationData data)
protected List<Field> generateDefaultFields(FormCreationData data, List<String> fieldsToIgnore)
{
DefaultFieldBuilder defaultFieldBuilder = new DefaultFieldBuilder(data, fieldProcessorRegistry);
DefaultFieldBuilder defaultFieldBuilder =
new DefaultFieldBuilder(data, fieldProcessorRegistry, namespaceService, fieldsToIgnore);
return defaultFieldBuilder.buildDefaultFields();
}

View File

@@ -21,12 +21,14 @@ package org.alfresco.repo.forms.processor.node;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.alfresco.repo.forms.Field;
import org.alfresco.repo.forms.processor.FieldProcessor;
import org.alfresco.repo.forms.processor.FieldProcessorRegistry;
import org.alfresco.repo.forms.processor.FormCreationData;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -47,25 +49,42 @@ public class DefaultFieldBuilder
private final FormCreationData formData;
private final ItemData<?> ItemData;
private final FieldProcessorRegistry registry;
private final NamespaceService namespaceService;
private final List<String> ignoredFields;
private final Log logger;
public DefaultFieldBuilder(FormCreationData data,
FieldProcessorRegistry registry)
FieldProcessorRegistry registry,
NamespaceService namespaceService,
List<String> ignoredFields)
{
this(data, registry, MY_LOGGER);
this(data, registry, namespaceService, ignoredFields, MY_LOGGER);
}
public DefaultFieldBuilder(FormCreationData formData,
FieldProcessorRegistry registry,
NamespaceService namespaceService,
List<String> ignoredFields,
Log logger)
{
this.logger = logger;
this.formData = formData;
this.registry = registry;
this.namespaceService = namespaceService;
this.ignoredFields = getNonNullList(ignoredFields );
this.ItemData = (ItemData<?>) formData.getItemData();
}
/**
* @param ignoredTransientFields2
* @return
*/
private <T> List<T> getNonNullList(List<T> list)
{
return list == null ? Collections.<T>emptyList() : list;
}
public List<Field> buildDefaultFields()
{
List<Field> assocFields = buildDefaultAssociationFields();
@@ -85,18 +104,30 @@ public class DefaultFieldBuilder
List<Field> fields = new ArrayList<Field>(names.size());
for (QName name : names)
{
fields.add(buildPropertyField(name));
if(ignoreQName(name)==false)
{
fields.add(buildPropertyField(name));
}
}
return fields;
}
private boolean ignoreQName(QName qname)
{
String name = qname.toPrefixString(namespaceService);
return ignoredFields.contains(name);
}
public List<Field> buildDefaultAssociationFields()
{
Collection<QName> names = ItemData.getAllAssociationDefinitionNames();
List<Field> fields = new ArrayList<Field>(names.size());
for (QName name : names)
{
fields.add(buildAssociationField(name));
if(ignoreQName(name)==false)
{
fields.add(buildAssociationField(name));
}
}
return fields;
}
@@ -107,7 +138,10 @@ public class DefaultFieldBuilder
List<Field> fields = new ArrayList<Field>(names.size());
for (String name : names)
{
fields.add(buildTransientField(name));
if(ignoredFields.contains(name)==false)
{
fields.add(buildTransientField(name));
}
}
return fields;
}

View File

@@ -288,4 +288,13 @@ public class NodeFormProcessor extends ContentModelFormProcessor<NodeRef, NodeRe
return item;
}
/* (non-Javadoc)
* @see org.alfresco.repo.forms.processor.FilteredFormProcessor#getDefaultIgnoredFields()
*/
@Override
protected List<String> getDefaultIgnoredFields()
{
return null;
}
}

View File

@@ -21,6 +21,7 @@ package org.alfresco.repo.forms.processor.node;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.alfresco.model.ContentModel;
@@ -280,4 +281,13 @@ public class TypeFormProcessor extends ContentModelFormProcessor<TypeDefinition,
{
return null;
}
/* (non-Javadoc)
* @see org.alfresco.repo.forms.processor.FilteredFormProcessor#getDefaultIgnoredFields()
*/
@Override
protected List<String> getDefaultIgnoredFields()
{
return null;
}
}

View File

@@ -19,6 +19,7 @@
package org.alfresco.repo.forms.processor.workflow;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
@@ -117,6 +118,35 @@ public abstract class AbstractWorkflowFormProcessor<ItemType, PersistType> exten
return decodedId;
}
/* (non-Javadoc)
* @see org.alfresco.repo.forms.processor.FilteredFormProcessor#getDefaultIgnoredFields()
*/
@Override
protected List<String> getDefaultIgnoredFields()
{
ArrayList<String> fields = new ArrayList<String>(5);
fields.add("bpm:package");
fields.add("bpm:pooledActors");
fields.add("bpm:completedItems");
fields.add("sys:node-dbid");
fields.add("sys:store-identifier");
fields.add("bpm:completionDate");
fields.add("bpm:context");
fields.add("sys:node-uuid");
fields.add("bpm:hiddenTransitions");
fields.add("cm:creator");
fields.add("cm:modifier");
fields.add("bpm:packageActionGroup");
fields.add("bpm:packageItemActionGroup");
fields.add("bpm:outcome");
fields.add("cm:content");
fields.add("cm:accessed");
fields.add("bpm:startDate");
fields.add("cm:modified");
fields.add("cm:created");
fields.add("sys:store-protocol");
return fields;
}
/**
* Returns an implementation of {@link ContentModelFormPersister} which is
* used to accumulate all the changes specified in the {@link Form} and then persist them.

View File

@@ -25,6 +25,19 @@
package org.alfresco.repo.forms.processor.workflow;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC_DATA_ADDED_SUFFIX;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC_DATA_PREFIX;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC_DATA_REMOVED_SUFFIX;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.PROP_DATA_PREFIX;
import static org.alfresco.repo.workflow.WorkflowModel.ASPECT_WORKFLOW_PACKAGE;
import static org.alfresco.repo.workflow.WorkflowModel.ASSOC_ASSIGNEE;
import static org.alfresco.repo.workflow.WorkflowModel.ASSOC_PACKAGE_CONTAINS;
import static org.alfresco.repo.workflow.WorkflowModel.ASSOC_POOLED_ACTORS;
import static org.alfresco.repo.workflow.WorkflowModel.PROP_DESCRIPTION;
import static org.alfresco.repo.workflow.WorkflowModel.PROP_HIDDEN_TRANSITIONS;
import static org.alfresco.repo.workflow.WorkflowModel.PROP_PACKAGE_ACTION_GROUP;
import static org.alfresco.repo.workflow.WorkflowModel.PROP_PACKAGE_ITEM_ACTION_GROUP;
import static org.alfresco.repo.workflow.WorkflowModel.PROP_STATUS;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyMap;
import static org.mockito.Matchers.anyString;
@@ -34,7 +47,6 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.*;
import java.io.Serializable;
import java.util.ArrayList;
@@ -54,10 +66,8 @@ import org.alfresco.repo.forms.FormNotFoundException;
import org.alfresco.repo.forms.Item;
import org.alfresco.repo.forms.FormData.FieldData;
import org.alfresco.repo.forms.processor.node.DefaultFieldProcessor;
import org.alfresco.repo.forms.processor.node.FormFieldConstants;
import org.alfresco.repo.forms.processor.node.MockClassAttributeDefinition;
import org.alfresco.repo.forms.processor.node.MockFieldProcessorRegistry;
import org.alfresco.repo.workflow.WorkflowModel;
import org.alfresco.service.cmr.dictionary.AssociationDefinition;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService;
@@ -79,7 +89,6 @@ import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.NamespaceServiceMemoryImpl;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.QNamePattern;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
@@ -93,11 +102,11 @@ public class TaskFormProcessorTest extends TestCase
{
private static final String TASK_DEF_NAME = "TaskDef";
private static final String TASK_ID = "foo$Real Id";
private static final QName DESC_NAME = WorkflowModel.PROP_DESCRIPTION;
private static final QName STATUS_NAME = WorkflowModel.PROP_STATUS;
private static final QName DESC_NAME = PROP_DESCRIPTION;
private static final QName STATUS_NAME = PROP_STATUS;
private static final QName PROP_WITH_ = QName.createQName(NamespaceService.BPM_MODEL_1_0_URI, "some_prop");
private static final QName ACTORS_NAME = WorkflowModel.ASSOC_POOLED_ACTORS;
private static final QName ASSIGNEE_NAME = WorkflowModel.ASSOC_ASSIGNEE;
private static final QName ACTORS_NAME = ASSOC_POOLED_ACTORS;
private static final QName ASSIGNEE_NAME = ASSOC_ASSIGNEE;
private static final QName ASSOC_WITH_ = QName.createQName(NamespaceService.BPM_MODEL_1_0_URI, "some_assoc");
private static final NodeRef FAKE_NODE = new NodeRef(NamespaceService.BPM_MODEL_1_0_URI + "/FakeNode");
private static final NodeRef FAKE_NODE2 = new NodeRef(NamespaceService.BPM_MODEL_1_0_URI + "/FakeNode2");
@@ -210,12 +219,18 @@ public class TaskFormProcessorTest extends TestCase
Form form = processForm();
List<String> fieldDefs = form.getFieldDefinitionNames();
assertTrue(fieldDefs.contains(ASSIGNEE_NAME.toPrefixString(namespaceService)));
assertTrue(fieldDefs.contains(ACTORS_NAME.toPrefixString(namespaceService)));
assertTrue(fieldDefs.contains(ASSOC_WITH_.toPrefixString(namespaceService)));
assertTrue(fieldDefs.contains(DESC_NAME.toPrefixString(namespaceService)));
assertTrue(fieldDefs.contains(STATUS_NAME.toPrefixString(namespaceService)));
assertTrue(fieldDefs.contains(PROP_WITH_.toPrefixString(namespaceService)));
assertTrue(fieldDefs.contains(PackageItemsFieldProcessor.KEY));
assertTrue(fieldDefs.contains(TransitionFieldProcessor.KEY));
// Check 'default ignored fields' are proerly removed from defaults.
assertFalse(fieldDefs.contains(ACTORS_NAME.toPrefixString(namespaceService)));
assertFalse(fieldDefs.contains(PROP_PACKAGE_ACTION_GROUP.toPrefixString(namespaceService)));
assertFalse(fieldDefs.contains(PROP_PACKAGE_ITEM_ACTION_GROUP.toPrefixString(namespaceService)));
Serializable fieldData = (Serializable) Arrays.asList(FAKE_NODE.toString());
FormData formData = form.getFormData();
assertEquals(fieldData, formData.getFieldData("assoc_bpm_assignee").getValue());
@@ -241,7 +256,7 @@ public class TaskFormProcessorTest extends TestCase
// Hide transition with id3.
Serializable hiddenValue = (Serializable) Collections.singletonList("id3");
task.properties.put(WorkflowModel.PROP_HIDDEN_TRANSITIONS, hiddenValue );
task.properties.put(PROP_HIDDEN_TRANSITIONS, hiddenValue );
form = processForm(fieldName);
transitionValues = "id1|title1,id2|title2";
@@ -396,7 +411,7 @@ public class TaskFormProcessorTest extends TestCase
ArrayList<ChildAssociationRef> results = new ArrayList<ChildAssociationRef>(children.length);
for (NodeRef nodeRef : children)
{
ChildAssociationRef child = new ChildAssociationRef(WorkflowModel.ASSOC_PACKAGE_CONTAINS, PCKG_NODE, null, nodeRef);
ChildAssociationRef child = new ChildAssociationRef(ASSOC_PACKAGE_CONTAINS, PCKG_NODE, null, nodeRef);
results.add(child);
}
when(nodeService.getChildAssocs(eq(PCKG_NODE), (QNamePattern)any(), (QNamePattern)any()))
@@ -417,7 +432,7 @@ public class TaskFormProcessorTest extends TestCase
verify(nodeService, times(times))
.addChild(eq(PCKG_NODE),
eq(child),
eq(WorkflowModel.ASSOC_PACKAGE_CONTAINS),
eq(ASSOC_PACKAGE_CONTAINS),
(QName)any());
}
@@ -599,13 +614,13 @@ public class TaskFormProcessorTest extends TestCase
properties.put(PROP_WITH_, with_);
// Add a Package Action property
QName pckgActionGroup = WorkflowModel.PROP_PACKAGE_ACTION_GROUP;
QName pckgActionGroup = PROP_PACKAGE_ACTION_GROUP;
PropertyDefinition pckgAction = MockClassAttributeDefinition.mockPropertyDefinition(pckgActionGroup, textType,
"");
properties.put(pckgActionGroup, pckgAction);
// Add a Package Action property
QName pckgItemActionGroup = WorkflowModel.PROP_PACKAGE_ITEM_ACTION_GROUP;
QName pckgItemActionGroup = PROP_PACKAGE_ITEM_ACTION_GROUP;
PropertyDefinition pckgItemAction = MockClassAttributeDefinition.mockPropertyDefinition(pckgItemActionGroup,
textType, "read_package_item_actions");
properties.put(pckgItemActionGroup, pckgItemAction);
@@ -694,7 +709,7 @@ public class TaskFormProcessorTest extends TestCase
private NodeService makeNodeService()
{
NodeService service = mock(NodeService.class);
when(service.hasAspect(PCKG_NODE, WorkflowModel.ASPECT_WORKFLOW_PACKAGE))
when(service.hasAspect(PCKG_NODE, ASPECT_WORKFLOW_PACKAGE))
.thenReturn(true);
return service;
}

View File

@@ -23,6 +23,16 @@ import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC_DA
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC_DATA_PREFIX;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC_DATA_REMOVED_SUFFIX;
import static org.alfresco.repo.forms.processor.node.FormFieldConstants.PROP_DATA_PREFIX;
import static org.alfresco.repo.workflow.WorkflowModel.ASPECT_WORKFLOW_PACKAGE;
import static org.alfresco.repo.workflow.WorkflowModel.ASSOC_ASSIGNEE;
import static org.alfresco.repo.workflow.WorkflowModel.ASSOC_PACKAGE;
import static org.alfresco.repo.workflow.WorkflowModel.ASSOC_PACKAGE_CONTAINS;
import static org.alfresco.repo.workflow.WorkflowModel.ASSOC_POOLED_ACTORS;
import static org.alfresco.repo.workflow.WorkflowModel.PROP_DESCRIPTION;
import static org.alfresco.repo.workflow.WorkflowModel.PROP_PACKAGE_ACTION_GROUP;
import static org.alfresco.repo.workflow.WorkflowModel.PROP_PACKAGE_ITEM_ACTION_GROUP;
import static org.alfresco.repo.workflow.WorkflowModel.PROP_PRIORITY;
import static org.alfresco.repo.workflow.WorkflowModel.PROP_STATUS;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyMap;
import static org.mockito.Matchers.eq;
@@ -51,7 +61,6 @@ import org.alfresco.repo.forms.FormData.FieldData;
import org.alfresco.repo.forms.processor.node.DefaultFieldProcessor;
import org.alfresco.repo.forms.processor.node.MockClassAttributeDefinition;
import org.alfresco.repo.forms.processor.node.MockFieldProcessorRegistry;
import org.alfresco.repo.workflow.WorkflowModel;
import org.alfresco.service.cmr.dictionary.AssociationDefinition;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService;
@@ -84,12 +93,12 @@ public class WorkflowFormProcessorTest extends TestCase
{
private static final String TASK_DEF_NAME = "TaskDef";
private static final String WF_DEF_NAME = "foo$wf:bar";
private static final QName PRIORITY_NAME = WorkflowModel.PROP_PRIORITY;
private static final QName DESC_NAME = WorkflowModel.PROP_DESCRIPTION;
private static final QName STATUS_NAME = WorkflowModel.PROP_STATUS;
private static final QName PRIORITY_NAME = PROP_PRIORITY;
private static final QName DESC_NAME = PROP_DESCRIPTION;
private static final QName STATUS_NAME = PROP_STATUS;
private static final QName PROP_WITH_ = QName.createQName(NamespaceService.BPM_MODEL_1_0_URI, "some_prop");
private static final QName ACTORS_NAME = WorkflowModel.ASSOC_POOLED_ACTORS;
private static final QName ASSIGNEE_NAME = WorkflowModel.ASSOC_ASSIGNEE;
private static final QName ACTORS_NAME = ASSOC_POOLED_ACTORS;
private static final QName ASSIGNEE_NAME = ASSOC_ASSIGNEE;
private static final QName ASSOC_WITH_ = QName.createQName(NamespaceService.BPM_MODEL_1_0_URI, "some_assoc");
private static final NodeRef FAKE_NODE = new NodeRef(NamespaceService.BPM_MODEL_1_0_URI + "/FakeNode");
private static final NodeRef FAKE_NODE2 = new NodeRef(NamespaceService.BPM_MODEL_1_0_URI + "/FakeNode2");
@@ -198,11 +207,15 @@ public class WorkflowFormProcessorTest extends TestCase
Form form = processForm();
List<String> fieldDefs = form.getFieldDefinitionNames();
assertTrue(fieldDefs.contains(ASSIGNEE_NAME.toPrefixString(namespaceService)));
assertTrue(fieldDefs.contains(ACTORS_NAME.toPrefixString(namespaceService)));
assertTrue(fieldDefs.contains(DESC_NAME.toPrefixString(namespaceService)));
assertTrue(fieldDefs.contains(PRIORITY_NAME.toPrefixString(namespaceService)));
assertTrue(fieldDefs.contains(PackageItemsFieldProcessor.KEY));
// Check 'default ignored fields' are proerly removed from defaults.
assertFalse(fieldDefs.contains(ACTORS_NAME.toPrefixString(namespaceService)));
assertFalse(fieldDefs.contains(PROP_PACKAGE_ACTION_GROUP.toPrefixString(namespaceService)));
assertFalse(fieldDefs.contains(PROP_PACKAGE_ITEM_ACTION_GROUP.toPrefixString(namespaceService)));
Serializable fieldData = (Serializable) Collections.emptyList();
FormData formData = form.getFormData();
assertEquals(fieldData, formData.getFieldData("assoc_bpm_assignee").getValue());
@@ -230,7 +243,7 @@ public class WorkflowFormProcessorTest extends TestCase
// Check adds description property and Package.
assertEquals(2, actualProperties.size());
assertEquals(value, actualProperties.get(DESC_NAME));
assertEquals(PCKG_NODE, actualProperties.get(WorkflowModel.ASSOC_PACKAGE));
assertEquals(PCKG_NODE, actualProperties.get(ASSOC_PACKAGE));
}
public void testPersistPropertyWith_() throws Exception
@@ -317,7 +330,7 @@ public class WorkflowFormProcessorTest extends TestCase
ArrayList<ChildAssociationRef> results = new ArrayList<ChildAssociationRef>(children.length);
for (NodeRef nodeRef : children)
{
ChildAssociationRef child = new ChildAssociationRef(WorkflowModel.ASSOC_PACKAGE_CONTAINS, PCKG_NODE, null, nodeRef);
ChildAssociationRef child = new ChildAssociationRef(ASSOC_PACKAGE_CONTAINS, PCKG_NODE, null, nodeRef);
results.add(child);
}
when(nodeService.getChildAssocs(eq(PCKG_NODE), (QNamePattern)any(), (QNamePattern)any()))
@@ -338,7 +351,7 @@ public class WorkflowFormProcessorTest extends TestCase
verify(nodeService, times(times))
.addChild(eq(PCKG_NODE),
eq(child),
eq(WorkflowModel.ASSOC_PACKAGE_CONTAINS),
eq(ASSOC_PACKAGE_CONTAINS),
(QName)any());
}
@@ -510,13 +523,13 @@ public class WorkflowFormProcessorTest extends TestCase
properties.put(PROP_WITH_, with_);
// Add a Package Action property
QName pckgActionGroup = WorkflowModel.PROP_PACKAGE_ACTION_GROUP;
QName pckgActionGroup = PROP_PACKAGE_ACTION_GROUP;
PropertyDefinition pckgAction = MockClassAttributeDefinition.mockPropertyDefinition(pckgActionGroup, textType,
"add_package_item_actions");
properties.put(pckgActionGroup, pckgAction);
// Add a Package Action property
QName pckgItemActionGroup = WorkflowModel.PROP_PACKAGE_ITEM_ACTION_GROUP;
QName pckgItemActionGroup = PROP_PACKAGE_ITEM_ACTION_GROUP;
PropertyDefinition pckgItemAction = MockClassAttributeDefinition.mockPropertyDefinition(pckgItemActionGroup,
textType, "start_package_item_actions");
properties.put(pckgItemActionGroup, pckgItemAction);
@@ -597,7 +610,7 @@ public class WorkflowFormProcessorTest extends TestCase
private NodeService makeNodeService()
{
NodeService service = mock(NodeService.class);
when(service.hasAspect(PCKG_NODE, WorkflowModel.ASPECT_WORKFLOW_PACKAGE))
when(service.hasAspect(PCKG_NODE, ASPECT_WORKFLOW_PACKAGE))
.thenReturn(true);
return service;
}