test-added new tests

This commit is contained in:
mionescu
2017-01-23 16:00:43 +02:00
parent 41028caa23
commit b00f403dda
@@ -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()));
}
}