From 08ebf24cc9513262f299c28f235152a8edc0294d Mon Sep 17 00:00:00 2001 From: mionescu Date: Fri, 9 Dec 2016 11:41:01 +0200 Subject: [PATCH 1/5] test:added AddProcessItemCoreTests.java --- .../processes/AddProcessItemCoreTests.java | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java diff --git a/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java new file mode 100644 index 000000000..735c039de --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java @@ -0,0 +1,159 @@ +package org.alfresco.rest.workflow.processes; + +import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.rest.RestTest; +import org.alfresco.rest.core.RestRequest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestItemModel; +import org.alfresco.rest.model.RestProcessModel; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class AddProcessItemCoreTests extends RestTest +{ + private FileModel document; + private SiteModel siteModel; + private UserModel userWhoStartsProcess, assignee, adminUser, adminTenantUser, tenantUserAssignee, adminTenantUser2, tenantUser; + private RestProcessModel processModel; + private RestItemModel processItem; + + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUser = dataUser.getAdminUser(); + userWhoStartsProcess = dataUser.createRandomTestUser(); + assignee = dataUser.createRandomTestUser(); + siteModel = dataSite.usingUser(adminUser).createPublicRandomSite(); + document = dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN); + dataWorkflow.usingUser(userWhoStartsProcess).usingSite(siteModel).usingResource(document).createNewTaskAndAssignTo(assignee); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION, description = "Add process item using by the user who started the process.") + public void addProcessItemByUserThatStartedTheProcess() throws Exception + { + processModel = restClient.authenticateUser(userWhoStartsProcess).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + // document = dataContent.usingSite(siteModel).createContent(DocumentType.XML); + processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); + + restClient.assertStatusCodeIs(HttpStatus.CREATED); + processItem.assertThat().field("createdAt").isNotEmpty().and().field("size").is("19").and().field("createdBy").is(adminUser.getUsername()).and() + .field("modifiedAt").isNotEmpty().and().field("name").is(document.getName()).and().field("modifiedBy").is(userWhoStartsProcess.getUsername()) + .and().field("id").isNotEmpty().and().field("mimeType").is(document.getFileType().mimeType); + + } + + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION, description = "Add process item by a random user.") + public void addProcessItemByAnyUser() throws Exception + { + processModel = restClient.authenticateUser(assignee).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); + + restClient.assertStatusCodeIs(HttpStatus.CREATED); + processItem.assertThat().field("createdAt").isNotEmpty().and().field("size").is("19").and().field("createdBy").is(adminUser.getUsername()).and() + .field("modifiedAt").isNotEmpty().and().field("name").is(document.getName()).and().field("modifiedBy").is(assignee.getUsername()).and() + .field("id").isNotEmpty().and().field("mimeType").is(document.getFileType().mimeType); + + } + + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, description = "Add process item using by the admin in same network.") + public void addProcessItemByAdminSameNetwork() throws Exception + { + restClient.authenticateUser(adminUser); + + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.usingTenant().createTenant(adminTenantUser); + + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + tenantUserAssignee = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenantAssignee"); + + siteModel = dataSite.usingUser(adminTenantUser).createPublicRandomSite(); + dataWorkflow.usingUser(tenantUser).usingSite(siteModel).usingResource(document).createNewTaskAndAssignTo(tenantUserAssignee); + + processModel = restClient.authenticateUser(adminTenantUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); + + restClient.assertStatusCodeIs(HttpStatus.CREATED); + processItem.assertThat().field("createdAt").isNotEmpty().and().field("size").is("19").and().field("createdBy").is(adminTenantUser.getUsername()).and() + .field("modifiedAt").isNotEmpty().and().field("name").is(document.getName()).and().field("modifiedBy").is(adminTenantUser.getUsername()).and() + .field("id").isNotEmpty().and().field("mimeType").is(document.getFileType().mimeType); + + } + + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Add process item using by admin in other network.") + public void addProcessItemByAdminInOtherNetwork() throws Exception + { + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUser).usingTenant().createTenant(adminTenantUser); + tenantUserAssignee = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenantAssignee"); + + adminTenantUser2 = UserModel.getAdminTenantUser(); + restClient.usingTenant().createTenant(adminTenantUser2); + + processModel = restClient.authenticateUser(adminTenantUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + restClient.authenticateUser(adminTenantUser2); + processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PROCESS_RUNNING_IN_ANOTHER_TENANT); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION, description = "Adding process item is falling in case of invalid process id is provided") + public void failedAddingProcessItemIfInvalidProcessIdIsProvided() throws Exception + { + processModel = restClient.authenticateUser(adminUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + processModel.setId("invalidProcessId"); + processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); + + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidProcessId")); + } + + @Bug(id = "ACE-5683") + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION, description = "Adding process item is falling in case of invalid body item is provided") + public void failedAddingProcessItemIfInvalidItemBodyIsProvided() throws Exception + { + processModel = restClient.authenticateUser(adminUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{\"id\":\"invalidId\"}", "processes/{processId}/items", processModel.getId()); + restClient.processModel(RestItemModel.class, request); + + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidId")); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION, description = "Adding process item is falling in case of empty body item value is provided") + public void failedAddingProcessItemIfEmptyItemBodyIsProvided() throws Exception + { + processModel = restClient.authenticateUser(adminUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{\"id\":\"\"}", "processes/{processId}/items", processModel.getId()); + restClient.processModel(RestItemModel.class, request); + + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary("itemId is required to add an attached item"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION, description = "Adding process item is falling in case of incomplete body (empty) is provided") + public void failedAddingProcessItemIfIncompleteBodyIsProvided() throws Exception + { + processModel = restClient.authenticateUser(adminUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + + RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{}", "processes/{processId}/items", processModel.getId()); + restClient.processModel(RestItemModel.class, request); + + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary("itemId is required to add an attached item"); + } + +} From b0aa139cf130229656ae5c7bee6dc6bbaa9ee935 Mon Sep 17 00:00:00 2001 From: mionescu Date: Fri, 9 Dec 2016 12:29:49 +0200 Subject: [PATCH 2/5] test: added - AddProcessItemCoreTests.java core: added new error message: RestErrorModel.java --- .../processes/AddProcessItemCoreTests.java | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java index 735c039de..413031203 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java @@ -1,6 +1,7 @@ package org.alfresco.rest.workflow.processes; import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.dataprep.CMISUtil.Priority; import org.alfresco.rest.RestTest; import org.alfresco.rest.core.RestRequest; import org.alfresco.rest.model.RestErrorModel; @@ -26,7 +27,6 @@ public class AddProcessItemCoreTests extends RestTest private RestProcessModel processModel; private RestItemModel processItem; - @BeforeClass(alwaysRun = true) public void dataPreparation() throws Exception { @@ -43,7 +43,6 @@ public class AddProcessItemCoreTests extends RestTest public void addProcessItemByUserThatStartedTheProcess() throws Exception { processModel = restClient.authenticateUser(userWhoStartsProcess).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); - // document = dataContent.usingSite(siteModel).createContent(DocumentType.XML); processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); restClient.assertStatusCodeIs(HttpStatus.CREATED); @@ -67,12 +66,11 @@ public class AddProcessItemCoreTests extends RestTest } - @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, description = "Add process item using by the admin in same network.") + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE, TestGroup.NETWORKS }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION, description = "Add process item using by the admin in same network.") public void addProcessItemByAdminSameNetwork() throws Exception { restClient.authenticateUser(adminUser); - adminTenantUser = UserModel.getAdminTenantUser(); restClient.usingTenant().createTenant(adminTenantUser); @@ -82,18 +80,18 @@ public class AddProcessItemCoreTests extends RestTest siteModel = dataSite.usingUser(adminTenantUser).createPublicRandomSite(); dataWorkflow.usingUser(tenantUser).usingSite(siteModel).usingResource(document).createNewTaskAndAssignTo(tenantUserAssignee); - processModel = restClient.authenticateUser(adminTenantUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + processModel = restClient.withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); restClient.assertStatusCodeIs(HttpStatus.CREATED); - processItem.assertThat().field("createdAt").isNotEmpty().and().field("size").is("19").and().field("createdBy").is(adminTenantUser.getUsername()).and() - .field("modifiedAt").isNotEmpty().and().field("name").is(document.getName()).and().field("modifiedBy").is(adminTenantUser.getUsername()).and() + processItem.assertThat().field("createdAt").isNotEmpty().and().field("size").is("19").and().field("createdBy").is(adminUser.getUsername()).and() + .field("modifiedAt").isNotEmpty().and().field("name").is(document.getName()).and().field("modifiedBy").is(adminUser.getUsername()).and() .field("id").isNotEmpty().and().field("mimeType").is(document.getFileType().mimeType); } - @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Add process item using by admin in other network.") + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE, TestGroup.NETWORKS }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.SANITY, description = "Add process item using by admin in other network.") public void addProcessItemByAdminInOtherNetwork() throws Exception { adminTenantUser = UserModel.getAdminTenantUser(); @@ -103,7 +101,7 @@ public class AddProcessItemCoreTests extends RestTest adminTenantUser2 = UserModel.getAdminTenantUser(); restClient.usingTenant().createTenant(adminTenantUser2); - processModel = restClient.authenticateUser(adminTenantUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + processModel = restClient.authenticateUser(adminTenantUser).withWorkflowAPI().addProcess("activitiAdhoc", tenantUserAssignee, false, Priority.Normal); restClient.authenticateUser(adminTenantUser2); processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PROCESS_RUNNING_IN_ANOTHER_TENANT); @@ -141,7 +139,7 @@ public class AddProcessItemCoreTests extends RestTest RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{\"id\":\"\"}", "processes/{processId}/items", processModel.getId()); restClient.processModel(RestItemModel.class, request); - restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary("itemId is required to add an attached item"); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.REQUIRED_TO_ADD, "itemId")); } @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE }) @@ -153,7 +151,7 @@ public class AddProcessItemCoreTests extends RestTest RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{}", "processes/{processId}/items", processModel.getId()); restClient.processModel(RestItemModel.class, request); - restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary("itemId is required to add an attached item"); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.REQUIRED_TO_ADD, "itemId")); } } From d3bbc0f82d8f7d76a558e226e5449e9433eec90c Mon Sep 17 00:00:00 2001 From: mionescu Date: Fri, 9 Dec 2016 13:44:16 +0200 Subject: [PATCH 3/5] test: updated --- .../workflow/processes/AddProcessItemCoreTests.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java index 413031203..7b25adcff 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java @@ -124,9 +124,8 @@ public class AddProcessItemCoreTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION, description = "Adding process item is falling in case of invalid body item is provided") public void failedAddingProcessItemIfInvalidItemBodyIsProvided() throws Exception { - processModel = restClient.authenticateUser(adminUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); - RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{\"id\":\"invalidId\"}", "processes/{processId}/items", processModel.getId()); - restClient.processModel(RestItemModel.class, request); + document.setNodeRef("invalidNodeRef"); + processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidId")); } @@ -135,9 +134,8 @@ public class AddProcessItemCoreTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION, description = "Adding process item is falling in case of empty body item value is provided") public void failedAddingProcessItemIfEmptyItemBodyIsProvided() throws Exception { - processModel = restClient.authenticateUser(adminUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); - RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{\"id\":\"\"}", "processes/{processId}/items", processModel.getId()); - restClient.processModel(RestItemModel.class, request); + document.setNodeRef(""); + processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.REQUIRED_TO_ADD, "itemId")); } From 30430e3f627856671c439db7fb30a6687d2a3ec1 Mon Sep 17 00:00:00 2001 From: mionescu Date: Fri, 9 Dec 2016 15:27:15 +0200 Subject: [PATCH 4/5] test: updated tests after review: AddProcessItemCoreTests.java, AddTaskItemCoreTests.java --- .../processes/AddProcessItemCoreTests.java | 15 ++++++----- .../workflow/tasks/AddTaskItemCoreTests.java | 26 +++++++++++-------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java index 7b25adcff..4f37440fc 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java @@ -21,9 +21,9 @@ import org.testng.annotations.Test; public class AddProcessItemCoreTests extends RestTest { - private FileModel document; + private FileModel document, document2; private SiteModel siteModel; - private UserModel userWhoStartsProcess, assignee, adminUser, adminTenantUser, tenantUserAssignee, adminTenantUser2, tenantUser; + private UserModel userWhoStartsProcess, assignee, adminUser, anotherUser, adminTenantUser, tenantUserAssignee, adminTenantUser2, tenantUser; private RestProcessModel processModel; private RestItemModel processItem; @@ -56,13 +56,16 @@ public class AddProcessItemCoreTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION, description = "Add process item by a random user.") public void addProcessItemByAnyUser() throws Exception { - processModel = restClient.authenticateUser(assignee).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); - processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document); + anotherUser = dataUser.createRandomTestUser(); + siteModel = dataSite.usingUser(anotherUser).createPublicRandomSite(); + processModel = restClient.authenticateUser(anotherUser).withWorkflowAPI().addProcess("activitiAdhoc", anotherUser, false, Priority.Normal); + document2 = dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN); + processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document2); restClient.assertStatusCodeIs(HttpStatus.CREATED); processItem.assertThat().field("createdAt").isNotEmpty().and().field("size").is("19").and().field("createdBy").is(adminUser.getUsername()).and() - .field("modifiedAt").isNotEmpty().and().field("name").is(document.getName()).and().field("modifiedBy").is(assignee.getUsername()).and() - .field("id").isNotEmpty().and().field("mimeType").is(document.getFileType().mimeType); + .field("modifiedAt").isNotEmpty().and().field("name").is(document2.getName()).and().field("modifiedBy").is(anotherUser.getUsername()).and() + .field("id").is(document2.getNodeRefWithoutVersion()).and().field("mimeType").is(document2.getFileType().mimeType); } diff --git a/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskItemCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskItemCoreTests.java index f67e7771c..517b41f60 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskItemCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskItemCoreTests.java @@ -22,7 +22,7 @@ import org.testng.annotations.Test; public class AddTaskItemCoreTests extends RestTest { - private UserModel userModel, assigneeUser, adminUser; + private UserModel userModel, assigneeUser, adminUser, anotherUser; private SiteModel siteModel; private FileModel fileModel, document; private TaskModel taskModel; @@ -40,21 +40,25 @@ public class AddTaskItemCoreTests extends RestTest assigneeUser = dataUser.createRandomTestUser(); taskModel = dataWorkflow.usingUser(userModel).usingSite(siteModel).usingResource(fileModel).createNewTaskAndAssignTo(assigneeUser); - taskId = taskModel.getId(); - restClient.authenticateUser(userModel); + taskId = taskModel.getId(); } @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE }) @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, description = "Add task item using random user.") public void addTaskItemByRandomUser() throws JsonToModelConversionException, Exception { + anotherUser = dataUser.createRandomTestUser(); + restClient.authenticateUser(anotherUser); + + siteModel = dataSite.usingUser(anotherUser).createPublicRandomSite(); document = dataContent.usingSite(siteModel).createContent(DocumentType.XML); - + taskModel = dataWorkflow.usingUser(anotherUser).usingSite(siteModel).usingResource(document).createNewTaskAndAssignTo(anotherUser); + taskItem = restClient.withWorkflowAPI().usingTask(taskModel).addTaskItem(document); restClient.assertStatusCodeIs(HttpStatus.CREATED); taskItem.assertThat().field("createdAt").isNotEmpty().and().field("size").isNotEmpty().and().field("createdBy").is(adminUser.getUsername()).and() - .field("modifiedAt").isNotEmpty().and().field("name").is(document.getName()).and().field("modifiedBy").is(userModel.getUsername()).and() + .field("modifiedAt").isNotEmpty().and().field("name").is(document.getName()).and().field("modifiedBy").is(anotherUser.getUsername()).and() .field("id").is(document.getNodeRefWithoutVersion()).and().field("mimeType").is(document.getFileType().mimeType); } @@ -63,8 +67,8 @@ public class AddTaskItemCoreTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, description = "Adding task item, is falling in case invalid itemBody is provided") public void failedAddingTaskItemIfInvalidItemBodyIsProvided() throws Exception { - document.setNodeRef("invalidNodeRef"); - taskItem = restClient.withWorkflowAPI().usingTask(taskModel).addTaskItem(document); + fileModel.setNodeRef("invalidNodeRef"); + taskItem = restClient.authenticateUser(userModel).withWorkflowAPI().usingTask(taskModel).addTaskItem(fileModel); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidNodeRef")); } @@ -73,9 +77,9 @@ public class AddTaskItemCoreTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE }) @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, description = "Adding task item is falling in case empty item body is provided") public void failedAddingTaskItemIfEmptyItemBodyIsProvided() throws Exception - { - document.setNodeRef(""); - taskItem = restClient.withWorkflowAPI().usingTask(taskModel).addTaskItem(document); + { + fileModel.setNodeRef(""); + taskItem = restClient.authenticateUser(userModel).withWorkflowAPI().usingTask(taskModel).addTaskItem(fileModel); // TODO - expected error message to be added restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(""); @@ -86,7 +90,7 @@ public class AddTaskItemCoreTests extends RestTest public void failedAddingTaskItemIfInvalidTaskIdIsProvided() throws Exception { taskModel.setId("invalidTaskId"); - taskItem = restClient.withWorkflowAPI().usingTask(taskModel).addTaskItem(document); + taskItem = restClient.authenticateUser(userModel).withWorkflowAPI().usingTask(taskModel).addTaskItem(fileModel); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidTaskId")); } From 08aaf4ea35046700e9d63e3a7d220bf90d60f5cf Mon Sep 17 00:00:00 2001 From: mionescu Date: Fri, 9 Dec 2016 15:56:23 +0200 Subject: [PATCH 5/5] test: updates after review core: added new error message in rest/model/RestErrorModel.java --- .../processes/AddProcessItemCoreTests.java | 13 +++++-------- .../workflow/tasks/AddTaskItemCoreTests.java | 17 ++++------------- 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java index 4f37440fc..1ca0e1709 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/processes/AddProcessItemCoreTests.java @@ -57,16 +57,13 @@ public class AddProcessItemCoreTests extends RestTest public void addProcessItemByAnyUser() throws Exception { anotherUser = dataUser.createRandomTestUser(); - siteModel = dataSite.usingUser(anotherUser).createPublicRandomSite(); - processModel = restClient.authenticateUser(anotherUser).withWorkflowAPI().addProcess("activitiAdhoc", anotherUser, false, Priority.Normal); + document2 = dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN); - processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(document2); - - restClient.assertStatusCodeIs(HttpStatus.CREATED); - processItem.assertThat().field("createdAt").isNotEmpty().and().field("size").is("19").and().field("createdBy").is(adminUser.getUsername()).and() - .field("modifiedAt").isNotEmpty().and().field("name").is(document2.getName()).and().field("modifiedBy").is(anotherUser.getUsername()).and() - .field("id").is(document2.getNodeRefWithoutVersion()).and().field("mimeType").is(document2.getFileType().mimeType); + processModel = restClient.authenticateUser(adminUser).withWorkflowAPI().getProcesses().getOneRandomEntry().onModel(); + processItem = restClient.authenticateUser(anotherUser).withWorkflowAPI().usingProcess(processModel).addProcessItem(document2); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError() + .containsSummary(String.format(RestErrorModel.ACCESS_INFORMATION_NOT_ALLOWED, processModel.getId())); } @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE, TestGroup.NETWORKS }) diff --git a/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskItemCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskItemCoreTests.java index 517b41f60..d76138aab 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskItemCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskItemCoreTests.java @@ -40,7 +40,7 @@ public class AddTaskItemCoreTests extends RestTest assigneeUser = dataUser.createRandomTestUser(); taskModel = dataWorkflow.usingUser(userModel).usingSite(siteModel).usingResource(fileModel).createNewTaskAndAssignTo(assigneeUser); - taskId = taskModel.getId(); + taskId = taskModel.getId(); } @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE }) @@ -48,18 +48,9 @@ public class AddTaskItemCoreTests extends RestTest public void addTaskItemByRandomUser() throws JsonToModelConversionException, Exception { anotherUser = dataUser.createRandomTestUser(); - restClient.authenticateUser(anotherUser); - - siteModel = dataSite.usingUser(anotherUser).createPublicRandomSite(); - document = dataContent.usingSite(siteModel).createContent(DocumentType.XML); - taskModel = dataWorkflow.usingUser(anotherUser).usingSite(siteModel).usingResource(document).createNewTaskAndAssignTo(anotherUser); - - taskItem = restClient.withWorkflowAPI().usingTask(taskModel).addTaskItem(document); - restClient.assertStatusCodeIs(HttpStatus.CREATED); + taskItem = restClient.authenticateUser(anotherUser).withWorkflowAPI().usingTask(taskModel).addTaskItem(fileModel); - taskItem.assertThat().field("createdAt").isNotEmpty().and().field("size").isNotEmpty().and().field("createdBy").is(adminUser.getUsername()).and() - .field("modifiedAt").isNotEmpty().and().field("name").is(document.getName()).and().field("modifiedBy").is(anotherUser.getUsername()).and() - .field("id").is(document.getNodeRefWithoutVersion()).and().field("mimeType").is(document.getFileType().mimeType); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); } @Bug(id = "ACE-5683") @@ -77,7 +68,7 @@ public class AddTaskItemCoreTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE }) @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, description = "Adding task item is falling in case empty item body is provided") public void failedAddingTaskItemIfEmptyItemBodyIsProvided() throws Exception - { + { fileModel.setNodeRef(""); taskItem = restClient.authenticateUser(userModel).withWorkflowAPI().usingTask(taskModel).addTaskItem(fileModel);