mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
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:
@@ -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;
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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.
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user