diff --git a/e2e-test/java/org/alfresco/rest/FunctionalCasesTests.java b/e2e-test/java/org/alfresco/rest/FunctionalCasesTests.java index dbf0059aa..a8862bb80 100644 --- a/e2e-test/java/org/alfresco/rest/FunctionalCasesTests.java +++ b/e2e-test/java/org/alfresco/rest/FunctionalCasesTests.java @@ -1,6 +1,9 @@ package org.alfresco.rest; +import org.alfresco.rest.model.RestFavoriteSiteModel; import org.alfresco.rest.model.RestSiteMemberModel; +import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection; +import org.alfresco.rest.model.RestTaskModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; @@ -14,14 +17,17 @@ import org.testng.annotations.Test; public class FunctionalCasesTests extends RestTest { private UserModel adminUserModel; - private SiteModel siteModel; + private SiteModel siteModel, moderatedSite; private RestSiteMemberModel updatedMember; + private RestSiteMembershipRequestModelsCollection returnedCollection; + private RestFavoriteSiteModel restFavoriteSiteModel; @BeforeClass(alwaysRun=true) public void dataPreparation() throws Exception { adminUserModel = dataUser.getAdminUser(); siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); + moderatedSite = dataSite.usingUser(adminUserModel).createModeratedRandomSite(); } /** @@ -99,4 +105,74 @@ public class FunctionalCasesTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.OK); updatedMember.assertThat().field("id").is(testUser.getUsername()).and().field("role").is(testUser.getUserRole()); } + + /** + * Scenario: + * 1. Create site membership request + * 2. Approve site membership request + * 3. Add site to Favorites + * 4. Delete site from Favorites + */ + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, description = "Approve request, add site to favorites, then delete it") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + public void approveRequestAddAndDeleteSiteFromFavorites() throws Exception + { + UserModel newMember = dataUser.createRandomTestUser(); + + restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + RestTaskModel taskModel = restClient.authenticateUser(newMember).withWorkflowAPI().getTasks().getTaskModelByDescription(moderatedSite); + workflow.approveSiteMembershipRequest(adminUserModel.getUsername(), adminUserModel.getPassword(), taskModel.getId(), true, "Approve"); + returnedCollection = restClient.authenticateUser(newMember).withCoreAPI().usingMe().getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.OK); + returnedCollection.assertThat().entriesListDoesNotContain("id", moderatedSite.getId()); + + restFavoriteSiteModel = restClient.authenticateUser(newMember).withCoreAPI().usingUser(newMember).addFavoriteSite(siteModel); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restFavoriteSiteModel.assertThat().field("id").is(siteModel.getId()); + + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + } + + /** + * Scenario: + * 1. Create site membership request + * 2. Reject site membership request + * 3. Add moderated site to Favorites + * 4. Create site membership request again + * 5. Approve site membership request + * 6. Delete member from site + */ + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, description = "Reject request, add moderated site to favorites, create request again and approve it") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + public void rejectRequestAddModeratedSiteToFavorites() throws Exception + { + UserModel newMember = dataUser.createRandomTestUser(); + + restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + RestTaskModel taskModel = restClient.authenticateUser(newMember).withWorkflowAPI().getTasks().getTaskModelByDescription(moderatedSite); + workflow.approveSiteMembershipRequest(adminUserModel.getUsername(), adminUserModel.getPassword(), taskModel.getId(), false, "Rejected"); + returnedCollection = restClient.authenticateUser(newMember).withCoreAPI().usingMe().getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.OK); + returnedCollection.assertThat().entriesListDoesNotContain("id", moderatedSite.getId()); + + restFavoriteSiteModel = restClient.authenticateUser(newMember).withCoreAPI().usingUser(newMember).addFavoriteSite(siteModel); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restFavoriteSiteModel.assertThat().field("id").is(siteModel.getId()); + + restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + taskModel = restClient.authenticateUser(newMember).withWorkflowAPI().getTasks().getTaskModelByDescription(moderatedSite); + workflow.approveSiteMembershipRequest(adminUserModel.getUsername(), adminUserModel.getPassword(), taskModel.getId(), true, "Accept"); + + restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(newMember).deleteSiteMember(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + } }