diff --git a/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/CreateRulesTests.java b/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/CreateRulesTests.java index 2dcf62071f..28759405d1 100644 --- a/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/CreateRulesTests.java +++ b/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/CreateRulesTests.java @@ -67,8 +67,6 @@ import org.testng.annotations.Test; @Test(groups = {TestGroup.RULES}) public class CreateRulesTests extends RestTest { - private static final String IGNORE_ID = "id"; - private static final String IGNORE_IS_SHARED = "isShared"; private UserModel user; private SiteModel site; private FolderModel ruleFolder; @@ -97,9 +95,9 @@ public class CreateRulesTests extends RestTest RestRuleModel expectedRuleModel = createRuleModelWithModifiedValues(); expectedRuleModel.setConditions(createEmptyConditionModel()); restClient.assertStatusCodeIs(CREATED); - rule.assertThat().isEqualTo(expectedRuleModel, IGNORE_ID, IGNORE_IS_SHARED) - .assertThat().field("id").isNotNull() - .assertThat().field("isShared").isNull(); + rule.assertThat().isEqualTo(expectedRuleModel, ID, IS_SHARED) + .assertThat().field(ID).isNotNull() + .assertThat().field(IS_SHARED).isNull(); } /** Check creating a rule in a non-existent folder returns an error. */ @@ -389,8 +387,8 @@ public class CreateRulesTests extends RestTest expectedRuleModel.setTriggers(List.of("inbound")); restClient.assertStatusCodeIs(CREATED); - rule.assertThat().isEqualTo(expectedRuleModel, IGNORE_ID, IGNORE_IS_SHARED) - .assertThat().field("isShared").isNull(); + rule.assertThat().isEqualTo(expectedRuleModel, ID, IS_SHARED) + .assertThat().field(IS_SHARED).isNull(); } /** @@ -419,7 +417,7 @@ public class CreateRulesTests extends RestTest final RestActionBodyExecTemplateModel invalidAction = new RestActionBodyExecTemplateModel(); final String actionDefinitionId = "invalid-definition-value"; invalidAction.setActionDefinitionId(actionDefinitionId); - invalidAction.setParams(Map.of("dummy-key", "dummy-value"));; + invalidAction.setParams(Map.of("dummy-key", "dummy-value")); ruleModel.setActions(List.of(invalidAction)); restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet() @@ -445,7 +443,7 @@ public class CreateRulesTests extends RestTest expectedRuleModel.setConditions(createVariousConditions()); expectedRuleModel.setTriggers(List.of("inbound")); restClient.assertStatusCodeIs(CREATED); - rule.assertThat().isEqualTo(expectedRuleModel, IGNORE_ID, IGNORE_IS_SHARED); + rule.assertThat().isEqualTo(expectedRuleModel, ID, IS_SHARED); } /** @@ -464,7 +462,7 @@ public class CreateRulesTests extends RestTest expectedRuleModel.setConditions(createCompositeCondition(null)); expectedRuleModel.setTriggers(List.of("inbound")); restClient.assertStatusCodeIs(CREATED); - rule.assertThat().isEqualTo(expectedRuleModel, IGNORE_ID, IGNORE_IS_SHARED); + rule.assertThat().isEqualTo(expectedRuleModel, ID, IS_SHARED); } /** diff --git a/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/RulesTestsUtils.java b/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/RulesTestsUtils.java index c227a2fee7..356f078cb6 100644 --- a/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/RulesTestsUtils.java +++ b/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/RulesTestsUtils.java @@ -43,9 +43,14 @@ public class RulesTestsUtils 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 List ruleTriggersDefault = List.of("inbound", "update", "outbound"); + static final String INBOUND = "inbound"; + static final String UPDATE = "update"; + static final String OUTBOUND = "outbound"; + static final List RULE_TRIGGERS_DEFAULT = List.of(INBOUND, UPDATE, OUTBOUND); static final boolean INVERTED = true; static final String AND = "and"; + static final String ID = "id"; + static final String IS_SHARED = "isShared"; /** * Create a rule model filled with default values. @@ -60,7 +65,7 @@ public class RulesTestsUtils ruleModel.setCascade(RULE_CASCADE_DEFAULT); ruleModel.setAsynchronous(RULE_ASYNC_DEFAULT); ruleModel.setIsShared(RULE_SHARED_DEFAULT); - ruleModel.setTriggers(ruleTriggersDefault); + ruleModel.setTriggers(RULE_TRIGGERS_DEFAULT); ruleModel.setErrorScript(RULE_ERROR_SCRIPT_DEFAULT); return ruleModel; diff --git a/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/UpdateRulesTests.java b/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/UpdateRulesTests.java index 819dc36a2d..be4ea977db 100644 --- a/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/UpdateRulesTests.java +++ b/packaging/tests/tas-restapi/src/test/java/org/alfresco/rest/rules/UpdateRulesTests.java @@ -25,9 +25,15 @@ */ package org.alfresco.rest.rules; +import static org.alfresco.rest.rules.RulesTestsUtils.ID; +import static org.alfresco.rest.rules.RulesTestsUtils.INBOUND; +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.createDefaultActionModel; 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.constants.UserRole.SiteCollaborator; import static org.alfresco.utility.report.log.Step.STEP; import static org.springframework.http.HttpStatus.BAD_REQUEST; @@ -39,7 +45,6 @@ import java.util.List; import java.util.Map; import com.google.common.collect.ImmutableMap; - import org.alfresco.rest.RestTest; import org.alfresco.rest.model.RestActionBodyExecTemplateModel; import org.alfresco.rest.model.RestRuleModel; @@ -84,9 +89,9 @@ public class UpdateRulesTests extends RestTest .updateRule(rule.getId(), updatedRuleModel); restClient.assertStatusCodeIs(OK); - updatedRule.assertThat().field("id").is(rule.getId()) + updatedRule.assertThat().field(ID).is(rule.getId()) .assertThat().field("name").is("Updated rule name") - .assertThat().field("isShared").isNull(); + .assertThat().field(IS_SHARED).isNull(); } /** Check we get a 404 if trying to update a rule in a folder that doesn't exist. */ @@ -184,7 +189,7 @@ public class UpdateRulesTests extends RestTest RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet() .updateRule(rule.getId(), updatedRuleModel); - updatedRule.assertThat().field("id").is(rule.getId()); + updatedRule.assertThat().field(ID).is(rule.getId()); } /** Check we can update a rule and get the included fields. */ @@ -196,10 +201,10 @@ public class UpdateRulesTests extends RestTest STEP("Try to update the rule."); RestRuleModel updatedRuleModel = createRuleModel("Updated rule name"); RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet() - .include("isShared") + .include(IS_SHARED) .updateRule(rule.getId(), updatedRuleModel); - updatedRule.assertThat().field("isShared").isNotNull(); + updatedRule.assertThat().field(IS_SHARED).isNotNull(); } /** @@ -213,7 +218,7 @@ public class UpdateRulesTests extends RestTest STEP("Try to update the rule - set no actions."); rule.setActions(null); restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet() - .include("isShared") + .include(IS_SHARED) .updateRule(rule.getId(), rule); restClient.assertStatusCodeIs(BAD_REQUEST); @@ -232,10 +237,10 @@ public class UpdateRulesTests extends RestTest final RestActionBodyExecTemplateModel invalidAction = new RestActionBodyExecTemplateModel(); final String actionDefinitionId = "invalid-definition-value"; invalidAction.setActionDefinitionId(actionDefinitionId); - invalidAction.setParams(Map.of("dummy-key", "dummy-value"));; + invalidAction.setParams(Map.of("dummy-key", "dummy-value")); rule.setActions(List.of(invalidAction)); restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet() - .include("isShared") + .include(IS_SHARED) .updateRule(rule.getId(), rule); restClient.assertStatusCodeIs(NOT_FOUND); @@ -256,7 +261,7 @@ public class UpdateRulesTests extends RestTest STEP("Try to update the rule."); rule.setName("Updated rule name"); RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet() - .include("isShared") + .include(IS_SHARED) .updateRule(rule.getId(), rule); restClient.assertStatusCodeIs(OK); @@ -265,6 +270,31 @@ public class UpdateRulesTests extends RestTest .assertThat().field("actions.params").is(List.of(ImmutableMap.of("destination-folder", destination.getNodeRef()))); } + /** Check we can use the POST response and update rule fields. */ + @Test (groups = { TestGroup.REST_API, TestGroup.RULES, TestGroup.SANITY }) + public void updateRuleFields() + { + final RestRuleModel rule = createAndSaveRule(createRuleModelWithModifiedValues()); + + STEP("Try to update the rule fields."); + rule.setName("Updated rule name"); + rule.setTriggers(List.of(INBOUND)); + final String updatedDescription = "Updated description"; + rule.setDescription(updatedDescription); + rule.setEnabled(!RULE_ENABLED_DEFAULT); + rule.setCascade(!RULE_CASCADE_DEFAULT); + rule.setAsynchronous(!RULE_ASYNC_DEFAULT); + final String updatedErrorScript = "updated-error-script"; + rule.setErrorScript(updatedErrorScript); + final RestRuleModel updatedRule = restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet() + .include(IS_SHARED) + .updateRule(rule.getId(), rule); + + restClient.assertStatusCodeIs(OK); + updatedRule.assertThat().isEqualTo(rule, ID, IS_SHARED) + .assertThat().field(ID).isNotNull(); + } + private RestRuleModel createAndSaveRule(String name) { return createAndSaveRule(name, List.of(createDefaultActionModel())); @@ -284,4 +314,17 @@ public class UpdateRulesTests extends RestTest return restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet() .createSingleRule(ruleModel); } + + /** + * Create a rule for folder and store it. + * + * @param ruleModel RuleModel used as create request + * @return The created rule. + */ + private RestRuleModel createAndSaveRule(final RestRuleModel ruleModel) + { + STEP("Create a rule: " + ruleModel); + return restClient.authenticateUser(user).withCoreAPI().usingNode(ruleFolder).usingDefaultRuleSet() + .createSingleRule(ruleModel); + } }