mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
ACS-3651 Convert RulesTestsUtils to a service bean.
Update a few dummy folder nodes to use real folders.
This commit is contained in:
@@ -5,6 +5,7 @@ import java.lang.reflect.Method;
|
||||
import org.alfresco.dataprep.WorkflowService;
|
||||
import org.alfresco.rest.core.RestProperties;
|
||||
import org.alfresco.rest.core.RestWrapper;
|
||||
import org.alfresco.rest.rules.RulesTestsUtils;
|
||||
import org.alfresco.utility.LogFactory;
|
||||
import org.alfresco.utility.TasProperties;
|
||||
import org.alfresco.utility.data.DataContent;
|
||||
@@ -61,6 +62,9 @@ public abstract class RestTest extends AbstractTestNGSpringContextTests
|
||||
@Autowired
|
||||
protected WorkflowService workflow;
|
||||
|
||||
@Autowired
|
||||
protected RulesTestsUtils rulesUtils;
|
||||
|
||||
protected SiteModel testSite;
|
||||
|
||||
@BeforeSuite(alwaysRun = true)
|
||||
|
@@ -26,21 +26,12 @@
|
||||
package org.alfresco.rest.rules;
|
||||
|
||||
import static java.util.stream.Collectors.toList;
|
||||
|
||||
import static org.alfresco.rest.actions.access.AccessRestrictionUtil.ERROR_MESSAGE_ACCESS_RESTRICTED;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.ID;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.INVERTED;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.IS_SHARED;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.RULE_NAME_DEFAULT;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createAddAudioAspectAction;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createCompositeCondition;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createCustomActionModel;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModel;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModelWithDefaultValues;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModelWithModifiedValues;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleWithPrivateAction;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createSimpleCondition;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createVariousActions;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createVariousConditions;
|
||||
import static org.alfresco.utility.constants.UserRole.SiteCollaborator;
|
||||
import static org.alfresco.utility.constants.UserRole.SiteConsumer;
|
||||
import static org.alfresco.utility.constants.UserRole.SiteContributor;
|
||||
@@ -98,12 +89,12 @@ public class CreateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void createRule()
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModelWithModifiedValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithModifiedValues();
|
||||
|
||||
RestRuleModel rule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
|
||||
RestRuleModel expectedRuleModel = createRuleModelWithModifiedValues();
|
||||
RestRuleModel expectedRuleModel = rulesUtils.createRuleModelWithModifiedValues();
|
||||
restClient.assertStatusCodeIs(CREATED);
|
||||
rule.assertThat().isEqualTo(expectedRuleModel, ID, IS_SHARED)
|
||||
.assertThat().field(ID).isNotNull()
|
||||
@@ -145,7 +136,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES })
|
||||
public void createRuleWithEmptyName()
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModel("");
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel("");
|
||||
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
|
||||
@@ -157,7 +148,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES })
|
||||
public void duplicateRuleNameIsAcceptable()
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModel("duplicateRuleName");
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel("duplicateRuleName");
|
||||
|
||||
STEP("Create two identical rules");
|
||||
RestRuleModel ruleA = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
@@ -244,7 +235,7 @@ public class CreateRulesTests extends RestTest
|
||||
{
|
||||
STEP("Create a list of rules in one POST request");
|
||||
List<String> ruleNames = List.of("ruleA", "ruleB", "ruleC");
|
||||
List<RestRuleModel> ruleModels = ruleNames.stream().map(RulesTestsUtils::createRuleModel).collect(toList());
|
||||
List<RestRuleModel> ruleModels = ruleNames.stream().map(rulesUtils::createRuleModel).collect(toList());
|
||||
|
||||
RestRuleModelsCollection rules = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createListOfRules(ruleModels);
|
||||
@@ -263,10 +254,10 @@ public class CreateRulesTests extends RestTest
|
||||
public void createRulesWithOneError()
|
||||
{
|
||||
STEP("Try to create a three rules but the middle one has an error.");
|
||||
RestRuleModel ruleA = createRuleModel("ruleA");
|
||||
RestRuleModel ruleB = createRuleModel("");
|
||||
RestRuleModel ruleA = rulesUtils.createRuleModel("ruleA");
|
||||
RestRuleModel ruleB = rulesUtils.createRuleModel("");
|
||||
// Don't set a name for Rule B.
|
||||
RestRuleModel ruleC = createRuleModel("ruleC");
|
||||
RestRuleModel ruleC = rulesUtils.createRuleModel("ruleC");
|
||||
List<RestRuleModel> ruleModels = List.of(ruleA, ruleB, ruleC);
|
||||
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet().createListOfRules(ruleModels);
|
||||
@@ -279,7 +270,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES })
|
||||
public void createRuleWithoutDescription()
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
UserModel admin = dataUser.getAdminUser();
|
||||
|
||||
RestRuleModel rule = restClient.authenticateUser(admin).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -295,7 +286,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES })
|
||||
public void createRuleWithoutTriggers()
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
UserModel admin = dataUser.getAdminUser();
|
||||
|
||||
RestRuleModel rule = restClient.authenticateUser(admin).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -311,7 +302,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES })
|
||||
public void createRuleWithoutErrorScript()
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
UserModel admin = dataUser.getAdminUser();
|
||||
|
||||
RestRuleModel rule = restClient.authenticateUser(admin).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -327,7 +318,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES })
|
||||
public void createRuleWithSharedFlag()
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
ruleModel.setIsShared(true);
|
||||
UserModel admin = dataUser.getAdminUser();
|
||||
|
||||
@@ -344,7 +335,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void createRuleAndIncludeFieldsInResponse()
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModel("ruleName");
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel("ruleName");
|
||||
|
||||
RestRuleModel rule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.include("isShared")
|
||||
@@ -363,7 +354,7 @@ public class CreateRulesTests extends RestTest
|
||||
STEP(String.format("Add a user with '%s' role in the private site's folder", userRole.toString()));
|
||||
UserModel userWithRole = dataUser.createRandomTestUser();
|
||||
dataUser.addUserToSite(userWithRole, privateSite, userRole);
|
||||
RestRuleModel ruleModel = createRuleModel("testRule", List.of(createAddAudioAspectAction()));
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel("testRule", List.of(rulesUtils.createAddAudioAspectAction()));
|
||||
|
||||
return restClient.authenticateUser(userWithRole).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
}
|
||||
@@ -377,10 +368,10 @@ public class CreateRulesTests extends RestTest
|
||||
final UserModel admin = dataUser.getAdminUser();
|
||||
|
||||
final RestRuleModel rule = restClient.authenticateUser(admin).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(createVariousActions());
|
||||
.createSingleRule(rulesUtils.createVariousActions());
|
||||
|
||||
RestRuleModel expectedRuleModel = createRuleModelWithDefaultValues();
|
||||
expectedRuleModel.setActions(createVariousActions().getActions());
|
||||
RestRuleModel expectedRuleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
expectedRuleModel.setActions(rulesUtils.createVariousActions().getActions());
|
||||
expectedRuleModel.setTriggers(List.of("inbound"));
|
||||
|
||||
restClient.assertStatusCodeIs(CREATED);
|
||||
@@ -393,7 +384,7 @@ public class CreateRulesTests extends RestTest
|
||||
public void createRuleWithActions_userCannotUsePrivateAction()
|
||||
{
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(createRuleWithPrivateAction());
|
||||
.createSingleRule(rulesUtils.createRuleWithPrivateAction());
|
||||
|
||||
restClient.assertStatusCodeIs(FORBIDDEN)
|
||||
.assertLastError().containsSummary(ERROR_MESSAGE_ACCESS_RESTRICTED);
|
||||
@@ -404,7 +395,7 @@ public class CreateRulesTests extends RestTest
|
||||
public void createRuleWithActions_adminCanUsePrivateAction()
|
||||
{
|
||||
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(createRuleWithPrivateAction());
|
||||
.createSingleRule(rulesUtils.createRuleWithPrivateAction());
|
||||
|
||||
restClient.assertStatusCodeIs(CREATED);
|
||||
}
|
||||
@@ -415,7 +406,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void createRuleWithoutActionsShouldFail()
|
||||
{
|
||||
final RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
final RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
ruleModel.setActions(null);
|
||||
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -431,7 +422,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void createRuleWithInvalidActionsShouldFail()
|
||||
{
|
||||
final RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
final RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
final RestActionBodyExecTemplateModel invalidAction = new RestActionBodyExecTemplateModel();
|
||||
final String actionDefinitionId = "invalid-definition-value";
|
||||
invalidAction.setActionDefinitionId(actionDefinitionId);
|
||||
@@ -451,7 +442,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void createRuleWithMissingActionParametersShouldFail()
|
||||
{
|
||||
final RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
final RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
final RestActionBodyExecTemplateModel invalidAction = new RestActionBodyExecTemplateModel();
|
||||
final String actionDefinitionId = "copy";
|
||||
invalidAction.setActionDefinitionId(actionDefinitionId);
|
||||
@@ -472,11 +463,11 @@ public class CreateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void createRuleWithActionParameterNotFulfillingConstraint()
|
||||
{
|
||||
final RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
final RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
final String actionDefinitionId = "script";
|
||||
final String scriptRef = "script-ref";
|
||||
final String scriptNodeId = "dummy-script-node-id";
|
||||
final RestActionBodyExecTemplateModel scriptAction = createCustomActionModel(actionDefinitionId, Map.of(scriptRef, scriptNodeId));
|
||||
final RestActionBodyExecTemplateModel scriptAction = rulesUtils.createCustomActionModel(actionDefinitionId, Map.of(scriptRef, scriptNodeId));
|
||||
ruleModel.setActions(List.of(scriptAction));
|
||||
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -495,7 +486,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void createRuleWithoutInvalidActionParameterShouldFail()
|
||||
{
|
||||
final RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
final RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
final RestActionBodyExecTemplateModel invalidAction = new RestActionBodyExecTemplateModel();
|
||||
final String actionDefinitionId = "add-features";
|
||||
invalidAction.setActionDefinitionId(actionDefinitionId);
|
||||
@@ -517,7 +508,7 @@ public class CreateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void createRuleWithoutMandatoryActionParametersShouldFail()
|
||||
{
|
||||
final RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
final RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
final RestActionBodyExecTemplateModel invalidAction = new RestActionBodyExecTemplateModel();
|
||||
final String actionDefinitionId = "copy";
|
||||
invalidAction.setActionDefinitionId(actionDefinitionId);
|
||||
@@ -537,14 +528,14 @@ public class CreateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void createRuleWithConditions()
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
ruleModel.setConditions(createVariousConditions());
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
ruleModel.setConditions(rulesUtils.createVariousConditions());
|
||||
|
||||
RestRuleModel rule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
|
||||
RestRuleModel expectedRuleModel = createRuleModelWithDefaultValues();
|
||||
expectedRuleModel.setConditions(createVariousConditions());
|
||||
RestRuleModel expectedRuleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
expectedRuleModel.setConditions(rulesUtils.createVariousConditions());
|
||||
expectedRuleModel.setTriggers(List.of("inbound"));
|
||||
restClient.assertStatusCodeIs(CREATED);
|
||||
rule.assertThat().isEqualTo(expectedRuleModel, ID, IS_SHARED);
|
||||
@@ -556,13 +547,13 @@ public class CreateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void createRuleWithConditions_emptyConditionList()
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
ruleModel.setConditions(createCompositeCondition(null));
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
ruleModel.setConditions(rulesUtils.createCompositeCondition(null));
|
||||
|
||||
RestRuleModel rule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
|
||||
RestRuleModel expectedRuleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel expectedRuleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
expectedRuleModel.setTriggers(List.of("inbound"));
|
||||
restClient.assertStatusCodeIs(CREATED);
|
||||
rule.assertThat().isEqualTo(expectedRuleModel, ID, IS_SHARED);
|
||||
@@ -576,12 +567,12 @@ public class CreateRulesTests extends RestTest
|
||||
{
|
||||
STEP("Try to create a rule with non existing category in conditions.");
|
||||
String fakeCategoryId = "bdba5f9f-fake-id22-803b-349bcfd06fd1";
|
||||
RestCompositeConditionDefinitionModel conditions = createCompositeCondition(List.of(
|
||||
createCompositeCondition(!INVERTED, List.of(
|
||||
createSimpleCondition("category", "equals", fakeCategoryId)
|
||||
RestCompositeConditionDefinitionModel conditions = rulesUtils.createCompositeCondition(List.of(
|
||||
rulesUtils.createCompositeCondition(!INVERTED, List.of(
|
||||
rulesUtils.createSimpleCondition("category", "equals", fakeCategoryId)
|
||||
))
|
||||
));
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
ruleModel.setConditions(conditions);
|
||||
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
|
@@ -27,7 +27,6 @@ package org.alfresco.rest.rules;
|
||||
|
||||
import static java.util.stream.Collectors.toList;
|
||||
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModel;
|
||||
import static org.alfresco.utility.constants.UserRole.SiteCollaborator;
|
||||
import static org.alfresco.utility.constants.UserRole.SiteContributor;
|
||||
import static org.alfresco.utility.constants.UserRole.SiteManager;
|
||||
@@ -83,7 +82,7 @@ public class DeleteRulesTests extends RestTest
|
||||
final FolderModel ruleFolder = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
final List<RestRuleModel> createdRules = Stream.of("ruleA", "ruleB", "ruleC")
|
||||
.map(ruleName -> {
|
||||
RestRuleModel ruleModel = createRuleModel(ruleName);
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel(ruleName);
|
||||
return restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
})
|
||||
@@ -187,7 +186,7 @@ public class DeleteRulesTests extends RestTest
|
||||
final UserModel privateUser = dataUser.createRandomTestUser();
|
||||
final SiteModel privateSite = dataSite.usingUser(privateUser).createPrivateRandomSite();
|
||||
final FolderModel privateFolder = dataContent.usingUser(privateUser).usingSite(privateSite).createFolder();
|
||||
final RestRuleModel ruleModel = createRuleModel("Private site rule");
|
||||
final RestRuleModel ruleModel = rulesUtils.createRuleModel("Private site rule");
|
||||
final RestRuleModel createdRule =
|
||||
restClient.authenticateUser(privateUser).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
@@ -228,7 +227,7 @@ public class DeleteRulesTests extends RestTest
|
||||
final UserModel privateUser = dataUser.createRandomTestUser();
|
||||
final SiteModel privateSite = dataSite.usingUser(privateUser).createPrivateRandomSite();
|
||||
final FolderModel privateFolder = dataContent.usingUser(privateUser).usingSite(privateSite).createFolder();
|
||||
final RestRuleModel ruleModel = createRuleModel("Private site rule");
|
||||
final RestRuleModel ruleModel = rulesUtils.createRuleModel("Private site rule");
|
||||
final RestRuleModel createdRule =
|
||||
restClient.authenticateUser(privateUser).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
@@ -248,7 +247,7 @@ public class DeleteRulesTests extends RestTest
|
||||
private RestRuleModel createRule(FolderModel ruleFolder)
|
||||
{
|
||||
STEP("Create a rule in the folder");
|
||||
final RestRuleModel ruleModel = createRuleModel("Test rule");
|
||||
final RestRuleModel ruleModel = rulesUtils.createRuleModel("Test rule");
|
||||
return restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
}
|
||||
}
|
||||
|
@@ -28,16 +28,9 @@ package org.alfresco.rest.rules;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.AUDIO_ASPECT;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.LOCKABLE_ASPECT;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.RULE_NAME_DEFAULT;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.assertThat;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createAddAspectAction;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createCustomActionModel;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleExecutionRequest;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModel;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModelWithDefaultValues;
|
||||
import static org.alfresco.utility.report.log.Step.STEP;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.dataprep.CMISUtil;
|
||||
import org.alfresco.rest.RestTest;
|
||||
@@ -54,7 +47,6 @@ import org.alfresco.utility.model.UserModel;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
import org.testng.annotations.Ignore;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
@@ -91,11 +83,11 @@ public class ExecuteRulesTests extends RestTest
|
||||
childFolderFile = dataContent.usingUser(user).usingResource(childFolder).createContent(CMISUtil.DocumentType.TEXT_PLAIN);
|
||||
|
||||
STEP("Create rules for parent and rule folders");
|
||||
RestActionBodyExecTemplateModel addLockableAspectAction = createAddAspectAction(LOCKABLE_ASPECT);
|
||||
RestRuleModel ruleModel = createRuleModel(RULE_NAME_DEFAULT, List.of(addLockableAspectAction));
|
||||
RestActionBodyExecTemplateModel addLockableAspectAction = rulesUtils.createAddAspectAction(LOCKABLE_ASPECT);
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel(RULE_NAME_DEFAULT, List.of(addLockableAspectAction));
|
||||
ruleModel.setIsInheritable(true);
|
||||
parentFolderRule = restClient.authenticateUser(user).withCoreAPI().usingNode(parentFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
childFolderRule = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolder).usingDefaultRuleSet().createSingleRule(createRuleModelWithDefaultValues());
|
||||
childFolderRule = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolder).usingDefaultRuleSet().createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -107,17 +99,17 @@ public class ExecuteRulesTests extends RestTest
|
||||
STEP("Check if file aspects don't contain Audio one");
|
||||
RestNodeModel fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).notContainsAspects(AUDIO_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).notContainsAspects(AUDIO_ASPECT);
|
||||
|
||||
STEP("Execute rule");
|
||||
RestRuleExecutionModel executionResult = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolder).executeRules(createRuleExecutionRequest());
|
||||
RestRuleExecutionModel executionResult = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolder).executeRules(rulesUtils.createRuleExecutionRequest());
|
||||
restClient.assertStatusCodeIs(HttpStatus.CREATED);
|
||||
executionResult.assertThat().field("isEachSubFolderIncluded").is(false);
|
||||
|
||||
STEP("Check if only Audio aspect was added");
|
||||
fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).containsAspects(AUDIO_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).containsAspects(AUDIO_ASPECT);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -129,10 +121,10 @@ public class ExecuteRulesTests extends RestTest
|
||||
STEP("Check if file aspects don't contain Audio and Lockable ones");
|
||||
RestNodeModel fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).notContainsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).notContainsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
|
||||
STEP("Execute rules including inherited rules");
|
||||
RestRuleExecutionModel ruleExecutionRequest = createRuleExecutionRequest();
|
||||
RestRuleExecutionModel ruleExecutionRequest = rulesUtils.createRuleExecutionRequest();
|
||||
RestRuleExecutionModel executionResult = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolder).executeRules(ruleExecutionRequest);
|
||||
restClient.assertStatusCodeIs(HttpStatus.CREATED);
|
||||
executionResult.assertThat().field("isEachSubFolderIncluded").is(false);
|
||||
@@ -140,7 +132,7 @@ public class ExecuteRulesTests extends RestTest
|
||||
STEP("Check if Audio and Lockable aspects were added");
|
||||
fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).containsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).containsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -152,15 +144,15 @@ public class ExecuteRulesTests extends RestTest
|
||||
STEP("Check if parent folder's file aspects don't contain Audio and Lockable ones");
|
||||
RestNodeModel fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(parentFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).notContainsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).notContainsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
|
||||
STEP("Check if child folder's file aspects don't contain Audio and Lockable ones");
|
||||
fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).notContainsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).notContainsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
|
||||
STEP("Execute rules on parent folder including sub-folders");
|
||||
RestRuleExecutionModel ruleExecutionRequest = createRuleExecutionRequest();
|
||||
RestRuleExecutionModel ruleExecutionRequest = rulesUtils.createRuleExecutionRequest();
|
||||
ruleExecutionRequest.setIsEachSubFolderIncluded(true);
|
||||
RestRuleExecutionModel executionResult = restClient.authenticateUser(user).withCoreAPI().usingNode(parentFolder).executeRules(ruleExecutionRequest);
|
||||
restClient.assertStatusCodeIs(HttpStatus.CREATED);
|
||||
@@ -169,14 +161,14 @@ public class ExecuteRulesTests extends RestTest
|
||||
STEP("Check if Lockable aspects was added to parent folder's file");
|
||||
fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(parentFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode)
|
||||
rulesUtils.assertThat(fileNode)
|
||||
.containsAspects(LOCKABLE_ASPECT)
|
||||
.notContainsAspects(AUDIO_ASPECT);
|
||||
|
||||
STEP("Check if Audio and Lockable aspects were added to child folder's file");
|
||||
fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode)
|
||||
rulesUtils.assertThat(fileNode)
|
||||
.containsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
}
|
||||
|
||||
@@ -187,24 +179,24 @@ public class ExecuteRulesTests extends RestTest
|
||||
public void executeRules_disabledRule()
|
||||
{
|
||||
STEP("Disable child rules");
|
||||
RestRuleModel updatedChildRule = createRuleModelWithDefaultValues();
|
||||
RestRuleModel updatedChildRule = rulesUtils.createRuleModelWithDefaultValues();
|
||||
updatedChildRule.setIsEnabled(false);
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(childFolder).usingDefaultRuleSet().updateRule(childFolderRule.getId(), updatedChildRule);
|
||||
|
||||
STEP("Check if file aspects don't contain Audio one");
|
||||
RestNodeModel fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).notContainsAspects(AUDIO_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).notContainsAspects(AUDIO_ASPECT);
|
||||
|
||||
STEP("Execute rule");
|
||||
RestRuleExecutionModel executionResult = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolder).executeRules(createRuleExecutionRequest());
|
||||
RestRuleExecutionModel executionResult = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolder).executeRules(rulesUtils.createRuleExecutionRequest());
|
||||
restClient.assertStatusCodeIs(HttpStatus.CREATED);
|
||||
executionResult.assertThat().field("isEachSubFolderIncluded").is(false);
|
||||
|
||||
STEP("Check if Audio aspect is still missing");
|
||||
fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).notContainsAspects(AUDIO_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).notContainsAspects(AUDIO_ASPECT);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -214,24 +206,24 @@ public class ExecuteRulesTests extends RestTest
|
||||
public void executeRules_notInheritableRule()
|
||||
{
|
||||
STEP("Set parent rule as not inheritable");
|
||||
RestRuleModel updatedParentRule = createRuleModelWithDefaultValues();
|
||||
RestRuleModel updatedParentRule = rulesUtils.createRuleModelWithDefaultValues();
|
||||
updatedParentRule.setIsInheritable(false);
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(parentFolder).usingDefaultRuleSet().updateRule(parentFolderRule.getId(), updatedParentRule);
|
||||
|
||||
STEP("Check if file aspects don't contain Audio and Lockable ones");
|
||||
RestNodeModel fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).notContainsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).notContainsAspects(AUDIO_ASPECT, LOCKABLE_ASPECT);
|
||||
|
||||
STEP("Execute child folder rules including inherited rules");
|
||||
RestRuleExecutionModel executionResult = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolder).executeRules(createRuleExecutionRequest());
|
||||
RestRuleExecutionModel executionResult = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolder).executeRules(rulesUtils.createRuleExecutionRequest());
|
||||
restClient.assertStatusCodeIs(HttpStatus.CREATED);
|
||||
executionResult.assertThat().field("isEachSubFolderIncluded").is(false);
|
||||
|
||||
STEP("Check if Audio aspect is present and Lockable is still missing");
|
||||
fileNode = restClient.authenticateUser(user).withCoreAPI().usingNode(childFolderFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode)
|
||||
rulesUtils.assertThat(fileNode)
|
||||
.containsAspects(AUDIO_ASPECT)
|
||||
.notContainsAspects(LOCKABLE_ASPECT);
|
||||
}
|
||||
@@ -246,10 +238,10 @@ public class ExecuteRulesTests extends RestTest
|
||||
SiteModel privateSite = dataSite.usingAdmin().createPrivateRandomSite();
|
||||
FolderModel privateFolder = dataContent.usingAdmin().usingSite(privateSite).createFolder();
|
||||
dataContent.usingAdmin().usingResource(privateFolder).createContent(CMISUtil.DocumentType.TEXT_PLAIN);
|
||||
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet().createSingleRule(createRuleModelWithDefaultValues());
|
||||
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet().createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
|
||||
STEP("Try to execute private folder's rules by user");
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(privateFolder).executeRules(createRuleExecutionRequest());
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(privateFolder).executeRules(rulesUtils.createRuleExecutionRequest());
|
||||
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
|
||||
}
|
||||
|
||||
@@ -264,11 +256,11 @@ public class ExecuteRulesTests extends RestTest
|
||||
SiteModel privateSite = dataSite.usingAdmin().createPrivateRandomSite();
|
||||
FolderModel privateFolder = dataContent.usingAdmin().usingSite(privateSite).createFolder();
|
||||
dataContent.usingAdmin().usingResource(privateFolder).createContent(CMISUtil.DocumentType.TEXT_PLAIN);
|
||||
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet().createSingleRule(createRuleModelWithDefaultValues());
|
||||
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet().createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
dataUser.usingAdmin().addUserToSite(contributor, privateSite, UserRole.SiteContributor);
|
||||
|
||||
STEP("Try to execute private folder's rules by contributor");
|
||||
restClient.authenticateUser(contributor).withCoreAPI().usingNode(privateFolder).executeRules(createRuleExecutionRequest());
|
||||
restClient.authenticateUser(contributor).withCoreAPI().usingNode(privateFolder).executeRules(rulesUtils.createRuleExecutionRequest());
|
||||
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
|
||||
}
|
||||
|
||||
@@ -284,22 +276,22 @@ public class ExecuteRulesTests extends RestTest
|
||||
SiteModel privateSite = dataSite.usingAdmin().createPrivateRandomSite();
|
||||
FolderModel privateFolder = dataContent.usingAdmin().usingSite(privateSite).createFolder();
|
||||
FileModel privateFile = dataContent.usingAdmin().usingResource(privateFolder).createContent(CMISUtil.DocumentType.TEXT_PLAIN);
|
||||
restClient.authenticateUser(admin).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet().createSingleRule(createRuleModelWithDefaultValues());
|
||||
restClient.authenticateUser(admin).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet().createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
dataUser.usingAdmin().addUserToSite(collaborator, privateSite, UserRole.SiteCollaborator);
|
||||
|
||||
STEP("Check if file aspects don't contain Audio one");
|
||||
RestNodeModel fileNode = restClient.authenticateUser(admin).withCoreAPI().usingNode(privateFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).notContainsAspects(AUDIO_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).notContainsAspects(AUDIO_ASPECT);
|
||||
|
||||
STEP("Execute private folder's rules by collaborator");
|
||||
restClient.authenticateUser(collaborator).withCoreAPI().usingNode(privateFolder).executeRules(createRuleExecutionRequest());
|
||||
restClient.authenticateUser(collaborator).withCoreAPI().usingNode(privateFolder).executeRules(rulesUtils.createRuleExecutionRequest());
|
||||
restClient.assertStatusCodeIs(HttpStatus.CREATED);
|
||||
|
||||
STEP("Check if Audio aspect is present");
|
||||
fileNode = restClient.authenticateUser(admin).withCoreAPI().usingNode(privateFile).getNode();
|
||||
restClient.assertStatusCodeIs(HttpStatus.OK);
|
||||
assertThat(fileNode).containsAspects(AUDIO_ASPECT);
|
||||
rulesUtils.assertThat(fileNode).containsAspects(AUDIO_ASPECT);
|
||||
}
|
||||
|
||||
//TODO: add test(s) that would cover handling executing broken rule and/or broken rule execution (ACS-3699)
|
||||
|
@@ -25,7 +25,6 @@
|
||||
*/
|
||||
package org.alfresco.rest.rules;
|
||||
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModelWithModifiedValues;
|
||||
import static org.alfresco.utility.report.log.Step.STEP;
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
@@ -72,9 +71,9 @@ public class GetInheritedRulesTests extends RestTest
|
||||
STEP("Create a parent and child folder, each with inheriting rules");
|
||||
FolderModel parent = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
FolderModel child = dataContent.usingUser(user).usingResource(parent).createFolder();
|
||||
RestRuleModel parentRule = createRuleModelWithModifiedValues();
|
||||
RestRuleModel parentRule = rulesUtils.createRuleModelWithDefaultValues();
|
||||
parentRule = restClient.authenticateUser(user).withCoreAPI().usingNode(parent).usingDefaultRuleSet().createSingleRule(parentRule);
|
||||
RestRuleModel childRule = createRuleModelWithModifiedValues();
|
||||
RestRuleModel childRule = rulesUtils.createRuleModelWithDefaultValues();
|
||||
childRule = restClient.authenticateUser(user).withCoreAPI().usingNode(child).usingDefaultRuleSet().createSingleRule(childRule);
|
||||
|
||||
STEP("Get the rules in the default rule set for the child folder");
|
||||
@@ -111,9 +110,9 @@ public class GetInheritedRulesTests extends RestTest
|
||||
FolderModel folderB = dataContent.usingUser(user).usingResource(folderA).createFolder();
|
||||
FolderModel folderC = dataContent.usingUser(user).usingResource(folderB).createFolder();
|
||||
FolderModel folderD = dataContent.usingUser(user).usingResource(folderC).createFolder();
|
||||
RestRuleModel ruleB = restClient.authenticateUser(user).withCoreAPI().usingNode(folderB).usingDefaultRuleSet().createSingleRule(createRuleModelWithModifiedValues());
|
||||
RestRuleModel ruleC = restClient.authenticateUser(user).withCoreAPI().usingNode(folderC).usingDefaultRuleSet().createSingleRule(createRuleModelWithModifiedValues());
|
||||
RestRuleModel ruleD = restClient.authenticateUser(user).withCoreAPI().usingNode(folderD).usingDefaultRuleSet().createSingleRule(createRuleModelWithModifiedValues());
|
||||
RestRuleModel ruleB = restClient.authenticateUser(user).withCoreAPI().usingNode(folderB).usingDefaultRuleSet().createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
RestRuleModel ruleC = restClient.authenticateUser(user).withCoreAPI().usingNode(folderC).usingDefaultRuleSet().createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
RestRuleModel ruleD = restClient.authenticateUser(user).withCoreAPI().usingNode(folderD).usingDefaultRuleSet().createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
STEP("Link folderA to ruleSetD");
|
||||
RestRuleSetLinkModel linkModel = new RestRuleSetLinkModel();
|
||||
linkModel.setId(folderD.getNodeRef());
|
||||
|
@@ -26,9 +26,6 @@
|
||||
package org.alfresco.rest.rules;
|
||||
|
||||
import static org.alfresco.rest.requests.RuleSettings.IS_INHERITANCE_ENABLED;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModel;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModelWithDefaultValues;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModelWithModifiedValues;
|
||||
import static org.alfresco.utility.report.log.Step.STEP;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.springframework.http.HttpStatus.FORBIDDEN;
|
||||
@@ -87,7 +84,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
.usingIsInheritanceEnabledRuleSetting().updateSetting(doesntInherit);
|
||||
|
||||
STEP("Create a rule in the folder.");
|
||||
RestRuleModel ruleModel = createRuleModel("ruleName");
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel("ruleName");
|
||||
rule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
|
||||
@@ -100,7 +97,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
STEP("Use admin to create a private site containing a rule in a rule set that can be inherited.");
|
||||
SiteModel privateSite = dataSite.usingAdmin().createPrivateRandomSite();
|
||||
privateFolder = dataContent.usingAdmin().usingSite(privateSite).createFolder();
|
||||
coreAPIForAdmin().usingNode(privateFolder).usingDefaultRuleSet().createSingleRule(createRuleModelWithModifiedValues());
|
||||
coreAPIForAdmin().usingNode(privateFolder).usingDefaultRuleSet().createSingleRule(rulesUtils.createRuleModelWithModifiedValues());
|
||||
}
|
||||
|
||||
/** Check we can get an empty list of rule sets. */
|
||||
@@ -170,7 +167,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
coreAPIForAdmin().usingNode(parentFolder).createRuleLink(linkModel);
|
||||
|
||||
STEP("Create a rule on the child folder.");
|
||||
coreAPIForUser().usingNode(childFolder).usingDefaultRuleSet().createSingleRule(createRuleModelWithDefaultValues());
|
||||
coreAPIForUser().usingNode(childFolder).usingDefaultRuleSet().createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
|
||||
STEP("Check admin can view both rule sets.");
|
||||
RestRuleSetModelsCollection adminViewOfRuleSets = coreAPIForAdmin().usingNode(childFolder).getListOfRuleSets();
|
||||
@@ -355,7 +352,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
FolderModel descendantFolder = dataContent.usingUser(user).usingResource(linkingFolder).createFolder();
|
||||
|
||||
STEP("Create an inheritable rule in the folder and get the rule set id.");
|
||||
RestRuleModel ruleModel = createRuleModelWithModifiedValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithModifiedValues();
|
||||
coreAPIForUser().usingNode(folder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
RestRuleSetModelsCollection ruleSets = coreAPIForUser().usingNode(folder).getListOfRuleSets();
|
||||
String ruleSetId = ruleSets.getEntries().get(0).onModel().getId();
|
||||
@@ -397,7 +394,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
dataUser.removeUserFromSite(user, siteModel);
|
||||
|
||||
STEP("Create a rule in the folder and link to it from the other two.");
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
coreAPIForUser().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
RestRuleSetModelsCollection ruleSets = coreAPIForAdmin().usingNode(ruleFolder).getListOfRuleSets();
|
||||
String ruleSetId = ruleSets.getEntries().get(0).onModel().getId();
|
||||
@@ -427,7 +424,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
STEP("Create a folder with a rule set and a private child folder to inherit it");
|
||||
FolderModel ruleFolder = dataContent.usingUser(user).usingSite(siteModel).createFolder();
|
||||
dataContent.usingAdmin().usingResource(ruleFolder).createFolder();
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
coreAPIForUser().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
|
||||
STEP("Remove the user from the site");
|
||||
@@ -451,7 +448,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
STEP("Create a site and a folder with a rule");
|
||||
SiteModel siteModel = dataSite.usingUser(user).createPublicRandomSite();
|
||||
FolderModel ruleFolder = dataContent.usingUser(user).usingSite(siteModel).createFolder();
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
coreAPIForUser().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
|
||||
STEP("Create a second folder in the site that links to the rule set");
|
||||
@@ -479,7 +476,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
STEP("Create a site and a folder with a rule");
|
||||
SiteModel siteModel = dataSite.usingUser(user).createPublicRandomSite();
|
||||
FolderModel ruleFolder = dataContent.usingUser(user).usingSite(siteModel).createFolder();
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
coreAPIForUser().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
|
||||
STEP("Create a second folder in the site that links to the rule set");
|
||||
@@ -508,7 +505,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
|
||||
STEP("Create a folder with a rule set");
|
||||
FolderModel ruleFolder = dataContent.usingUser(user).usingSite(siteModel).createFolder();
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
coreAPIForUser().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
|
||||
STEP("Create a private folder linking to the rule set");
|
||||
@@ -540,7 +537,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
STEP("Create a site, a folder with a rule and a child folder that inherits it");
|
||||
SiteModel siteModel = dataSite.usingUser(user).createPublicRandomSite();
|
||||
FolderModel ruleFolder = dataContent.usingUser(user).usingSite(siteModel).createFolder();
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
coreAPIForUser().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
dataContent.usingUser(user).usingResource(ruleFolder).createFolder();
|
||||
|
||||
@@ -571,7 +568,7 @@ public class GetRuleSetsTests extends RestTest
|
||||
coreAPIForAdmin().usingNode(parentFolder).createRuleLink(linkModel);
|
||||
|
||||
STEP("Create a rule on the child folder.");
|
||||
coreAPIForUser().usingNode(childFolder).usingDefaultRuleSet().createSingleRule(createRuleModelWithDefaultValues());
|
||||
coreAPIForUser().usingNode(childFolder).usingDefaultRuleSet().createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
|
||||
STEP("Use the admin user to get both rule sets.");
|
||||
RestRuleSetModelsCollection adminViewOfRuleSets = coreAPIForAdmin().usingNode(childFolder).getListOfRuleSets();
|
||||
|
@@ -27,14 +27,13 @@ package org.alfresco.rest.rules;
|
||||
|
||||
import static java.util.stream.Collectors.toList;
|
||||
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.*;
|
||||
import static org.alfresco.utility.constants.UserRole.SiteCollaborator;
|
||||
import static org.alfresco.utility.report.log.Step.STEP;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.springframework.http.HttpStatus.CREATED;
|
||||
import static org.springframework.http.HttpStatus.FORBIDDEN;
|
||||
import static org.springframework.http.HttpStatus.NOT_FOUND;
|
||||
import static org.springframework.http.HttpStatus.OK;
|
||||
import static org.springframework.http.HttpStatus.CREATED;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.IntStream;
|
||||
@@ -76,7 +75,7 @@ public class GetRulesTests extends RestTest
|
||||
|
||||
STEP("Create rules in the folder");
|
||||
createdRules = Stream.of("ruleA", "ruleB").map(ruleName -> {
|
||||
RestRuleModel ruleModel = createRuleModel(ruleName);
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel(ruleName);
|
||||
return restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
}).collect(toList());
|
||||
createdRuleA = createdRules.get(0);
|
||||
@@ -183,14 +182,14 @@ public class GetRulesTests extends RestTest
|
||||
public void getRulesOtherFieldsModified()
|
||||
{
|
||||
STEP("Create a rule with all other fields default values modified");
|
||||
RestRuleModel ruleModel = createRuleModelWithModifiedValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithModifiedValues();
|
||||
ruleModel.setTriggers(List.of("update"));
|
||||
UserModel admin = dataUser.getAdminUser();
|
||||
FolderModel folder = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
RestRuleModel rule = restClient.authenticateUser(admin).withCoreAPI().usingNode(folder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
|
||||
RestRuleModel expectedRuleModel = createRuleModelWithModifiedValues();
|
||||
RestRuleModel expectedRuleModel = rulesUtils.createRuleModelWithModifiedValues();
|
||||
expectedRuleModel.setTriggers(List.of("update"));
|
||||
|
||||
restClient.assertStatusCodeIs(CREATED);
|
||||
@@ -205,13 +204,13 @@ public class GetRulesTests extends RestTest
|
||||
public void getRulesDefaultFields()
|
||||
{
|
||||
STEP("Create a rule with all other fields default values");
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
UserModel admin = dataUser.getAdminUser();
|
||||
FolderModel folder = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
RestRuleModel rule = restClient.authenticateUser(admin).withCoreAPI().usingNode(folder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
|
||||
RestRuleModel expectedRuleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel expectedRuleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
expectedRuleModel.setTriggers(List.of("inbound"));
|
||||
|
||||
restClient.assertStatusCodeIs(CREATED);
|
||||
@@ -293,7 +292,7 @@ public class GetRulesTests extends RestTest
|
||||
UserModel privateUser = dataUser.createRandomTestUser();
|
||||
SiteModel privateSite = dataSite.usingUser(privateUser).createPrivateRandomSite();
|
||||
FolderModel privateFolder = dataContent.usingUser(privateUser).usingSite(privateSite).createFolder();
|
||||
RestRuleModel ruleModel = createRuleModel("Private site rule");
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel("Private site rule");
|
||||
restClient.authenticateUser(privateUser).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
|
||||
STEP("Create a collaborator in the private site");
|
||||
@@ -317,7 +316,7 @@ public class GetRulesTests extends RestTest
|
||||
STEP("Create a rule with a few actions");
|
||||
FolderModel folder = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
final RestRuleModel rule = restClient.authenticateUser(user).withCoreAPI().usingNode(folder).usingDefaultRuleSet()
|
||||
.createSingleRule(createVariousActions());
|
||||
.createSingleRule(rulesUtils.createVariousActions());
|
||||
|
||||
STEP("Retrieve the created rule via the GET endpoint");
|
||||
final RestRuleModel getRuleBody = restClient.authenticateUser(user).withCoreAPI().usingNode(folder).usingDefaultRuleSet().getSingleRule(rule.getId());
|
||||
@@ -325,10 +324,10 @@ public class GetRulesTests extends RestTest
|
||||
STEP("Assert that actions are returned as expected from the GET endpoint");
|
||||
restClient.assertStatusCodeIs(OK);
|
||||
getRuleBody.assertThat().field(ACTIONS).contains("actionDefinitionId=copy")
|
||||
.assertThat().field(ACTIONS).contains("destination-folder=dummy-folder-node")
|
||||
.assertThat().field(ACTIONS).contains("destination-folder=" + rulesUtils.getCopyDestinationFolder().getNodeRef())
|
||||
.assertThat().field(ACTIONS).contains("deep-copy=true")
|
||||
.assertThat().field(ACTIONS).contains("actionDefinitionId=check-out")
|
||||
.assertThat().field(ACTIONS).contains("destination-folder=fake-folder-node")
|
||||
.assertThat().field(ACTIONS).contains("destination-folder=" + rulesUtils.getCheckOutDestinationFolder().getNodeRef())
|
||||
.assertThat().field(ACTIONS).contains("assoc-name=cm:checkout");
|
||||
}
|
||||
|
||||
@@ -339,8 +338,8 @@ public class GetRulesTests extends RestTest
|
||||
public void getRulesConditions()
|
||||
{
|
||||
STEP("Create a rule with several conditions");
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
ruleModel.setConditions(createVariousConditions());
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
ruleModel.setConditions(rulesUtils.createVariousConditions());
|
||||
|
||||
FolderModel folder = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
|
||||
|
@@ -27,7 +27,6 @@ package org.alfresco.rest.rules;
|
||||
|
||||
import static java.util.stream.Collectors.toList;
|
||||
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModelWithDefaultValues;
|
||||
import static org.alfresco.utility.report.log.Step.STEP;
|
||||
import static org.springframework.http.HttpStatus.FORBIDDEN;
|
||||
import static org.springframework.http.HttpStatus.OK;
|
||||
@@ -197,7 +196,7 @@ public class ReorderRules extends RestTest
|
||||
{
|
||||
return IntStream.range(0, 3).mapToObj(index ->
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModelWithDefaultValues();
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModelWithDefaultValues();
|
||||
return restClient.authenticateUser(user).withCoreAPI().usingNode(folder).usingDefaultRuleSet().createSingleRule(ruleModel);
|
||||
}).collect(toList());
|
||||
}
|
||||
|
@@ -25,8 +25,6 @@
|
||||
*/
|
||||
package org.alfresco.rest.rules;
|
||||
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModel;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModelWithDefaultValues;
|
||||
import static org.alfresco.utility.constants.UserRole.SiteConsumer;
|
||||
import static org.alfresco.utility.report.log.Step.STEP;
|
||||
import static org.springframework.http.HttpStatus.BAD_REQUEST;
|
||||
@@ -79,7 +77,7 @@ public class RuleSetLinksTests extends RestTest
|
||||
final FolderModel folder = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
|
||||
STEP("Create a rule in the rule folder.");
|
||||
RestRuleModel ruleModel = createRuleModel("ruleName");
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel("ruleName");
|
||||
RestRuleModel rule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
|
||||
@@ -132,7 +130,7 @@ public class RuleSetLinksTests extends RestTest
|
||||
final FolderModel folder = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
|
||||
STEP("Create a rule in the rule folder.");
|
||||
RestRuleModel ruleModel = createRuleModel("ruleName");
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel("ruleName");
|
||||
RestRuleModel rule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
|
||||
@@ -223,10 +221,10 @@ public class RuleSetLinksTests extends RestTest
|
||||
final FolderModel folder2 = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
|
||||
STEP("Create rules in both folders.");
|
||||
RestRuleModel ruleModel1 = createRuleModel("ruleName1");
|
||||
RestRuleModel ruleModel1 = rulesUtils.createRuleModel("ruleName1");
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(folder1).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel1);
|
||||
RestRuleModel ruleModel2 = createRuleModel("ruleName2");
|
||||
RestRuleModel ruleModel2 = rulesUtils.createRuleModel("ruleName2");
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(folder2).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel2);
|
||||
|
||||
@@ -272,7 +270,7 @@ public class RuleSetLinksTests extends RestTest
|
||||
final FolderModel childFolder = dataContent.usingUser(user).usingSite(site).usingResource(parentFolder).createFolder();
|
||||
|
||||
STEP("Create a rule in the parent folder.");
|
||||
RestRuleModel ruleModel = createRuleModel("ruleName");
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel("ruleName");
|
||||
RestRuleModel rule = restClient.authenticateUser(user).withCoreAPI().usingNode(parentFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
|
||||
@@ -324,7 +322,7 @@ public class RuleSetLinksTests extends RestTest
|
||||
SiteModel privateSite = dataSite.usingAdmin().createPrivateRandomSite();
|
||||
FolderModel privateFolder = dataContent.usingAdmin().usingSite(privateSite).createFolder();
|
||||
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(createRuleModelWithDefaultValues());
|
||||
.createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
|
||||
STEP("Use a normal user to try to link to the rule.");
|
||||
FolderModel publicFolder = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
@@ -345,7 +343,7 @@ public class RuleSetLinksTests extends RestTest
|
||||
SiteModel privateSite = dataSite.usingAdmin().createPrivateRandomSite();
|
||||
FolderModel privateFolder = dataContent.usingAdmin().usingSite(privateSite).createFolder();
|
||||
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(createRuleModelWithDefaultValues());
|
||||
.createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
|
||||
STEP("Add the normal user as a consumer.");
|
||||
dataUser.usingAdmin().addUserToSite(user, privateSite, SiteConsumer);
|
||||
@@ -372,7 +370,7 @@ public class RuleSetLinksTests extends RestTest
|
||||
final FolderModel folder = dataContent.usingUser(user).usingSite(site).createFolder();
|
||||
|
||||
STEP("Create a rule in the rule folder.");
|
||||
RestRuleModel ruleModel = createRuleModel("ruleName");
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel("ruleName");
|
||||
RestRuleModel rule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
|
||||
@@ -453,7 +451,7 @@ public class RuleSetLinksTests extends RestTest
|
||||
SiteModel privateSite = dataSite.usingAdmin().createPrivateRandomSite();
|
||||
FolderModel privateFolder = dataContent.usingAdmin().usingSite(privateSite).createFolder();
|
||||
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(createRuleModelWithDefaultValues());
|
||||
.createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
|
||||
STEP("Add the user as a consumer.");
|
||||
dataUser.usingAdmin().addUserToSite(user, privateSite, SiteConsumer);
|
||||
@@ -484,7 +482,7 @@ public class RuleSetLinksTests extends RestTest
|
||||
SiteModel privateSite = dataSite.usingAdmin().createPrivateRandomSite();
|
||||
FolderModel privateFolder = dataContent.usingAdmin().usingSite(privateSite).createFolder();
|
||||
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(privateFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(createRuleModelWithDefaultValues());
|
||||
.createSingleRule(rulesUtils.createRuleModelWithDefaultValues());
|
||||
|
||||
STEP("Add the user as a consumer.");
|
||||
dataUser.usingAdmin().addUserToSite(user, privateSite, SiteConsumer);
|
||||
|
@@ -34,14 +34,29 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.rest.core.RestWrapper;
|
||||
import org.alfresco.rest.model.RestActionBodyExecTemplateModel;
|
||||
import org.alfresco.rest.model.RestActionConstraintDataModel;
|
||||
import org.alfresco.rest.model.RestActionConstraintModel;
|
||||
import org.alfresco.rest.model.RestActionDefinitionModel;
|
||||
import org.alfresco.rest.model.RestCompositeConditionDefinitionModel;
|
||||
import org.alfresco.rest.model.RestNodeModel;
|
||||
import org.alfresco.rest.model.RestParameterDefinitionModel;
|
||||
import org.alfresco.rest.model.RestRuleExecutionModel;
|
||||
import org.alfresco.rest.model.RestRuleModel;
|
||||
import org.alfresco.rest.model.RestSimpleConditionDefinitionModel;
|
||||
import org.alfresco.utility.data.DataContent;
|
||||
import org.alfresco.utility.data.DataSite;
|
||||
import org.alfresco.utility.data.DataUserAIS;
|
||||
import org.alfresco.utility.model.FolderModel;
|
||||
import org.alfresco.utility.model.SiteModel;
|
||||
import org.alfresco.utility.model.UserModel;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
public class RulesTestsUtils
|
||||
@Service
|
||||
public class RulesTestsUtils implements InitializingBean
|
||||
{
|
||||
static final String RULE_NAME_DEFAULT = "ruleName";
|
||||
static final String RULE_DESCRIPTION_DEFAULT = "rule description";
|
||||
@@ -49,7 +64,9 @@ public class RulesTestsUtils
|
||||
static final boolean RULE_CASCADE_DEFAULT = true;
|
||||
static final boolean RULE_ASYNC_DEFAULT = true;
|
||||
static final boolean RULE_SHARED_DEFAULT = false;
|
||||
static final String RULE_ERROR_SCRIPT_DEFAULT = "error-script";
|
||||
static final String RULE_SCRIPT_ID = "script";
|
||||
static final String RULE_SCRIPT_PARAM_ID = "script-ref";
|
||||
static final String RULE_ERROR_SCRIPT_LABEL = "Start Pooled Review and Approve Workflow";
|
||||
static final String INBOUND = "inbound";
|
||||
static final String UPDATE = "update";
|
||||
static final String OUTBOUND = "outbound";
|
||||
@@ -61,18 +78,74 @@ public class RulesTestsUtils
|
||||
static final String AUDIO_ASPECT = "audio:audio";
|
||||
static final String LOCKABLE_ASPECT = "cm:lockable";
|
||||
|
||||
public static RestRuleModel createRuleModelWithModifiedValues()
|
||||
@Autowired
|
||||
private RestWrapper restClient;
|
||||
@Autowired
|
||||
private DataUserAIS dataUser;
|
||||
@Autowired
|
||||
private DataSite dataSite;
|
||||
@Autowired
|
||||
private DataContent dataContent;
|
||||
|
||||
private SiteModel site;
|
||||
private String reviewAndApproveWorkflowNode;
|
||||
|
||||
private FolderModel copyDestinationFolder;
|
||||
|
||||
private FolderModel checkOutDestinationFolder;
|
||||
/**
|
||||
* Initialise the util class.
|
||||
*/
|
||||
@Override
|
||||
public void afterPropertiesSet()
|
||||
{
|
||||
UserModel admin = dataUser.getAdminUser();
|
||||
// Obtain the node ref for the review and approve workflow.
|
||||
RestActionDefinitionModel actionDef = restClient.authenticateUser(admin).withCoreAPI().usingActions().getActionDefinitionById(RULE_SCRIPT_ID);
|
||||
RestParameterDefinitionModel paramDef = actionDef.getParameterDefinitions().stream().filter(param -> param.getName().equals(RULE_SCRIPT_PARAM_ID)).findFirst().get();
|
||||
String constraintName = paramDef.getParameterConstraintName();
|
||||
RestActionConstraintModel constraintDef = restClient.authenticateUser(admin).withCoreAPI().usingActions().getActionConstraintByName(constraintName);
|
||||
RestActionConstraintDataModel reviewAndApprove = constraintDef.getConstraintValues().stream().filter(constraintValue -> constraintValue.getLabel().equals(RULE_ERROR_SCRIPT_LABEL)).findFirst().get();
|
||||
reviewAndApproveWorkflowNode = reviewAndApprove.getValue();
|
||||
|
||||
// Create a couple of public folders to be used as action destinations.
|
||||
site = dataSite.usingUser(admin).createPublicRandomSite();
|
||||
copyDestinationFolder = dataContent.usingUser(admin).usingSite(site).createFolder();
|
||||
checkOutDestinationFolder = dataContent.usingUser(admin).usingSite(site).createFolder();
|
||||
}
|
||||
|
||||
public RestRuleModel createRuleModelWithModifiedValues()
|
||||
{
|
||||
return createRuleModelWithModifiedValues(List.of(createAddAudioAspectAction()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the review and approve workflow node (throwing an exception if this utility class has not been initialised).
|
||||
*
|
||||
* @return The node ref of the script node.
|
||||
*/
|
||||
public String getReviewAndApproveWorkflowNode()
|
||||
{
|
||||
return reviewAndApproveWorkflowNode;
|
||||
}
|
||||
|
||||
public FolderModel getCopyDestinationFolder()
|
||||
{
|
||||
return copyDestinationFolder;
|
||||
}
|
||||
|
||||
public FolderModel getCheckOutDestinationFolder()
|
||||
{
|
||||
return checkOutDestinationFolder;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a rule model filled with custom constant values.
|
||||
*
|
||||
* @param actions - rule's actions.
|
||||
* @return The created rule model.
|
||||
*/
|
||||
public static RestRuleModel createRuleModelWithModifiedValues(List<RestActionBodyExecTemplateModel> actions)
|
||||
public RestRuleModel createRuleModelWithModifiedValues(List<RestActionBodyExecTemplateModel> actions)
|
||||
{
|
||||
RestRuleModel ruleModel = createRuleModel(RULE_NAME_DEFAULT, actions);
|
||||
ruleModel.setDescription(RULE_DESCRIPTION_DEFAULT);
|
||||
@@ -81,17 +154,17 @@ public class RulesTestsUtils
|
||||
ruleModel.setIsAsynchronous(RULE_ASYNC_DEFAULT);
|
||||
ruleModel.setIsShared(RULE_SHARED_DEFAULT);
|
||||
ruleModel.setTriggers(RULE_TRIGGERS_DEFAULT);
|
||||
ruleModel.setErrorScript(RULE_ERROR_SCRIPT_DEFAULT);
|
||||
ruleModel.setErrorScript(getReviewAndApproveWorkflowNode());
|
||||
|
||||
return ruleModel;
|
||||
}
|
||||
|
||||
public static RestRuleModel createRuleModelWithDefaultValues()
|
||||
public RestRuleModel createRuleModelWithDefaultValues()
|
||||
{
|
||||
return createRuleModel(RULE_NAME_DEFAULT);
|
||||
}
|
||||
|
||||
public static RestRuleModel createRuleModel(String name)
|
||||
public RestRuleModel createRuleModel(String name)
|
||||
{
|
||||
return createRuleModel(name, List.of(createAddAudioAspectAction()));
|
||||
}
|
||||
@@ -103,7 +176,7 @@ public class RulesTestsUtils
|
||||
* @param actions Rule's actions.
|
||||
* @return The created rule model.
|
||||
*/
|
||||
public static RestRuleModel createRuleModel(String name, List<RestActionBodyExecTemplateModel> actions)
|
||||
public RestRuleModel createRuleModel(String name, List<RestActionBodyExecTemplateModel> actions)
|
||||
{
|
||||
RestRuleModel ruleModel = new RestRuleModel();
|
||||
ruleModel.setIsEnabled(true);
|
||||
@@ -117,17 +190,17 @@ public class RulesTestsUtils
|
||||
*
|
||||
* @return The created action model.
|
||||
*/
|
||||
public static RestActionBodyExecTemplateModel createAddAudioAspectAction()
|
||||
public RestActionBodyExecTemplateModel createAddAudioAspectAction()
|
||||
{
|
||||
return createAddAspectAction(AUDIO_ASPECT);
|
||||
}
|
||||
|
||||
public static RestActionBodyExecTemplateModel createAddAspectAction(String aspect)
|
||||
public RestActionBodyExecTemplateModel createAddAspectAction(String aspect)
|
||||
{
|
||||
return createCustomActionModel("add-features", Map.of("aspect-name", aspect));
|
||||
}
|
||||
|
||||
public static RestActionBodyExecTemplateModel createCustomActionModel(String actionDefinitionId, Map<String, Serializable> params)
|
||||
public RestActionBodyExecTemplateModel createCustomActionModel(String actionDefinitionId, Map<String, Serializable> params)
|
||||
{
|
||||
RestActionBodyExecTemplateModel restActionModel = new RestActionBodyExecTemplateModel();
|
||||
restActionModel.setActionDefinitionId(actionDefinitionId);
|
||||
@@ -135,7 +208,7 @@ public class RulesTestsUtils
|
||||
return restActionModel;
|
||||
}
|
||||
|
||||
public static RestCompositeConditionDefinitionModel createEmptyConditionModel()
|
||||
public RestCompositeConditionDefinitionModel createEmptyConditionModel()
|
||||
{
|
||||
RestCompositeConditionDefinitionModel conditions = new RestCompositeConditionDefinitionModel();
|
||||
conditions.setInverted(!INVERTED);
|
||||
@@ -143,7 +216,7 @@ public class RulesTestsUtils
|
||||
return conditions;
|
||||
}
|
||||
|
||||
public static RestCompositeConditionDefinitionModel createVariousConditions()
|
||||
public RestCompositeConditionDefinitionModel createVariousConditions()
|
||||
{
|
||||
return createCompositeCondition(List.of(
|
||||
createCompositeCondition(!INVERTED, List.of(
|
||||
@@ -162,14 +235,14 @@ public class RulesTestsUtils
|
||||
));
|
||||
}
|
||||
|
||||
public static RestRuleModel createVariousActions()
|
||||
public RestRuleModel createVariousActions()
|
||||
{
|
||||
final Map<String, Serializable> copyParams =
|
||||
Map.of("destination-folder", "dummy-folder-node", "deep-copy", true);
|
||||
Map.of("destination-folder", copyDestinationFolder.getNodeRef(), "deep-copy", true);
|
||||
final RestActionBodyExecTemplateModel copyAction = createCustomActionModel("copy", copyParams);
|
||||
final Map<String, Serializable> checkOutParams =
|
||||
Map.of("destination-folder", "fake-folder-node", "assoc-name", "cm:checkout", "assoc-type",
|
||||
"cm:contains");
|
||||
Map.of("destination-folder", checkOutDestinationFolder.getNodeRef(), "assoc-name", "cm:checkout",
|
||||
"assoc-type", "cm:contains");
|
||||
final RestActionBodyExecTemplateModel checkOutAction = createCustomActionModel("check-out", checkOutParams);
|
||||
// The counter action takes no parameters, so check we can omit the "params" entry.
|
||||
final RestActionBodyExecTemplateModel counterAction = createCustomActionModel("counter", null);
|
||||
@@ -179,7 +252,7 @@ public class RulesTestsUtils
|
||||
return ruleModel;
|
||||
}
|
||||
|
||||
public static RestRuleModel createRuleWithPrivateAction()
|
||||
public RestRuleModel createRuleWithPrivateAction()
|
||||
{
|
||||
RestActionBodyExecTemplateModel mailAction = new RestActionBodyExecTemplateModel();
|
||||
mailAction.setActionDefinitionId(MAIL_ACTION);
|
||||
@@ -189,7 +262,7 @@ public class RulesTestsUtils
|
||||
return ruleModel;
|
||||
}
|
||||
|
||||
public static RestSimpleConditionDefinitionModel createSimpleCondition(String field, String comparator, String parameter)
|
||||
public RestSimpleConditionDefinitionModel createSimpleCondition(String field, String comparator, String parameter)
|
||||
{
|
||||
RestSimpleConditionDefinitionModel simpleCondition = new RestSimpleConditionDefinitionModel();
|
||||
simpleCondition.setField(field);
|
||||
@@ -198,23 +271,23 @@ public class RulesTestsUtils
|
||||
return simpleCondition;
|
||||
}
|
||||
|
||||
public static RestCompositeConditionDefinitionModel createCompositeCondition(List<RestCompositeConditionDefinitionModel> compositeConditions)
|
||||
public RestCompositeConditionDefinitionModel createCompositeCondition(List<RestCompositeConditionDefinitionModel> compositeConditions)
|
||||
{
|
||||
return createCompositeCondition(AND, !INVERTED, compositeConditions, null);
|
||||
}
|
||||
|
||||
public static RestCompositeConditionDefinitionModel createCompositeCondition(boolean inverted,
|
||||
public RestCompositeConditionDefinitionModel createCompositeCondition(boolean inverted,
|
||||
List<RestSimpleConditionDefinitionModel> simpleConditions)
|
||||
{
|
||||
return createCompositeCondition(AND, inverted, null, simpleConditions);
|
||||
}
|
||||
|
||||
public static RestRuleExecutionModel createRuleExecutionRequest()
|
||||
public RestRuleExecutionModel createRuleExecutionRequest()
|
||||
{
|
||||
return createRuleExecutionRequest(false);
|
||||
}
|
||||
|
||||
public static RestRuleExecutionModel createRuleExecutionRequest(boolean eachSubFolderIncluded)
|
||||
public RestRuleExecutionModel createRuleExecutionRequest(boolean eachSubFolderIncluded)
|
||||
{
|
||||
RestRuleExecutionModel ruleExecutionBody = new RestRuleExecutionModel();
|
||||
ruleExecutionBody.setIsEachSubFolderIncluded(eachSubFolderIncluded);
|
||||
@@ -222,7 +295,7 @@ public class RulesTestsUtils
|
||||
return ruleExecutionBody;
|
||||
}
|
||||
|
||||
private static RestCompositeConditionDefinitionModel createCompositeCondition(String booleanMode, boolean inverted,
|
||||
private RestCompositeConditionDefinitionModel createCompositeCondition(String booleanMode, boolean inverted,
|
||||
List<RestCompositeConditionDefinitionModel> compositeConditions, List<RestSimpleConditionDefinitionModel> simpleConditions)
|
||||
{
|
||||
RestCompositeConditionDefinitionModel compositeCondition = new RestCompositeConditionDefinitionModel();
|
||||
@@ -234,12 +307,12 @@ public class RulesTestsUtils
|
||||
return compositeCondition;
|
||||
}
|
||||
|
||||
public static NodeAssertion assertThat(RestNodeModel node)
|
||||
public NodeAssertion assertThat(RestNodeModel node)
|
||||
{
|
||||
return new NodeAssertion(node);
|
||||
}
|
||||
|
||||
public static class NodeAssertion
|
||||
public class NodeAssertion
|
||||
{
|
||||
private final RestNodeModel node;
|
||||
|
||||
|
@@ -33,19 +33,10 @@ import static org.alfresco.rest.rules.RulesTestsUtils.IS_SHARED;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.RULE_ASYNC_DEFAULT;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.RULE_CASCADE_DEFAULT;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.RULE_ENABLED_DEFAULT;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createCompositeCondition;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createCustomActionModel;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createAddAudioAspectAction;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModel;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleModelWithModifiedValues;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createRuleWithPrivateAction;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createSimpleCondition;
|
||||
import static org.alfresco.rest.rules.RulesTestsUtils.createVariousConditions;
|
||||
import static org.alfresco.utility.constants.UserRole.SiteCollaborator;
|
||||
import static org.alfresco.utility.report.log.Step.STEP;
|
||||
import static org.springframework.http.HttpStatus.BAD_REQUEST;
|
||||
import static org.springframework.http.HttpStatus.FORBIDDEN;
|
||||
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
|
||||
import static org.springframework.http.HttpStatus.NOT_FOUND;
|
||||
import static org.springframework.http.HttpStatus.OK;
|
||||
|
||||
@@ -96,7 +87,7 @@ public class UpdateRulesTests extends RestTest
|
||||
RestRuleModel rule = createAndSaveRule("Rule name");
|
||||
|
||||
STEP("Try to update the rule.");
|
||||
RestRuleModel updatedRuleModel = createRuleModel("Updated rule name");
|
||||
RestRuleModel updatedRuleModel = rulesUtils.createRuleModel("Updated rule name");
|
||||
RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.updateRule(rule.getId(), updatedRuleModel);
|
||||
|
||||
@@ -182,7 +173,7 @@ public class UpdateRulesTests extends RestTest
|
||||
RestRuleModel rule = createAndSaveRule("Rule name");
|
||||
|
||||
STEP("Try to update the rule to have no name.");
|
||||
RestRuleModel updatedRuleModel = createRuleModel("");
|
||||
RestRuleModel updatedRuleModel = rulesUtils.createRuleModel("");
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet().updateRule(rule.getId(), updatedRuleModel);
|
||||
|
||||
restClient.assertLastError().statusCodeIs(BAD_REQUEST)
|
||||
@@ -196,7 +187,7 @@ public class UpdateRulesTests extends RestTest
|
||||
RestRuleModel rule = createAndSaveRule("Rule name");
|
||||
|
||||
STEP("Try to update the rule id and check it isn't changed.");
|
||||
RestRuleModel updatedRuleModel = createRuleModel("Rule name");
|
||||
RestRuleModel updatedRuleModel = rulesUtils.createRuleModel("Rule name");
|
||||
updatedRuleModel.setId("new-rule-id");
|
||||
RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.updateRule(rule.getId(), updatedRuleModel);
|
||||
@@ -211,7 +202,7 @@ public class UpdateRulesTests extends RestTest
|
||||
RestRuleModel rule = createAndSaveRule("Rule name");
|
||||
|
||||
STEP("Try to update the rule.");
|
||||
RestRuleModel updatedRuleModel = createRuleModel("Updated rule name");
|
||||
RestRuleModel updatedRuleModel = rulesUtils.createRuleModel("Updated rule name");
|
||||
RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.include(IS_SHARED)
|
||||
.updateRule(rule.getId(), updatedRuleModel);
|
||||
@@ -286,7 +277,7 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void updateRuleFields()
|
||||
{
|
||||
final RestRuleModel rule = createAndSaveRule(createRuleModelWithModifiedValues());
|
||||
final RestRuleModel rule = createAndSaveRule(rulesUtils.createRuleModelWithModifiedValues());
|
||||
|
||||
STEP("Try to update the rule fields.");
|
||||
rule.setName("Updated rule name");
|
||||
@@ -296,8 +287,7 @@ public class UpdateRulesTests extends RestTest
|
||||
rule.setIsEnabled(!RULE_ENABLED_DEFAULT);
|
||||
rule.setIsInheritable(!RULE_CASCADE_DEFAULT);
|
||||
rule.setIsAsynchronous(!RULE_ASYNC_DEFAULT);
|
||||
final String updatedErrorScript = "updated-error-script";
|
||||
rule.setErrorScript(updatedErrorScript);
|
||||
rule.setErrorScript(null);
|
||||
final RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.updateRule(rule.getId(), rule);
|
||||
|
||||
@@ -310,10 +300,10 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void updateRuleAddConditions()
|
||||
{
|
||||
final RestRuleModel rule = createAndSaveRule(createRuleModelWithModifiedValues());
|
||||
final RestRuleModel rule = createAndSaveRule(rulesUtils.createRuleModelWithModifiedValues());
|
||||
|
||||
STEP("Try to update the rule and add conditions.");
|
||||
rule.setConditions(createVariousConditions());
|
||||
rule.setConditions(rulesUtils.createVariousConditions());
|
||||
|
||||
final RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.updateRule(rule.getId(), rule);
|
||||
@@ -327,7 +317,7 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void updateRuleAddNullConditions()
|
||||
{
|
||||
final RestRuleModel rule = createAndSaveRule(createRuleModelWithModifiedValues());
|
||||
final RestRuleModel rule = createAndSaveRule(rulesUtils.createRuleModelWithModifiedValues());
|
||||
|
||||
STEP("Try to update the rule and add null conditions.");
|
||||
rule.setConditions(null);
|
||||
@@ -344,13 +334,13 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void updateRuleModifyConditions()
|
||||
{
|
||||
final RestRuleModel ruleModelWithInitialValues = createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(createVariousConditions());
|
||||
final RestRuleModel ruleModelWithInitialValues = rulesUtils.createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(rulesUtils.createVariousConditions());
|
||||
final RestRuleModel rule = createAndSaveRule(ruleModelWithInitialValues);
|
||||
|
||||
STEP("Try to update the rule and modify conditions.");
|
||||
final RestCompositeConditionDefinitionModel compositeCondition = createCompositeCondition(
|
||||
List.of(createCompositeCondition(false, List.of(createSimpleCondition("tag", "equals", "sample_tag")))));
|
||||
final RestCompositeConditionDefinitionModel compositeCondition = rulesUtils.createCompositeCondition(
|
||||
List.of(rulesUtils.createCompositeCondition(false, List.of(rulesUtils.createSimpleCondition("tag", "equals", "sample_tag")))));
|
||||
rule.setConditions(compositeCondition);
|
||||
|
||||
final RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -365,8 +355,8 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void updateRuleRemoveAllConditions()
|
||||
{
|
||||
final RestRuleModel ruleModelWithInitialValues = createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(createVariousConditions());
|
||||
final RestRuleModel ruleModelWithInitialValues = rulesUtils.createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(rulesUtils.createVariousConditions());
|
||||
final RestRuleModel rule = createAndSaveRule(ruleModelWithInitialValues);
|
||||
|
||||
STEP("Try to update the rule and remove all conditions.");
|
||||
@@ -384,13 +374,13 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void updateRuleWithInvalidCategoryInConditionAndFail()
|
||||
{
|
||||
final RestRuleModel ruleModelWithInitialValues = createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(createVariousConditions());
|
||||
final RestRuleModel ruleModelWithInitialValues = rulesUtils.createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(rulesUtils.createVariousConditions());
|
||||
final RestRuleModel rule = createAndSaveRule(ruleModelWithInitialValues);
|
||||
|
||||
STEP("Try to update the rule with invalid condition.");
|
||||
final RestCompositeConditionDefinitionModel conditions = createCompositeCondition(
|
||||
List.of(createCompositeCondition(!INVERTED, List.of(createSimpleCondition("category", "equals", "fake-category-id")))));
|
||||
final RestCompositeConditionDefinitionModel conditions = rulesUtils.createCompositeCondition(
|
||||
List.of(rulesUtils.createCompositeCondition(!INVERTED, List.of(rulesUtils.createSimpleCondition("category", "equals", "fake-category-id")))));
|
||||
rule.setConditions(conditions);
|
||||
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -404,13 +394,13 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void updateRuleWithConditionWithoutComparatorAndFail()
|
||||
{
|
||||
final RestRuleModel ruleModelWithInitialValues = createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(createVariousConditions());
|
||||
final RestRuleModel ruleModelWithInitialValues = rulesUtils.createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(rulesUtils.createVariousConditions());
|
||||
final RestRuleModel rule = createAndSaveRule(ruleModelWithInitialValues);
|
||||
|
||||
STEP("Try to update the rule with invalid condition (null comparator when required non-null).");
|
||||
final RestCompositeConditionDefinitionModel conditions = createCompositeCondition(
|
||||
List.of(createCompositeCondition(!INVERTED, List.of(createSimpleCondition("size", null, "65500")))));
|
||||
final RestCompositeConditionDefinitionModel conditions = rulesUtils.createCompositeCondition(
|
||||
List.of(rulesUtils.createCompositeCondition(!INVERTED, List.of(rulesUtils.createSimpleCondition("size", null, "65500")))));
|
||||
rule.setConditions(conditions);
|
||||
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -424,13 +414,13 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void updateRuleWithConditionWithoutFieldAndFail()
|
||||
{
|
||||
final RestRuleModel ruleModelWithInitialValues = createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(createVariousConditions());
|
||||
final RestRuleModel ruleModelWithInitialValues = rulesUtils.createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(rulesUtils.createVariousConditions());
|
||||
final RestRuleModel rule = createAndSaveRule(ruleModelWithInitialValues);
|
||||
|
||||
STEP("Try to update the rule with invalid condition (null field).");
|
||||
final RestCompositeConditionDefinitionModel conditions = createCompositeCondition(
|
||||
List.of(createCompositeCondition(!INVERTED, List.of(createSimpleCondition(null, "greater_than", "65500")))));
|
||||
final RestCompositeConditionDefinitionModel conditions = rulesUtils.createCompositeCondition(
|
||||
List.of(rulesUtils.createCompositeCondition(!INVERTED, List.of(rulesUtils.createSimpleCondition(null, "greater_than", "65500")))));
|
||||
rule.setConditions(conditions);
|
||||
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -444,13 +434,13 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY })
|
||||
public void updateRuleWithConditionWithoutParamValueAndFail()
|
||||
{
|
||||
final RestRuleModel ruleModelWithInitialValues = createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(createVariousConditions());
|
||||
final RestRuleModel ruleModelWithInitialValues = rulesUtils.createRuleModelWithModifiedValues();
|
||||
ruleModelWithInitialValues.setConditions(rulesUtils.createVariousConditions());
|
||||
final RestRuleModel rule = createAndSaveRule(ruleModelWithInitialValues);
|
||||
|
||||
STEP("Try to update the rule with invalid condition (null parameter).");
|
||||
final RestCompositeConditionDefinitionModel conditions = createCompositeCondition(
|
||||
List.of(createCompositeCondition(!INVERTED, List.of(createSimpleCondition("size", "greater_than", "")))));
|
||||
final RestCompositeConditionDefinitionModel conditions = rulesUtils.createCompositeCondition(
|
||||
List.of(rulesUtils.createCompositeCondition(!INVERTED, List.of(rulesUtils.createSimpleCondition("size", "greater_than", "")))));
|
||||
rule.setConditions(conditions);
|
||||
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -466,14 +456,14 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void updateRuleAddActions()
|
||||
{
|
||||
final RestRuleModel rule = createAndSaveRule(createRuleModelWithModifiedValues());
|
||||
final RestRuleModel rule = createAndSaveRule(rulesUtils.createRuleModelWithModifiedValues());
|
||||
|
||||
STEP("Try to update the rule by adding several actions");
|
||||
final Map<String, Serializable> copyParams =
|
||||
Map.of("destination-folder", "dummy-folder-node", "deep-copy", true);
|
||||
final RestActionBodyExecTemplateModel copyAction = createCustomActionModel("copy", copyParams);
|
||||
Map.of("destination-folder", rulesUtils.getCopyDestinationFolder().getNodeRef(), "deep-copy", true);
|
||||
final RestActionBodyExecTemplateModel copyAction = rulesUtils.createCustomActionModel("copy", copyParams);
|
||||
final Map<String, Serializable> addAspectParams = Map.of("aspect-name", "cm:taggable");
|
||||
final RestActionBodyExecTemplateModel addAspectAction = createCustomActionModel("add-features", addAspectParams);
|
||||
final RestActionBodyExecTemplateModel addAspectAction = rulesUtils.createCustomActionModel("add-features", addAspectParams);
|
||||
rule.setActions(Arrays.asList(copyAction, addAspectAction));
|
||||
|
||||
final RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -490,14 +480,13 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void updateRuleAddCheckoutActionForOutboundShouldFail()
|
||||
{
|
||||
final RestRuleModel rule = createAndSaveRule(createRuleModelWithModifiedValues());
|
||||
final RestRuleModel rule = createAndSaveRule(rulesUtils.createRuleModelWithModifiedValues());
|
||||
|
||||
STEP("Try to update the rule by adding checkout action");
|
||||
final Map<String, Serializable> checkOutParams =
|
||||
Map.of("destination-folder", "dummy-folder-node", "assoc-name", "cm:checkout", "assoc-type",
|
||||
"cm:contains");
|
||||
final RestActionBodyExecTemplateModel checkOutAction = createCustomActionModel("check-out", checkOutParams);
|
||||
final Map<String, Serializable> scriptParams = Map.of("script-ref", "dummy-script-node-id");
|
||||
Map.of("destination-folder", rulesUtils.getCheckOutDestinationFolder().getNodeRef(), "assoc-name", "cm:checkout",
|
||||
"assoc-type", "cm:contains");
|
||||
final RestActionBodyExecTemplateModel checkOutAction = rulesUtils.createCustomActionModel("check-out", checkOutParams);
|
||||
rule.setActions(List.of(checkOutAction));
|
||||
|
||||
restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
@@ -514,7 +503,7 @@ public class UpdateRulesTests extends RestTest
|
||||
@Test(groups = {TestGroup.REST_API, TestGroup.RULES})
|
||||
public void updateRuleAddActionWithInvalidParamShouldFail()
|
||||
{
|
||||
final RestRuleModel rule = createAndSaveRule(createRuleModelWithModifiedValues());
|
||||
final RestRuleModel rule = createAndSaveRule(rulesUtils.createRuleModelWithModifiedValues());
|
||||
|
||||
STEP("Try to update the rule by adding action with invalid parameter (non-existing namespace in value)");
|
||||
final RestActionBodyExecTemplateModel action = new RestActionBodyExecTemplateModel();
|
||||
@@ -539,7 +528,7 @@ public class UpdateRulesTests extends RestTest
|
||||
{
|
||||
STEP("Using admin create a rule with a private action.");
|
||||
RestRuleModel rule = restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(createRuleWithPrivateAction());
|
||||
.createSingleRule(rulesUtils.createRuleWithPrivateAction());
|
||||
|
||||
STEP("Try to update the rule with a normal user.");
|
||||
rule.setName("Updated name");
|
||||
@@ -556,7 +545,7 @@ public class UpdateRulesTests extends RestTest
|
||||
{
|
||||
STEP("Using admin create a rule with a private action.");
|
||||
RestRuleModel rule = restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(createRuleWithPrivateAction());
|
||||
.createSingleRule(rulesUtils.createRuleWithPrivateAction());
|
||||
|
||||
STEP("Try to update the rule with the admin user.");
|
||||
rule.setName("Updated name");
|
||||
@@ -569,7 +558,7 @@ public class UpdateRulesTests extends RestTest
|
||||
|
||||
private RestRuleModel createAndSaveRule(String name)
|
||||
{
|
||||
return createAndSaveRule(name, List.of(createAddAudioAspectAction()));
|
||||
return createAndSaveRule(name, List.of(rulesUtils.createAddAudioAspectAction()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -582,7 +571,7 @@ public class UpdateRulesTests extends RestTest
|
||||
private RestRuleModel createAndSaveRule(String name, List<RestActionBodyExecTemplateModel> restActionModels)
|
||||
{
|
||||
STEP("Create a rule called " + name + ", containing actions: " + restActionModels);
|
||||
RestRuleModel ruleModel = createRuleModel(name, restActionModels);
|
||||
RestRuleModel ruleModel = rulesUtils.createRuleModel(name, restActionModels);
|
||||
return restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet()
|
||||
.createSingleRule(ruleModel);
|
||||
}
|
||||
|
Reference in New Issue
Block a user