From 41028caa23a256596461510c7153632fc6e79213 Mon Sep 17 00:00:00 2001 From: mionescu Date: Fri, 20 Jan 2017 18:03:14 +0200 Subject: [PATCH 1/4] test - added new tests in: UpdateSiteMembershipRequestFullTests.java --- .../UpdateSiteMembershipRequestFullTests.java | 230 ++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java b/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java new file mode 100644 index 000000000..5a217fb0d --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java @@ -0,0 +1,230 @@ +package org.alfresco.rest.people; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestSiteMembershipRequestModel; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class UpdateSiteMembershipRequestFullTests extends RestTest +{ + private SiteModel moderatedSite; + private UserModel managerUser, adminUser, newMember, regularUser; + private String updatedMessage; + private RestSiteMembershipRequestModel requestUpdateModel, requestGetModel; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUser = dataUser.getAdminUser(); + managerUser = dataUser.createRandomTestUser(); + moderatedSite = dataSite.usingUser(managerUser).createModeratedRandomSite(); + updatedMessage = "Please review my request"; + + newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify admin is not able to update membership request of another user") + // @Bug(id = "MNT-16919") + public void userIsNotAbleToUpdateSiteMembershipRequestOfAdmin() throws JsonToModelConversionException, Exception + { + UserModel newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + + restClient.authenticateUser(newMember).withCoreAPI().usingUser(adminUser).updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() + .containsSummary(String.format("The entity with id: " + RestErrorModel.ENTITY_NOT_FOUND, adminUser.getUsername())) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER).stackTraceIs(RestErrorModel.STACKTRACE); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to update its own site membership request for private site") + public void userCanUpdateSiteMembershipRequestForModeratedSite() throws Exception + { + SiteModel moderatedSite = dataSite.usingUser(managerUser).createModeratedRandomSite(); + UserModel newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + + requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, updatedMessage); + restClient.assertStatusCodeIs(HttpStatus.OK); + + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()).assertThat().field("message").is("Please review my request").assertThat() + .field("site").isNotEmpty().assertThat().field("modifiedAt").isNotEmpty().assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite().assertThat().field("visibility").is(moderatedSite.getVisibility()).assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()).assertThat().field("id").is(moderatedSite.getId()).assertThat() + .field("preset").is("site-dashboard").assertThat().field("title").is(moderatedSite.getTitle()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site collaborator is able to retrieve site membership request") + public void siteCollaboratorIsAbleToUpdateSiteMembershipRequest() throws JsonToModelConversionException, Exception + { + dataUser.usingUser(managerUser).addUserToSite(newMember, moderatedSite, UserRole.SiteCollaborator); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.OK); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is("Please review my request") + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite() + .assertThat().field("role").is(UserRole.SiteCollaborator) + .assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site contributor is able to retrieve site membership request") + public void siteContributorIsAbleToUpdateSiteMembershipRequest() throws JsonToModelConversionException, Exception + { + newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + dataUser.usingUser(managerUser).addUserToSite(newMember, moderatedSite, UserRole.SiteContributor); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.OK); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is("Please review my request") + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite() + .assertThat().field("role").is(UserRole.SiteContributor) + .assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site consumer is able to retrieve site membership request") + public void siteConsumerIsAbleToUpdateSiteMembershipRequest() throws JsonToModelConversionException, Exception + { + newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + dataUser.usingUser(managerUser).addUserToSite(newMember, moderatedSite, UserRole.SiteConsumer); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.OK); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is("Please review my request") + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite() + .assertThat().field("role").is(UserRole.SiteConsumer) + .assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager is able to retrieve site membership request") + public void siteManagerIsAbleToUpdateSiteMembershipRequest() throws JsonToModelConversionException, Exception + { + newMember = dataUser.createRandomTestUser(); + dataUser.usingUser(managerUser).addUserToSite(newMember, moderatedSite, UserRole.SiteManager); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.OK); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is("Please review my request") + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite() + .assertThat().field("role").is(UserRole.SiteManager) + .assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify admin is able to retrieve site membership request") + public void adminIsAbleToRetrieveSiteMembershipRequest() throws JsonToModelConversionException, Exception + { + regularUser = dataUser.createRandomTestUser(); + SiteModel anotherModeratedSite = dataSite.usingUser(regularUser).createModeratedRandomSite(); + requestUpdateModel = restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherModeratedSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + requestUpdateModel = restClient.withCoreAPI().usingAuthUser().updateSiteMembershipRequest(anotherModeratedSite, updatedMessage); + restClient.assertStatusCodeIs(HttpStatus.OK); + requestUpdateModel.assertThat().field("id").is(anotherModeratedSite.getId()) + .assertThat().field("message").is("Please review my request") + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite() + .assertThat().field("visibility").is(anotherModeratedSite.getVisibility()) + .assertThat().field("guid").is(anotherModeratedSite.getGuid()) + .assertThat().field("description").is(anotherModeratedSite.getDescription()) + .assertThat().field("id").is(anotherModeratedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(anotherModeratedSite.getTitle()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request with initial message") + public void userUpdateWithNoMessageThenAddsNewMessage() throws Exception + { + UserModel newMember = dataUser.createRandomTestUser(); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is("Please accept me"); + + requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, ""); + + restClient.assertStatusCodeIs(HttpStatus.OK); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .and().field("modifiedAt").isNotEmpty() + .assertThat().field("message").isNull(); + + requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, updatedMessage); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is("Please review my request") + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request with initial message") + public void userUpdateSiteMembershipRequestAndCheckModifiedAtWithGet() throws Exception + { + UserModel newMember = dataUser.createRandomTestUser(); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is("Please accept me"); + + requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, updatedMessage); + requestGetModel = restClient.withCoreAPI().usingMe().getSiteMembershipRequest(moderatedSite); + + restClient.assertStatusCodeIs(HttpStatus.OK); + requestGetModel.assertThat().field("id").is(requestUpdateModel.getId()) + .and().field("modifiedAt").is(requestUpdateModel.getModifiedAt()) + .assertThat().field("message").is(requestUpdateModel.getMessage()); + } + +} From b00f403dda082f041cbbb692d9c07880c577aeda Mon Sep 17 00:00:00 2001 From: mionescu Date: Mon, 23 Jan 2017 16:00:43 +0200 Subject: [PATCH 2/4] test-added new tests --- .../UpdateSiteMembershipRequestFullTests.java | 523 ++++++++++++++---- 1 file changed, 411 insertions(+), 112 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java b/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java index 5a217fb0d..fbe49a7c9 100644 --- a/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java @@ -1,15 +1,19 @@ package org.alfresco.rest.people; import org.alfresco.rest.RestTest; +import org.alfresco.rest.core.RestRequest; import org.alfresco.rest.exception.JsonToModelConversionException; import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestSiteMembershipRequestModel; +import org.alfresco.rest.model.RestTaskModel; import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.exception.DataPreparationException; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.model.UserModel; 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; @@ -18,7 +22,7 @@ public class UpdateSiteMembershipRequestFullTests extends RestTest { private SiteModel moderatedSite; private UserModel managerUser, adminUser, newMember, regularUser; - private String updatedMessage; + private String updatedMessage, moderatedSiteId; private RestSiteMembershipRequestModel requestUpdateModel, requestGetModel; @BeforeClass(alwaysRun = true) @@ -31,200 +35,495 @@ public class UpdateSiteMembershipRequestFullTests extends RestTest newMember = dataUser.createRandomTestUser(); restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + moderatedSiteId = moderatedSite.getId(); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify admin is not able to update membership request of another user") - // @Bug(id = "MNT-16919") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify user is not able to update membership request of admin") public void userIsNotAbleToUpdateSiteMembershipRequestOfAdmin() throws JsonToModelConversionException, Exception { UserModel newMember = dataUser.createRandomTestUser(); - restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); - restClient.authenticateUser(newMember).withCoreAPI().usingUser(adminUser).updateSiteMembershipRequest(moderatedSite, updatedMessage); + restClient.authenticateUser(newMember).withCoreAPI().usingUser(adminUser) + .updateSiteMembershipRequest(moderatedSite, updatedMessage); - restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() - .containsSummary(String.format("The entity with id: " + RestErrorModel.ENTITY_NOT_FOUND, adminUser.getUsername())) - .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER).stackTraceIs(RestErrorModel.STACKTRACE); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format("The entity with id: " + RestErrorModel.ENTITY_NOT_FOUND, adminUser.getUsername())) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to update its own site membership request for private site") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify user is able to update site membership request for moderated site") public void userCanUpdateSiteMembershipRequestForModeratedSite() throws Exception { SiteModel moderatedSite = dataSite.usingUser(managerUser).createModeratedRandomSite(); UserModel newMember = dataUser.createRandomTestUser(); - restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); - requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, updatedMessage); + requestUpdateModel = restClient.withCoreAPI().usingMe() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); restClient.assertStatusCodeIs(HttpStatus.OK); - requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()).assertThat().field("message").is("Please review my request").assertThat() - .field("site").isNotEmpty().assertThat().field("modifiedAt").isNotEmpty().assertThat().field("createdAt").isNotEmpty(); - requestUpdateModel.getSite().assertThat().field("visibility").is(moderatedSite.getVisibility()).assertThat().field("guid").is(moderatedSite.getGuid()) - .assertThat().field("description").is(moderatedSite.getDescription()).assertThat().field("id").is(moderatedSite.getId()).assertThat() - .field("preset").is("site-dashboard").assertThat().field("title").is(moderatedSite.getTitle()); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is(updatedMessage) + .assertThat().field("site").isNotEmpty() + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite().assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site collaborator is able to retrieve site membership request") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify site collaborator is able to update site membership request") public void siteCollaboratorIsAbleToUpdateSiteMembershipRequest() throws JsonToModelConversionException, Exception { dataUser.usingUser(managerUser).addUserToSite(newMember, moderatedSite, UserRole.SiteCollaborator); - restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); - requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().updateSiteMembershipRequest(moderatedSite, updatedMessage); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); restClient.assertStatusCodeIs(HttpStatus.OK); requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("message").is("Please review my request") - .assertThat().field("modifiedAt").isNotEmpty() - .assertThat().field("createdAt").isNotEmpty(); - requestUpdateModel.getSite() - .assertThat().field("role").is(UserRole.SiteCollaborator) - .assertThat().field("visibility").is(moderatedSite.getVisibility()) - .assertThat().field("guid").is(moderatedSite.getGuid()) - .assertThat().field("description").is(moderatedSite.getDescription()) - .assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("preset").is("site-dashboard") - .assertThat().field("title").is(moderatedSite.getTitle()); + .assertThat().field("message").is(updatedMessage) + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite().assertThat().field("role").is(UserRole.SiteCollaborator) + .assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); } - + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site contributor is able to retrieve site membership request") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify site contributor is able to update site membership request") public void siteContributorIsAbleToUpdateSiteMembershipRequest() throws JsonToModelConversionException, Exception { newMember = dataUser.createRandomTestUser(); - restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); dataUser.usingUser(managerUser).addUserToSite(newMember, moderatedSite, UserRole.SiteContributor); - requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().updateSiteMembershipRequest(moderatedSite, updatedMessage); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); restClient.assertStatusCodeIs(HttpStatus.OK); requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("message").is("Please review my request") - .assertThat().field("modifiedAt").isNotEmpty() - .assertThat().field("createdAt").isNotEmpty(); - requestUpdateModel.getSite() - .assertThat().field("role").is(UserRole.SiteContributor) - .assertThat().field("visibility").is(moderatedSite.getVisibility()) - .assertThat().field("guid").is(moderatedSite.getGuid()) - .assertThat().field("description").is(moderatedSite.getDescription()) - .assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("preset").is("site-dashboard") - .assertThat().field("title").is(moderatedSite.getTitle()); + .assertThat().field("message").is(updatedMessage) + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite().assertThat().field("role").is(UserRole.SiteContributor) + .assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); } - + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site consumer is able to retrieve site membership request") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify site consumer is able to update site membership request") public void siteConsumerIsAbleToUpdateSiteMembershipRequest() throws JsonToModelConversionException, Exception { newMember = dataUser.createRandomTestUser(); - restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); dataUser.usingUser(managerUser).addUserToSite(newMember, moderatedSite, UserRole.SiteConsumer); - requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().updateSiteMembershipRequest(moderatedSite, updatedMessage); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); restClient.assertStatusCodeIs(HttpStatus.OK); requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("message").is("Please review my request") - .assertThat().field("modifiedAt").isNotEmpty() - .assertThat().field("createdAt").isNotEmpty(); - requestUpdateModel.getSite() - .assertThat().field("role").is(UserRole.SiteConsumer) - .assertThat().field("visibility").is(moderatedSite.getVisibility()) - .assertThat().field("guid").is(moderatedSite.getGuid()) - .assertThat().field("description").is(moderatedSite.getDescription()) - .assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("preset").is("site-dashboard") - .assertThat().field("title").is(moderatedSite.getTitle()); + .assertThat().field("message").is(updatedMessage) + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite().assertThat().field("role").is(UserRole.SiteConsumer) + .assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); } - + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager is able to retrieve site membership request") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify site manager is able to update site membership request") public void siteManagerIsAbleToUpdateSiteMembershipRequest() throws JsonToModelConversionException, Exception { newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); dataUser.usingUser(managerUser).addUserToSite(newMember, moderatedSite, UserRole.SiteManager); - requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().updateSiteMembershipRequest(moderatedSite, updatedMessage); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); restClient.assertStatusCodeIs(HttpStatus.OK); requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("message").is("Please review my request") - .assertThat().field("modifiedAt").isNotEmpty() - .assertThat().field("createdAt").isNotEmpty(); - requestUpdateModel.getSite() - .assertThat().field("role").is(UserRole.SiteManager) - .assertThat().field("visibility").is(moderatedSite.getVisibility()) - .assertThat().field("guid").is(moderatedSite.getGuid()) - .assertThat().field("description").is(moderatedSite.getDescription()) - .assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("preset").is("site-dashboard") - .assertThat().field("title").is(moderatedSite.getTitle()); + .assertThat().field("message").is(updatedMessage) + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite().assertThat().field("role").is(UserRole.SiteManager) + .assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); } - + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify admin is able to retrieve site membership request") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify admin is able to update site membership request") public void adminIsAbleToRetrieveSiteMembershipRequest() throws JsonToModelConversionException, Exception { regularUser = dataUser.createRandomTestUser(); SiteModel anotherModeratedSite = dataSite.usingUser(regularUser).createModeratedRandomSite(); - requestUpdateModel = restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherModeratedSite); + requestUpdateModel = restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(anotherModeratedSite); restClient.assertStatusCodeIs(HttpStatus.CREATED); - - requestUpdateModel = restClient.withCoreAPI().usingAuthUser().updateSiteMembershipRequest(anotherModeratedSite, updatedMessage); + + requestUpdateModel = restClient.withCoreAPI().usingAuthUser() + .updateSiteMembershipRequest(anotherModeratedSite, updatedMessage); + restClient.assertStatusCodeIs(HttpStatus.OK); requestUpdateModel.assertThat().field("id").is(anotherModeratedSite.getId()) - .assertThat().field("message").is("Please review my request") - .assertThat().field("modifiedAt").isNotEmpty() - .assertThat().field("createdAt").isNotEmpty(); - requestUpdateModel.getSite() - .assertThat().field("visibility").is(anotherModeratedSite.getVisibility()) - .assertThat().field("guid").is(anotherModeratedSite.getGuid()) - .assertThat().field("description").is(anotherModeratedSite.getDescription()) - .assertThat().field("id").is(anotherModeratedSite.getId()) - .assertThat().field("preset").is("site-dashboard") - .assertThat().field("title").is(anotherModeratedSite.getTitle()); + .assertThat().field("message").is("Please review my request") + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite().assertThat().field("visibility").is(anotherModeratedSite.getVisibility()) + .assertThat().field("guid").is(anotherModeratedSite.getGuid()) + .assertThat().field("description").is(anotherModeratedSite.getDescription()) + .assertThat().field("id").is(anotherModeratedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(anotherModeratedSite.getTitle()); } - + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request with initial message") - public void userUpdateWithNoMessageThenAddsNewMessage() throws Exception + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify user update site membership request with no message then adds a new message") + public void userUpdateSiteMembershipRequestWithNoMessageThenAddsNewMessage() throws Exception { UserModel newMember = dataUser.createRandomTestUser(); - requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); restClient.assertStatusCodeIs(HttpStatus.CREATED); requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("message").is("Please accept me"); - + .assertThat().field("message").is("Please accept me"); + requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, ""); - restClient.assertStatusCodeIs(HttpStatus.OK); requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) - .and().field("modifiedAt").isNotEmpty() - .assertThat().field("message").isNull(); - + .and().field("modifiedAt").isNotEmpty() + .assertThat().field("message").isNull(); + requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, updatedMessage); requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("message").is("Please review my request") - .assertThat().field("modifiedAt").isNotEmpty() - .assertThat().field("createdAt").isNotEmpty(); + .assertThat().field("message").is(updatedMessage) + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); } - + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request with initial message") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify user updates site membership request and verifies 'ModifiedAt' field using GET") public void userUpdateSiteMembershipRequestAndCheckModifiedAtWithGet() throws Exception { UserModel newMember = dataUser.createRandomTestUser(); - requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); restClient.assertStatusCodeIs(HttpStatus.CREATED); requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("message").is("Please accept me"); - - requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, updatedMessage); - requestGetModel = restClient.withCoreAPI().usingMe().getSiteMembershipRequest(moderatedSite); - + .assertThat().field("message").is("Please accept me"); + + requestUpdateModel = restClient.withCoreAPI().usingAuthUser().updateSiteMembershipRequest(moderatedSite, updatedMessage); + requestGetModel = restClient.withCoreAPI().usingAuthUser().getSiteMembershipRequest(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.OK); requestGetModel.assertThat().field("id").is(requestUpdateModel.getId()) - .and().field("modifiedAt").is(requestUpdateModel.getModifiedAt()) - .assertThat().field("message").is(requestUpdateModel.getMessage()); + .and().field("modifiedAt").is(requestUpdateModel.getModifiedAt()) + .assertThat().field("message").is(requestUpdateModel.getMessage()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Update membership request - empty body") + public void emptyBodyUpdateSiteMembershipRequest() throws Exception + { + restClient.authenticateUser(adminUser).withCoreAPI(); + RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, "{\"\": \"\",\"\": \"\", \"\": \"\"}", + "people/{personId}/site-membership-requests/{siteId}", adminUser.getUsername(), moderatedSite.getId()); + restClient.processModel(RestSiteMembershipRequestModel.class, request); + + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsSummary(String.format(RestErrorModel.NO_CONTENT, "Unrecognized field " + "\"\"")); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Update membership request - missing 'Title' field from Json") + public void missingTitleFieldBodyUpdateSiteMembershipRequest() throws Exception + { + SiteModel moderatedSite = dataSite.usingUser(managerUser).createModeratedRandomSite(); + UserModel newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); + + RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, + "{\"message\":\"Please review my request\",\"id\":\"" + moderatedSite.getId() + "\"}", + "people/{personId}/site-membership-requests/{siteId}", + newMember.getUsername(), moderatedSite.getId()); + requestUpdateModel = restClient.processModel(RestSiteMembershipRequestModel.class, request); + + restClient.assertStatusCodeIs(HttpStatus.OK); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is(updatedMessage) + .assertThat().field("site").isNotEmpty() + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite().assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Update site membership request - missing JSON body") + public void missingJsonFieldBodyUpdateSiteMembershipRequest() throws Exception + { + SiteModel moderatedSite = dataSite.usingUser(managerUser).createModeratedRandomSite(); + UserModel newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); + + RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, "", + "people/{personId}/site-membership-requests/{siteId}", newMember.getUsername(), + moderatedSite.getId()); + requestUpdateModel = restClient.processModel(RestSiteMembershipRequestModel.class, request); + + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError() + .containsSummary(String.format(RestErrorModel.NO_CONTENT, "No content to map to Object due to end of input")) + .containsErrorKey(String.format(RestErrorModel.NO_CONTENT, "No content to map to Object due to end of input")) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Update site membership request - empty JSON body") + public void emptyJsonFieldBodyUpdateSiteMembershipRequest() throws Exception + { + SiteModel moderatedSite = dataSite.usingUser(managerUser).createModeratedRandomSite(); + UserModel newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); + + RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, "{}", + "people/{personId}/site-membership-requests/{siteId}", newMember.getUsername(), + moderatedSite.getId()); + requestUpdateModel = restClient.processModel(RestSiteMembershipRequestModel.class, request); + + restClient.assertStatusCodeIs(HttpStatus.OK); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").isNull() + .assertThat().field("site").isNotEmpty() + .assertThat().field("modifiedAt").isNotEmpty() + .assertThat().field("createdAt").isNotEmpty(); + requestUpdateModel.getSite().assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("preset").is("site-dashboard") + .assertThat().field("title").is(moderatedSite.getTitle()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Update site membership request - invalid SiteId") + public void invalidSiteIdUpdateSiteMembershipRequest() throws Exception + { + moderatedSite.setId("invalidSiteId"); + restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, managerUser.getUsername(), moderatedSite.getId())); + + moderatedSite.setId(moderatedSiteId); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Update site membership request - empty SiteId") + public void emptySiteIdUpdateSiteMembershipRequest() throws Exception + { + moderatedSite.setId(""); + restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED) + .assertLastError() + .containsSummary(RestErrorModel.PUT_EMPTY_ARGUMENT) + .containsErrorKey(RestErrorModel.PUT_EMPTY_ARGUMENT) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + + moderatedSite.setId(moderatedSiteId); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify inexistent user is not able to update site membership request") + public void emptyUserCannotUpdateSiteMembershipRequest() throws Exception + { + UserModel emptyUser = new UserModel("", "password"); + restClient.authenticateUser(emptyUser).withCoreAPI().usingAuthUser() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Update site membership request - rejected Request") + public void rejectRequestTheUpdateSiteMembershipRequest() throws Exception + { + UserModel userWithRejectedRequests = dataUser.createRandomTestUser(); + restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + RestTaskModel taskModel = restClient.authenticateUser(userWithRejectedRequests).withWorkflowAPI().getTasks() + .getTaskModelByDescription(moderatedSite); + workflow.approveSiteMembershipRequest(managerUser.getUsername(), managerUser.getPassword(), taskModel.getId(), false, "Rejected"); + + requestUpdateModel = restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingMe() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, userWithRejectedRequests.getUsername(), moderatedSite.getId())) + .containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Update site membership request - approved Request") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + public void approveRequestTheUpdateSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception + { + UserModel userWithApprovedRequests = dataUser.createRandomTestUser(); + restClient.authenticateUser(userWithApprovedRequests).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + RestTaskModel taskModel = restClient.authenticateUser(userWithApprovedRequests).withWorkflowAPI().getTasks().getTaskModelByDescription(moderatedSite); + workflow.approveSiteMembershipRequest(managerUser.getUsername(), managerUser.getPassword(), taskModel.getId(), true, "Approve"); + + requestUpdateModel = restClient.authenticateUser(userWithApprovedRequests).withCoreAPI().usingMe() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, userWithApprovedRequests.getUsername(), moderatedSite.getId())) + .containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify user is able to update site membership request - empty message") + public void userUpdateSiteMembershipRequestWithEmptyMessage() throws Exception + { + UserModel newMember = dataUser.createRandomTestUser(); + requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is("Please accept me"); + + requestUpdateModel = restClient.withCoreAPI().usingMe() + .updateSiteMembershipRequest(moderatedSite, ""); + + restClient.assertStatusCodeIs(HttpStatus.OK); + requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) + .and().field("modifiedAt").isNotEmpty() + .assertThat().field("message").isNull(); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }, executionType = ExecutionType.REGRESSION, + description = "Update site membership request using invalid network") + public void updateSiteMembershipRequestUsingInvalidNetwork() throws Exception + { + UserModel invalidUserNetwork = dataUser.createRandomTestUser(); + SiteModel site = dataSite.usingUser(invalidUserNetwork).createModeratedRandomSite(); + dataSite.usingUser(invalidUserNetwork).usingSite(site).addSiteToFavorites(); + invalidUserNetwork.setDomain("invalidNetwork"); + + requestUpdateModel = restClient.authenticateUser(invalidUserNetwork).withCoreAPI().usingMe() + .updateSiteMembershipRequest(site, updatedMessage); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL}, executionType = ExecutionType.REGRESSION, + description = "Verify user is not able to update an inexitent site membership request") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) + public void userIsNotAbleToUpdateAnInexistentSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception + { + SiteModel moderatedSite = dataSite.usingUser(managerUser).createModeratedRandomSite(); + UserModel newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); + + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), moderatedSite.getId())); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }, executionType = ExecutionType.REGRESSION, + description = "Verify user is not able to update a deleted site membership request") + public void userCantUpdateSiteMembershipRequestForDeletedRequest() throws Exception + { + SiteModel moderatedSite = dataSite.usingUser(managerUser).createModeratedRandomSite(); + UserModel newMember = dataUser.createRandomTestUser(); + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .addSiteMembershipRequest(moderatedSite); + + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() + .deleteSiteMembershipRequest(moderatedSite); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + requestUpdateModel = restClient.withCoreAPI().usingAuthUser() + .updateSiteMembershipRequest(moderatedSite, updatedMessage); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), moderatedSite.getId())); } } From 8c70ac106dd581d172a36513039df547edf4ba9e Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Wed, 25 Jan 2017 11:49:19 +0200 Subject: [PATCH 3/4] updates: removing some @TestRail groups --- .../UpdateSiteMembershipRequestFullTests.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java b/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java index fbe49a7c9..de9774b0c 100644 --- a/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java @@ -190,7 +190,7 @@ public class UpdateSiteMembershipRequestFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify admin is able to update site membership request") - public void adminIsAbleToRetrieveSiteMembershipRequest() throws JsonToModelConversionException, Exception + public void adminIsAbleToUpdateSiteMembershipRequest() throws JsonToModelConversionException, Exception { regularUser = dataUser.createRandomTestUser(); SiteModel anotherModeratedSite = dataSite.usingUser(regularUser).createModeratedRandomSite(); @@ -391,7 +391,7 @@ public class UpdateSiteMembershipRequestFullTests extends RestTest moderatedSite.setId(moderatedSiteId); } - @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify inexistent user is not able to update site membership request") public void emptyUserCannotUpdateSiteMembershipRequest() throws Exception @@ -408,7 +408,7 @@ public class UpdateSiteMembershipRequestFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Update site membership request - rejected Request") - public void rejectRequestTheUpdateSiteMembershipRequest() throws Exception + public void rejectRequestThenUpdateSiteMembershipRequest() throws Exception { UserModel userWithRejectedRequests = dataUser.createRandomTestUser(); restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingAuthUser() @@ -432,7 +432,7 @@ public class UpdateSiteMembershipRequestFullTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Update site membership request - approved Request") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - public void approveRequestTheUpdateSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception + public void approveRequestThenUpdateSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception { UserModel userWithApprovedRequests = dataUser.createRandomTestUser(); restClient.authenticateUser(userWithApprovedRequests).withCoreAPI().usingAuthUser() @@ -474,7 +474,7 @@ public class UpdateSiteMembershipRequestFullTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }, executionType = ExecutionType.REGRESSION, + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Update site membership request using invalid network") public void updateSiteMembershipRequestUsingInvalidNetwork() throws Exception { @@ -490,9 +490,9 @@ public class UpdateSiteMembershipRequestFullTests extends RestTest .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL}, executionType = ExecutionType.REGRESSION, + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE}, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to update an inexitent site membership request") - @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) public void userIsNotAbleToUpdateAnInexistentSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception { SiteModel moderatedSite = dataSite.usingUser(managerUser).createModeratedRandomSite(); @@ -506,7 +506,7 @@ public class UpdateSiteMembershipRequestFullTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }, executionType = ExecutionType.REGRESSION, + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE}, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to update a deleted site membership request") public void userCantUpdateSiteMembershipRequestForDeletedRequest() throws Exception { From 986797b0aea86c24e5c0c35e106caa2641afbfc1 Mon Sep 17 00:00:00 2001 From: mionescu Date: Thu, 26 Jan 2017 10:04:46 +0200 Subject: [PATCH 4/4] test- removed TC 'userUpdateSiteMembershipRequestWithEmptyMessage' --- .../UpdateSiteMembershipRequestFullTests.java | 21 ------------------- 1 file changed, 21 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java b/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java index fbe49a7c9..a44186016 100644 --- a/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/UpdateSiteMembershipRequestFullTests.java @@ -452,27 +452,6 @@ public class UpdateSiteMembershipRequestFullTests extends RestTest .stackTraceIs(RestErrorModel.STACKTRACE); } - @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, - description = "Verify user is able to update site membership request - empty message") - public void userUpdateSiteMembershipRequestWithEmptyMessage() throws Exception - { - UserModel newMember = dataUser.createRandomTestUser(); - requestUpdateModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser() - .addSiteMembershipRequest(moderatedSite); - restClient.assertStatusCodeIs(HttpStatus.CREATED); - requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) - .assertThat().field("message").is("Please accept me"); - - requestUpdateModel = restClient.withCoreAPI().usingMe() - .updateSiteMembershipRequest(moderatedSite, ""); - - restClient.assertStatusCodeIs(HttpStatus.OK); - requestUpdateModel.assertThat().field("id").is(moderatedSite.getId()) - .and().field("modifiedAt").isNotEmpty() - .assertThat().field("message").isNull(); - } - @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }, executionType = ExecutionType.REGRESSION, description = "Update site membership request using invalid network")