Merge branch 'release/V2.4' of gitlab.alfresco.com:records-management/records-management into feature-2.4/RM-3148-RuleInheritancePatch

This commit is contained in:
Roy Wetherall
2016-03-30 09:44:33 +11:00
3 changed files with 59 additions and 1 deletions

View File

@@ -189,7 +189,7 @@ public abstract class RecordsManagementActionConditionEvaluatorAbstractBase exte
((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setDescriptionKey(getDescriptionKey()); ((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setDescriptionKey(getDescriptionKey());
((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setAdhocPropertiesAllowed(getAdhocPropertiesAllowed()); ((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setAdhocPropertiesAllowed(getAdhocPropertiesAllowed());
((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setConditionEvaluator(name); ((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setConditionEvaluator(name);
((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setParameterDefinitions(getParameterDefintions()); ((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setLocalizedParameterDefinitions(getLocalizedParameterDefinitions());
} }
return this.actionConditionDefinition; return this.actionConditionDefinition;
} }

View File

@@ -94,4 +94,11 @@ public class DelegateAction extends RMActionExecuterAbstractBase
{ {
return delegateActionExecuter.getActionDefinition().getParameterDefinitions(); return delegateActionExecuter.getActionDefinition().getParameterDefinitions();
} }
@Override
protected void addParameterDefinitions(List<ParameterDefinition> paramList)
{
super.addParameterDefinitions(paramList);
paramList.addAll(delegateActionExecuter.getActionDefinition().getParameterDefinitions());
}
} }

View File

@@ -33,6 +33,7 @@ import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
import org.alfresco.module.org_alfresco_module_rm.test.util.TestActionPropertySubs; import org.alfresco.module.org_alfresco_module_rm.test.util.TestActionPropertySubs;
import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.ActionDefinition; import org.alfresco.service.cmr.action.ActionDefinition;
import org.alfresco.service.cmr.action.ParameterDefinition;
/** /**
* Extended action service test. * Extended action service test.
@@ -178,4 +179,54 @@ public class ExtendedActionServiceTest extends BaseRMTestCase
} }
}); });
} }
/**
* RM-3000
* Tests if the actions extending DelegateAction inherit the parameter definitions from their delegate action
*/
public void testDelegateActions()
{
/*
* set-property-value is the delegate action for setPropertyValue.
*/
assertTrue(inheritsAllParameterDefinitions("setPropertyValue", "set-property-value"));
/*
* rmscript is the delegate action for executeScript.
*/
assertTrue(inheritsAllParameterDefinitions("executeScript", "rmscript"));
/*
* mail is the delegate action for sendEmail.
*/
assertTrue(inheritsAllParameterDefinitions("sendEmail", "mail"));
}
/**
* Checks if the action definition rmAction inherits all the parameter definitions from delegateAction.
* @param rmAction The name of the action definition extending DelegateAction.
* @param delegateAction The name of the delegate action.
* @return true if rmAction inherits all the parameter definitions from delegateAction. false otherwise.
*/
private boolean inheritsAllParameterDefinitions(String rmAction, String delegateAction)
{
/*
* Get the parameter definition list for rmAction
*/
ActionDefinition rmActionDefinition = actionService.getActionDefinition(rmAction);
assertNotNull(rmActionDefinition);
List<ParameterDefinition> rmParameterDefinitions = rmActionDefinition.getParameterDefinitions();
/*
* Get the parameter definition list for the delegate action
*/
ActionDefinition delegateActionDefinition = actionService.getActionDefinition(delegateAction);
assertNotNull(delegateActionDefinition);
List<ParameterDefinition> delegateParameterDefinitions = delegateActionDefinition.getParameterDefinitions();
/*
* Check if rmActionDefinition contains all the elements in rmActionDefinition
*/
return rmParameterDefinitions.containsAll(delegateParameterDefinitions);
}
} }