mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
ACS-3615 Allow actions in rules without any params.
This commit is contained in:
@@ -173,8 +173,10 @@ public class RulesTestsUtils
|
|||||||
final RestActionBodyExecTemplateModel checkOutAction = createCustomActionModel("check-out", checkOutParams);
|
final RestActionBodyExecTemplateModel checkOutAction = createCustomActionModel("check-out", checkOutParams);
|
||||||
final Map<String, Serializable> scriptParams = Map.of("script-ref", "dummy-script-node-id");
|
final Map<String, Serializable> scriptParams = Map.of("script-ref", "dummy-script-node-id");
|
||||||
final RestActionBodyExecTemplateModel scriptAction = createCustomActionModel("script", scriptParams);
|
final RestActionBodyExecTemplateModel scriptAction = createCustomActionModel("script", scriptParams);
|
||||||
|
// The counter action takes no parameters, so check we can omit the "params" entry.
|
||||||
|
final RestActionBodyExecTemplateModel counterAction = createCustomActionModel("counter", null);
|
||||||
final RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
final RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||||
ruleModel.setActions(Arrays.asList(copyAction, checkOutAction, scriptAction));
|
ruleModel.setActions(Arrays.asList(copyAction, checkOutAction, scriptAction, counterAction));
|
||||||
|
|
||||||
return ruleModel;
|
return ruleModel;
|
||||||
}
|
}
|
||||||
|
@@ -26,11 +26,14 @@
|
|||||||
|
|
||||||
package org.alfresco.rest.api.impl.mapper.rules;
|
package org.alfresco.rest.api.impl.mapper.rules;
|
||||||
|
|
||||||
|
import static java.util.Collections.emptyMap;
|
||||||
|
|
||||||
import static org.alfresco.repo.action.access.ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME;
|
import static org.alfresco.repo.action.access.ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.alfresco.repo.action.ActionImpl;
|
import org.alfresco.repo.action.ActionImpl;
|
||||||
@@ -100,8 +103,9 @@ public class RestRuleActionModelMapper implements RestModelMapper<Action, org.al
|
|||||||
|
|
||||||
private org.alfresco.service.cmr.action.Action toServiceAction(Action action)
|
private org.alfresco.service.cmr.action.Action toServiceAction(Action action)
|
||||||
{
|
{
|
||||||
|
final Map<String, Serializable> params = Optional.ofNullable(action.getParams()).orElse(emptyMap());
|
||||||
final Map<String, Serializable> convertedParams =
|
final Map<String, Serializable> convertedParams =
|
||||||
parameterConverter.getConvertedParams(action.getParams(), action.getActionDefinitionId());
|
parameterConverter.getConvertedParams(params, action.getActionDefinitionId());
|
||||||
return new ActionImpl(null, GUID.generate(), action.getActionDefinitionId(), convertedParams);
|
return new ActionImpl(null, GUID.generate(), action.getActionDefinitionId(), convertedParams);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -26,6 +26,8 @@
|
|||||||
|
|
||||||
package org.alfresco.rest.api.impl.mapper.rules;
|
package org.alfresco.rest.api.impl.mapper.rules;
|
||||||
|
|
||||||
|
import static java.util.Collections.emptyMap;
|
||||||
|
|
||||||
import static org.alfresco.repo.action.access.ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME;
|
import static org.alfresco.repo.action.access.ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME;
|
||||||
import static org.alfresco.repo.action.executer.SetPropertyValueActionExecuter.PARAM_PROPERTY;
|
import static org.alfresco.repo.action.executer.SetPropertyValueActionExecuter.PARAM_PROPERTY;
|
||||||
import static org.alfresco.repo.action.executer.SetPropertyValueActionExecuter.PARAM_VALUE;
|
import static org.alfresco.repo.action.executer.SetPropertyValueActionExecuter.PARAM_VALUE;
|
||||||
@@ -89,7 +91,7 @@ public class RestRuleActionModelMapperTest
|
|||||||
public void testToRestModelWithNullValues()
|
public void testToRestModelWithNullValues()
|
||||||
{
|
{
|
||||||
final org.alfresco.service.cmr.action.Action actionServiceModel = new ActionImpl(null, null, null);
|
final org.alfresco.service.cmr.action.Action actionServiceModel = new ActionImpl(null, null, null);
|
||||||
final Action expectedAction = Action.builder().params(Collections.emptyMap()).create();
|
final Action expectedAction = Action.builder().params(emptyMap()).create();
|
||||||
|
|
||||||
//when
|
//when
|
||||||
final Action actualAction = objectUnderTest.toRestModel(actionServiceModel);
|
final Action actualAction = objectUnderTest.toRestModel(actionServiceModel);
|
||||||
@@ -122,4 +124,16 @@ public class RestRuleActionModelMapperTest
|
|||||||
assertThat(serviceModelAction).isNull();
|
assertThat(serviceModelAction).isNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testToServiceModelWithNullParams()
|
||||||
|
{
|
||||||
|
final Action action = Action.builder().actionDefinitionId(ACTION_DEFINITION_NAME).params(null).create();
|
||||||
|
final List<Action> actions = List.of(action);
|
||||||
|
|
||||||
|
//when
|
||||||
|
final org.alfresco.service.cmr.action.Action serviceModelAction = objectUnderTest.toServiceModel(actions);
|
||||||
|
then(parameterConverter).should().getConvertedParams(emptyMap(), ACTION_DEFINITION_NAME);
|
||||||
|
then(parameterConverter).shouldHaveNoMoreInteractions();
|
||||||
|
assertThat(serviceModelAction).isNotNull();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user