test: added core tests for getSiteForMember (get /people/{personId}/sites/{siteId})

This commit is contained in:
cagache
2016-11-28 15:54:03 +02:00
parent aa1dff294e
commit c7b0017145
@@ -0,0 +1,159 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestSiteEntry;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* Created by Claudia Agache on 11/28/2016.
*/
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public class GetSiteMembershipCoreTests extends RestTest
{
UserModel regularUser, publicSiteManager, privateSiteManager, moderatedSiteManager, adminUser;
SiteModel publicSite, privateSite, moderatedSite;
private DataUser.ListUserWithRoles publicSiteUsers;
private RestSiteEntry restSiteEntry;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
regularUser = dataUser.createRandomTestUser();
privateSiteManager = dataUser.createRandomTestUser();
moderatedSiteManager = dataUser.createRandomTestUser();
publicSite = dataSite.usingAdmin().createPublicRandomSite();
privateSite = dataSite.usingAdmin().createPrivateRandomSite();
moderatedSite = dataSite.usingAdmin().createModeratedRandomSite();
publicSiteUsers = dataUser.addUsersWithRolesToSite(publicSite,
UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
publicSiteManager = publicSiteUsers.getOneUserWithRole(UserRole.SiteManager);
dataUser.usingAdmin().addUserToSite(privateSiteManager, privateSite, UserRole.SiteManager);
dataUser.usingAdmin().addUserToSite(moderatedSiteManager, moderatedSite, UserRole.SiteManager);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify request using -me- string in place of personId returns site membership information for currently authenticated user.")
public void getSiteMembershipUsingMe() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator));
restSiteEntry = restClient.withCoreAPI().usingMe().getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteEntry.assertThat().field("role").is(UserRole.SiteCollaborator)
.and().field("id").is(publicSite.getId())
.and().field("site").isNotEmpty();
}
@Bug(id="REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify get site membership for a site returns status 404 when personId does not exist.")
public void getSiteMembershipUsingNonExistentPersonId() throws Exception
{
UserModel someUser = new UserModel("someUser", DataUser.PASSWORD);
restClient.authenticateUser(regularUser).withCoreAPI().usingUser(someUser).getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, "someUser"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify get site membership for a site returns status 404 when siteId does not exist.")
public void getSiteMembershipUsingNonExistentSiteId() throws Exception
{
SiteModel someSite = new SiteModel("someSite");
restClient.authenticateUser(regularUser).withCoreAPI().usingAuthUser().getSiteMembership(someSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.RELATIONSHIP_NOT_FOUND, regularUser.getUsername(), "someSite"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify get site membership for a site returns status 404 when personId is not a site member.")
public void getSiteMembershipForPersonThatIsNotSiteMember() throws Exception
{
restClient.authenticateUser(publicSiteManager).withCoreAPI()
.usingUser(regularUser).getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.RELATIONSHIP_NOT_FOUND, regularUser.getUsername(), publicSite.getTitle()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is not able to retrieve site membership information of a private site member.")
public void regularUserIsNotAbleToRetrieveSiteMembershipForPrivateSiteManager() throws Exception
{
restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(privateSiteManager).getSiteMembership(privateSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.RELATIONSHIP_NOT_FOUND, privateSiteManager.getUsername(), privateSite.getTitle()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to retrieve site membership information of a moderated site member.")
public void regularUserGetsSiteMembershipForModeratedSiteMember() throws Exception
{
restSiteEntry = restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(moderatedSiteManager).getSiteMembership(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteEntry.assertThat().field("role").is(UserRole.SiteManager)
.and().field("id").is(moderatedSite.getId())
.and().field("site").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to retrieve site membership information of a public site member.")
public void regularUserGetsSiteMembershipForPublicSiteMember() throws Exception
{
restSiteEntry = restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(publicSiteManager).getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteEntry.assertThat().field("role").is(UserRole.SiteManager)
.and().field("id").is(publicSite.getId())
.and().field("site").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify if Admin user is able to retrieve site membership information of him.")
public void adminGetsSiteMembershipForHim() throws Exception
{
restSiteEntry = restClient.authenticateUser(adminUser).withCoreAPI()
.usingUser(adminUser).getSiteMembership(privateSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteEntry.assertThat().field("role").is(UserRole.SiteManager)
.and().field("id").is(privateSite.getId())
.and().field("site").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify if Admin user is able to retrieve site membership information of him.")
public void getSiteMembershipAfterRemovingASiteMember() throws Exception
{
UserModel publicSiteConsumer = publicSiteUsers.getOneUserWithRole(UserRole.SiteConsumer);
restClient.authenticateUser(publicSiteManager).withCoreAPI()
.usingSite(publicSite).deleteSiteMember(publicSiteConsumer);
restClient.authenticateUser(publicSiteManager).withCoreAPI()
.usingUser(publicSiteConsumer).getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.RELATIONSHIP_NOT_FOUND, publicSiteConsumer.getUsername(), publicSite.getTitle()));
}
}