REPO-2755 / REPO-2251: changed CORE and FULL groups with REGRESSION in sites package

This commit is contained in:
cagache
2017-10-09 15:21:37 +03:00
parent ee1362daf3
commit 0ceae75ca0
56 changed files with 5748 additions and 7198 deletions
@@ -1,118 +0,0 @@
package org.alfresco.rest.sites;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.rest.model.RestSiteModelsCollection;
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.HttpMethod;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* Created by Claudia Agache on 11/23/2016.
*/
public class GetSiteCoreTests extends RestTest
{
private UserModel userModel, privateSiteConsumer;
private SiteModel publicSite, privateSite, moderatedSite;
private RestSiteModel restSiteModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
userModel = dataUser.createRandomTestUser();
privateSiteConsumer = dataUser.createRandomTestUser();
publicSite = dataSite.usingAdmin().createPublicRandomSite();
privateSite = dataSite.usingAdmin().createPrivateRandomSite();
moderatedSite = dataSite.usingAdmin().createModeratedRandomSite();
dataUser.addUserToSite(privateSiteConsumer, privateSite, UserRole.SiteConsumer);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify invalid request returns status code 404 if siteId does not exist")
public void checkStatusCodeForNonExistentSiteId() throws Exception
{
restClient.authenticateUser(userModel).withCoreAPI()
.usingSite("NonExistentSiteId").getSite();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify user gets all public and moderated sites if an empty siteId is provided")
public void checkStatusCodeForEmptySiteId() throws Exception
{
restClient.authenticateUser(userModel).withCoreAPI();
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}", "");
RestSiteModelsCollection sites = restClient.processModels(RestSiteModelsCollection.class, request);
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListIsNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets public site details and status code is 200")
public void getPublicSite() throws Exception
{
restSiteModel = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(publicSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteModel.assertThat().field("visibility").is(publicSite.getVisibility())
.and().field("id").is(publicSite.getId())
.and().field("description").is(publicSite.getDescription())
.and().field("title").is(publicSite.getTitle())
.and().field("guid").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site details and status code is 200")
public void getModeratedSite() throws Exception
{
restSiteModel = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteModel.assertThat().field("visibility").is(moderatedSite.getVisibility())
.and().field("id").is(moderatedSite.getId())
.and().field("description").is(moderatedSite.getDescription())
.and().field("title").is(moderatedSite.getTitle())
.and().field("guid").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if member of a private site gets that site details and status code is 200")
public void getPrivateSiteBySiteMember() throws Exception
{
restSiteModel = restClient.authenticateUser(privateSiteConsumer).withCoreAPI()
.usingSite(privateSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteModel.assertThat().field("visibility").is(privateSite.getVisibility())
.and().field("id").is(privateSite.getId())
.and().field("description").is(privateSite.getDescription())
.and().field("title").is(privateSite.getTitle())
.and().field("guid").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user that is not member of a private site does not get that site details and status code is 200")
public void getPrivateSiteByNotASiteMember() throws Exception
{
restSiteModel = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(privateSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, privateSite.getTitle()));
}
}
@@ -1,230 +0,0 @@
package org.alfresco.rest.sites;
import static org.hamcrest.CoreMatchers.equalTo;
import java.util.List;
import org.alfresco.dataprep.SiteService.Visibility;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.core.RestResponse;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteContainerModelsCollection;
import org.alfresco.rest.model.RestSiteMemberModelsCollection;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.utility.constants.ContainerName;
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;
public class GetSiteFullTests extends RestTest
{
private UserModel adminUserModel, testUser;
private SiteModel publicSite;
private RestSiteModel restSiteModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws DataPreparationException
{
adminUserModel = dataUser.getAdminUser();
testUser = dataUser.createRandomTestUser();
restClient.authenticateUser(adminUserModel);
publicSite = dataSite.usingUser(adminUserModel).createPublicRandomSite();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Perform invalid request and check default error schema")
public void checkDefaultErrorSchema() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite("NonExistentSiteId").getSite();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL }, expectedExceptions = java.lang.AssertionError.class)
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that properties parameter is applied (guid field is mandatory, thus assertion error is expected)")
public void checkThatPropertiesParameterIsApplied() throws Exception
{
restSiteModel = restClient.authenticateUser(adminUserModel).withParams("properties=id, visibility").withCoreAPI().usingSite(publicSite).getSite();
restSiteModel.assertThat().field("id").is(publicSite.getId()).and().field("visibility").is(Visibility.PUBLIC.toString());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that properties parameter is applied")
public void checkThatPropertiesParameterIsAppliedPositiveTest() throws Exception
{
restSiteModel = restClient.authenticateUser(adminUserModel).withParams("properties=id,guid,title,visibility").withCoreAPI().usingSite(publicSite).getSite();
restSiteModel.assertThat().field("id").is(publicSite.getId()).and().field("visibility").is(Visibility.PUBLIC.toString())
.and().field("description").isNull()
.and().field("role").isNull();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Delete site then get site details")
public void deleteSiteThenGetSiteDetails() throws Exception
{
SiteModel newSite = dataSite.usingAdmin().createPublicRandomSite();
dataSite.deleteSite(newSite);
restSiteModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(newSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newSite.getId()))
.containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Delete site then get site details")
public void updateSiteVisibilityToPrivateThenGetSite() throws Exception
{
SiteModel newSite = dataSite.usingAdmin().createPublicRandomSite();
restSiteModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(newSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
dataSite.updateSiteVisibility(newSite, Visibility.PRIVATE);
restSiteModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(newSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteModel.assertThat().field("id").is(newSite.getId())
.and().field("visibility").is(Visibility.PRIVATE.toString());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION, description= "Get private site with a non member")
public void getPrivateSiteWithNonMemberUser() throws Exception
{
SiteModel newSite = dataSite.usingAdmin().createPrivateRandomSite();
restSiteModel = restClient.authenticateUser(testUser).withCoreAPI().usingSite(newSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newSite.getId()))
.containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION, description= "Get moderated site with a non member")
public void getModeratedSiteWithNonMemberUser() throws Exception
{
SiteModel newSite = dataSite.usingAdmin().createModeratedRandomSite();
restSiteModel = restClient.authenticateUser(testUser).withCoreAPI().usingSite(newSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteModel.assertThat().field("id").is(newSite.getId())
.and().field("visibility").is(Visibility.MODERATED.toString());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION, description= "Get public site with a non member")
public void getPublicSiteWithNonMemberUser() throws Exception
{
SiteModel newSite = dataSite.usingAdmin().createPublicRandomSite();
restSiteModel = restClient.authenticateUser(testUser).withCoreAPI().usingSite(newSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteModel.assertThat().field("id").is(newSite.getId())
.and().field("visibility").is(Visibility.PUBLIC.toString());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for containers")
public void checkThatRelationsParameterIsAppliedForContainers() throws Exception
{
List<Object> jsonObjects = restClient.authenticateUser(adminUserModel)
.withParams("relations=containers").withCoreAPI().usingSite(publicSite).getSiteWithRelations();
RestSiteModel siteModel = (RestSiteModel) jsonObjects.get(0);
RestSiteContainerModelsCollection containers = (RestSiteContainerModelsCollection) jsonObjects.get(1);
siteModel.assertThat().field("visibility").is(publicSite.getVisibility())
.and().field("id").is(publicSite.getId())
.and().field("description").is(publicSite.getDescription())
.and().field("title").is(publicSite.getTitle())
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
containers.assertThat().entriesListCountIs(1)
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for members")
public void checkThatRelationsParameterIsAppliedForMembers() throws Exception
{
List<Object> jsonObjects = restClient.authenticateUser(adminUserModel)
.withParams("relations=members").withCoreAPI().usingSite(publicSite).getSiteWithRelations();
RestSiteModel siteModel = (RestSiteModel) jsonObjects.get(0);
RestSiteMemberModelsCollection siteMembers = (RestSiteMemberModelsCollection) jsonObjects.get(1);
siteModel.assertThat().field("visibility").is(publicSite.getVisibility())
.and().field("id").is(publicSite.getId())
.and().field("description").is(publicSite.getDescription())
.and().field("title").is(publicSite.getTitle())
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
siteMembers.assertThat().entriesListCountIs(1)
.assertThat().entriesListContains("id", adminUserModel.getUsername())
.assertThat().entriesListContains("role", UserRole.SiteManager.toString());
siteMembers.getOneRandomEntry().onModel().assertThat().field("person.firstName").is("Administrator")
.and().field("person.id").is("admin");
}
@Test(groups="demo")
public void checkThatRelationsParameterIsAppliedForMembersCustom()
{
/*1 - select API endpoint*/
restClient.withCoreAPI();
/*2 - define request */
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}?{parameters}", publicSite.getId(), "relations=members");
/*3 - send request */
RestResponse response = restClient.authenticateUser(adminUserModel).process(request);
/*assertions */
response.assertThat().body("entry.id", equalTo(publicSite.getId()));
response.assertThat().body("relations.members.list.entries.entry[0].role", equalTo("SiteManager"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for containers and members")
public void checkThatRelationsParameterIsAppliedForContainersAndMembers() throws Exception
{
List<Object> jsonObjects = restClient.authenticateUser(adminUserModel)
.withParams("relations=containers,members").withCoreAPI().usingSite(publicSite).getSiteWithRelations();
RestSiteModel siteModel = (RestSiteModel) jsonObjects.get(0);
RestSiteContainerModelsCollection containers = (RestSiteContainerModelsCollection) jsonObjects.get(1);
RestSiteMemberModelsCollection siteMembers = (RestSiteMemberModelsCollection) jsonObjects.get(2);
siteModel.assertThat().field("visibility").is(publicSite.getVisibility())
.and().field("id").is(publicSite.getId())
.and().field("description").is(publicSite.getDescription())
.and().field("title").is(publicSite.getTitle())
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
containers.assertThat().entriesListCountIs(1)
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
siteMembers.assertThat().entriesListCountIs(1)
.assertThat().entriesListContains("id", adminUserModel.getUsername())
.assertThat().entriesListContains("role", UserRole.SiteManager.toString());
siteMembers.getOneRandomEntry().onModel().assertThat().field("person.firstName").is("Administrator")
.and().field("person.id").is("admin");
}
}
@@ -1,120 +0,0 @@
package org.alfresco.rest.sites;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.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;
/**
* @author iulia.cojocea
*/
public class GetSiteSanityTests extends RestTest
{
private UserModel adminUserModel;
private ListUserWithRoles usersWithRoles;
private UserModel userModel;
private SiteModel siteModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws DataPreparationException
{
adminUserModel = dataUser.getAdminUser();
restClient.authenticateUser(adminUserModel);
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets site information and gets status code OK (200)")
public void getSiteWithManagerRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(siteModel)
.getSite()
.and().field("id").is(siteModel.getId())
.and().field("title").is(siteModel.getTitle());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Collaborator role gets site information and gets status code OK (200)")
public void getSiteWithCollaboratorRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI().usingSite(siteModel)
.getSite()
.and().field("id").is(siteModel.getId())
.and().field("title").is(siteModel.getTitle());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Contributor role gets site information and gets status code OK (200)")
public void getSiteWithContributorRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor))
.withCoreAPI().usingSite(siteModel)
.getSite()
.and().field("id").is(siteModel.getId())
.and().field("title").is(siteModel.getTitle());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Consumer role gets site information and gets status code OK (200)")
public void getSiteWithConsumerRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingSite(siteModel)
.getSite()
.and().field("id").is(siteModel.getId())
.and().field("title").is(siteModel.getTitle());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with admin role gets site information and gets status code OK (200)")
public void getSiteWithAdminRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(siteModel)
.getSite()
.and().field("id").is(siteModel.getId())
.and().field("title").is(siteModel.getTitle());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get site call returns status code 401")
@Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSite() throws JsonToModelConversionException, Exception
{
userModel = dataUser.createRandomTestUser();
userModel.setPassword("user wrong password");
dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel).withParams("maxItems=10000")
.withCoreAPI()
.getSites();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,362 @@
package org.alfresco.rest.sites;
import org.alfresco.dataprep.SiteService;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.core.RestResponse;
import org.alfresco.rest.model.*;
import org.alfresco.utility.constants.ContainerName;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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;
import java.util.List;
import static org.hamcrest.CoreMatchers.equalTo;
/**
* @author iulia.cojocea
*/
public class GetSiteTests extends RestTest
{
private UserModel adminUserModel;
private ListUserWithRoles usersWithRoles;
private UserModel userModel, privateSiteConsumer;
private SiteModel publicSite, privateSite, moderatedSite;
private RestSiteModel restSiteModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws DataPreparationException
{
adminUserModel = dataUser.getAdminUser();
restClient.authenticateUser(adminUserModel);
publicSite = dataSite.usingUser(adminUserModel).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(publicSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
userModel = dataUser.createRandomTestUser();
privateSiteConsumer = dataUser.createRandomTestUser();
privateSite = dataSite.usingAdmin().createPrivateRandomSite();
moderatedSite = dataSite.usingAdmin().createModeratedRandomSite();
dataUser.addUserToSite(privateSiteConsumer, privateSite, UserRole.SiteConsumer);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets site information and gets status code OK (200)")
public void getSiteWithManagerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSite)
.getSite()
.and().field("id").is(publicSite.getId())
.and().field("title").is(publicSite.getTitle());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site information and gets status code OK (200)")
public void getSiteWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI().usingSite(publicSite)
.getSite()
.and().field("id").is(publicSite.getId())
.and().field("title").is(publicSite.getTitle());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets site information and gets status code OK (200)")
public void getSiteWithContributorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor))
.withCoreAPI().usingSite(publicSite)
.getSite()
.and().field("id").is(publicSite.getId())
.and().field("title").is(publicSite.getTitle());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role gets site information and gets status code OK (200)")
public void getSiteWithConsumerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingSite(publicSite)
.getSite()
.and().field("id").is(publicSite.getId())
.and().field("title").is(publicSite.getTitle());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with admin role gets site information and gets status code OK (200)")
public void getSiteWithAdminRole() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(publicSite)
.getSite()
.and().field("id").is(publicSite.getId())
.and().field("title").is(publicSite.getTitle());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get site call returns status code 401")
// @Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSite() throws Exception
{
UserModel unauthenticatedManager = dataUser.createRandomTestUser();
unauthenticatedManager.setPassword("user wrong password");
dataUser.addUserToSite(unauthenticatedManager, publicSite, UserRole.SiteManager);
restClient.authenticateUser(unauthenticatedManager).withParams("maxItems=10000")
.withCoreAPI()
.getSites();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify invalid request returns status code 404 if siteId does not exist")
public void checkStatusCodeForNonExistentSiteId() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite("NonExistentSiteId").getSite();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify user gets all public and moderated sites if an empty siteId is provided")
public void checkStatusCodeForEmptySiteId() throws Exception
{
restClient.authenticateUser(userModel).withCoreAPI();
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}", "");
RestSiteModelsCollection sites = restClient.processModels(RestSiteModelsCollection.class, request);
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListIsNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets public site details and status code is 200")
public void getPublicSiteByNotASiteMember() throws Exception
{
restSiteModel = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(publicSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteModel.assertThat().field("visibility").is(publicSite.getVisibility())
.and().field("id").is(publicSite.getId())
.and().field("description").is(publicSite.getDescription())
.and().field("title").is(publicSite.getTitle())
.and().field("guid").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site details and status code is 200")
public void getModeratedSiteByNotASiteMember() throws Exception
{
restSiteModel = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteModel.assertThat().field("visibility").is(moderatedSite.getVisibility())
.and().field("id").is(moderatedSite.getId())
.and().field("description").is(moderatedSite.getDescription())
.and().field("title").is(moderatedSite.getTitle())
.and().field("guid").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if member of a private site gets that site details and status code is 200")
public void getPrivateSiteBySiteMember() throws Exception
{
restSiteModel = restClient.authenticateUser(privateSiteConsumer).withCoreAPI()
.usingSite(privateSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteModel.assertThat().field("visibility").is(privateSite.getVisibility())
.and().field("id").is(privateSite.getId())
.and().field("description").is(privateSite.getDescription())
.and().field("title").is(privateSite.getTitle())
.and().field("guid").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user that is not member of a private site does not get that site details and status code is 200")
public void getPrivateSiteByNotASiteMember() throws Exception
{
restSiteModel = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(privateSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, privateSite.getTitle()))
.containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION }, expectedExceptions = java.lang.AssertionError.class)
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that properties parameter is applied (guid field is mandatory, thus assertion error is expected)")
public void checkThatPropertiesParameterIsApplied() throws Exception
{
restSiteModel = restClient.authenticateUser(adminUserModel).withParams("properties=id, visibility").withCoreAPI().usingSite(publicSite).getSite();
restSiteModel.assertThat().field("id").is(publicSite.getId()).and().field("visibility").is(SiteService.Visibility.PUBLIC.toString());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that properties parameter is applied")
public void checkThatPropertiesParameterIsAppliedPositiveTest() throws Exception
{
restSiteModel = restClient.authenticateUser(adminUserModel).withParams("properties=id,guid,title,visibility").withCoreAPI().usingSite(publicSite).getSite();
restSiteModel.assertThat().field("id").is(publicSite.getId()).and().field("visibility").is(SiteService.Visibility.PUBLIC.toString())
.and().field("description").isNull()
.and().field("role").isNull();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Delete site then get site details")
public void deleteSiteThenGetSiteDetails() throws Exception
{
SiteModel newSite = dataSite.usingAdmin().createPublicRandomSite();
dataSite.deleteSite(newSite);
restSiteModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(newSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newSite.getId()))
.containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Delete site then get site details")
public void updateSiteVisibilityToPrivateThenGetSite() throws Exception
{
SiteModel newSite = dataSite.usingAdmin().createPublicRandomSite();
restSiteModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(newSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
dataSite.updateSiteVisibility(newSite, SiteService.Visibility.PRIVATE);
restSiteModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(newSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteModel.assertThat().field("id").is(newSite.getId())
.and().field("visibility").is(SiteService.Visibility.PRIVATE.toString());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for containers")
public void checkThatRelationsParameterIsAppliedForContainers() throws Exception
{
List<Object> jsonObjects = restClient.authenticateUser(adminUserModel)
.withParams("relations=containers").withCoreAPI().usingSite(publicSite).getSiteWithRelations();
RestSiteModel siteModel = (RestSiteModel) jsonObjects.get(0);
RestSiteContainerModelsCollection containers = (RestSiteContainerModelsCollection) jsonObjects.get(1);
siteModel.assertThat().field("visibility").is(publicSite.getVisibility())
.and().field("id").is(publicSite.getId())
.and().field("description").is(publicSite.getDescription())
.and().field("title").is(publicSite.getTitle())
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
containers.assertThat().entriesListCountIs(1)
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for members")
public void checkThatRelationsParameterIsAppliedForMembers() throws Exception
{
SiteModel publicRandomSite = dataSite.usingUser(adminUserModel).createPublicRandomSite();
List<Object> jsonObjects = restClient.authenticateUser(adminUserModel)
.withParams("relations=members").withCoreAPI().usingSite(publicRandomSite).getSiteWithRelations();
RestSiteModel siteModel = (RestSiteModel) jsonObjects.get(0);
RestSiteMemberModelsCollection siteMembers = (RestSiteMemberModelsCollection) jsonObjects.get(1);
siteModel.assertThat().field("visibility").is(publicRandomSite.getVisibility())
.and().field("id").is(publicRandomSite.getId())
.and().field("description").is(publicRandomSite.getDescription())
.and().field("title").is(publicRandomSite.getTitle())
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
siteMembers.assertThat().entriesListCountIs(1)
.assertThat().entriesListContains("id", adminUserModel.getUsername())
.assertThat().entriesListContains("role", UserRole.SiteManager.toString());
siteMembers.getOneRandomEntry().onModel().assertThat().field("person.firstName").is("Administrator")
.and().field("person.id").is("admin");
}
@Test(groups="demo")
public void checkThatRelationsParameterIsAppliedForMembersCustom()
{
/*1 - select API endpoint*/
restClient.withCoreAPI();
/*2 - define request */
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}?{parameters}", publicSite.getId(), "relations=members");
/*3 - send request */
RestResponse response = restClient.authenticateUser(adminUserModel).process(request);
/*assertions */
response.assertThat().body("entry.id", equalTo(publicSite.getId()));
response.assertThat().body("relations.members.list.entries.entry[0].role", equalTo("SiteManager"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for containers and members")
public void checkThatRelationsParameterIsAppliedForContainersAndMembers() throws Exception
{
SiteModel publicRandomSite = dataSite.usingUser(adminUserModel).createPublicRandomSite();
List<Object> jsonObjects = restClient.authenticateUser(adminUserModel)
.withParams("relations=containers,members").withCoreAPI().usingSite(publicRandomSite).getSiteWithRelations();
RestSiteModel siteModel = (RestSiteModel) jsonObjects.get(0);
RestSiteContainerModelsCollection containers = (RestSiteContainerModelsCollection) jsonObjects.get(1);
RestSiteMemberModelsCollection siteMembers = (RestSiteMemberModelsCollection) jsonObjects.get(2);
siteModel.assertThat().field("visibility").is(publicRandomSite.getVisibility())
.and().field("id").is(publicRandomSite.getId())
.and().field("description").is(publicRandomSite.getDescription())
.and().field("title").is(publicRandomSite.getTitle())
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
containers.assertThat().entriesListCountIs(1)
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
siteMembers.assertThat().entriesListCountIs(1)
.assertThat().entriesListContains("id", adminUserModel.getUsername())
.assertThat().entriesListContains("role", UserRole.SiteManager.toString());
siteMembers.getOneRandomEntry().onModel().assertThat().field("person.firstName").is("Administrator")
.and().field("person.id").is("admin");
}
}
@@ -1,150 +0,0 @@
package org.alfresco.rest.sites;
import java.util.List;
import org.alfresco.dataprep.SiteService.Visibility;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.rest.model.RestSiteModelsCollection;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.RandomData;
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.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* Created by Claudia Agache on 11/22/2016.
*/
public class GetSitesCoreTests extends RestTest
{
private UserModel regularUser, privateSiteManager, privateSiteConsumer;
private SiteModel publicSite, privateSite, moderatedSite, deletedSite;
private RestSiteModelsCollection sites;
private SiteModel siteModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
regularUser = dataUser.createRandomTestUser();
privateSiteManager = dataUser.createRandomTestUser();
privateSiteConsumer = dataUser.createRandomTestUser();
siteModel = new SiteModel(RandomData.getRandomName("0-PublicSite"));
publicSite = dataSite.usingAdmin().createSite(siteModel);
siteModel = new SiteModel(RandomData.getRandomName("0-PrivateSite"), Visibility.PRIVATE);
privateSite = dataSite.usingAdmin().createSite(siteModel);
siteModel = new SiteModel(RandomData.getRandomName("0-ModeratedSite"), Visibility.MODERATED);
moderatedSite = dataSite.usingAdmin().createSite(siteModel);
dataUser.addUserToSite(privateSiteManager, privateSite, UserRole.SiteManager);
dataUser.addUserToSite(privateSiteConsumer, privateSite, UserRole.SiteConsumer);
deletedSite = dataSite.usingAdmin().createPublicRandomSite();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get sites request returns status code 400 when invalid maxItems parameter is used")
public void getSitesWithInvalidMaxItems() throws Exception
{
restClient.authenticateUser(regularUser).withParams("maxItems=0=09")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "0=09"));
restClient.withParams("maxItems=A")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "A"));
restClient.withParams("maxItems=0")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get sites request returns status code 400 when invalid skipCount parameter is used")
public void getSitesWithInvalidSkipCount() throws Exception
{
restClient.authenticateUser(regularUser).withParams("skipCount=A")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "A"));
restClient.authenticateUser(regularUser).withParams("skipCount=-1")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if User gets sites ordered by title ascending and status code is 200")
public void getSitesOrderedByNameASC() throws Exception
{
sites = restClient.authenticateUser(privateSiteManager).withParams("orderBy=title ASC")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListIsNotEmpty();
List<RestSiteModel> sitesList = sites.getEntries();
sitesList.get(0).onModel().assertThat().field("title").is(moderatedSite.getTitle());
sitesList.get(1).onModel().assertThat().field("title").is(privateSite.getTitle());
sitesList.get(2).onModel().assertThat().field("title").is(publicSite.getTitle());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if a regular user gets all public and moderated sites and status code is 200")
public void regularUserGetsOnlyPublicAndModeratedSites() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams("maxItems=5000")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListContains("title", publicSite.getTitle())
.and().entriesListContains("title", moderatedSite.getTitle())
.and().entriesListDoesNotContain("title", privateSite.getTitle());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if a member of a private site gets the private site, all public sites and all moderated sites. Verify if status code is 200")
public void privateSiteMemberGetsSitesVisibleForHim() throws Exception
{
sites = restClient.authenticateUser(privateSiteConsumer).withParams("maxItems=5000")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListContains("title", publicSite.getTitle())
.and().entriesListContains("title", moderatedSite.getTitle())
.and().entriesListContains("title", privateSite.getTitle());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if a site is not retrieved anymore after deletion and status code is 200")
public void checkDeletedSiteIsNotRetrieved() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams("maxItems=5000").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListContains("title", deletedSite.getTitle());
dataSite.usingAdmin().deleteSite(deletedSite);
sites = restClient.withParams("maxItems=5000").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListDoesNotContain("title", deletedSite.getTitle());
}
@AfterClass(alwaysRun=true)
public void cleanup() throws Exception
{
dataSite.usingAdmin().deleteSite(moderatedSite);
dataSite.usingAdmin().deleteSite(privateSite);
dataSite.usingAdmin().deleteSite(publicSite);
}
}
@@ -1,298 +0,0 @@
package org.alfresco.rest.sites;
import java.util.List;
import org.alfresco.dataprep.SiteService.Visibility;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteContainerModelsCollection;
import org.alfresco.rest.model.RestSiteMemberModelsCollection;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.rest.model.RestSiteModelsCollection;
import org.alfresco.utility.constants.ContainerName;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.RandomData;
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.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class GetSitesFullTests extends RestTest
{
private UserModel regularUser;
private SiteModel publicSite, secondSite, privateSite, moderatedSite;
private RestSiteModelsCollection sites;
private String name;
private UserModel adminUser;
private SiteModel secondPublicSite, thirdPublicSite;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
name = RandomData.getRandomName("ZZZZZZZZZ-PublicSite");
regularUser = dataUser.createRandomTestUser();
publicSite = dataSite.usingAdmin().createSite(new SiteModel(Visibility.PUBLIC, "guid", name, name, name));
privateSite = dataSite.usingAdmin().createSite(new SiteModel(RandomData.getRandomName("ZZZZZZZZZ-PrivateSite"), Visibility.PRIVATE));
moderatedSite = dataSite.usingAdmin().createSite(new SiteModel(RandomData.getRandomName("ZZZZZZZZZ-ModeratedSite"), Visibility.MODERATED));
secondSite = dataSite.usingAdmin().createSite(new SiteModel(RandomData.getRandomName("000000000-PublicSite")));
dataUser.addUserToSite(regularUser, privateSite, UserRole.SiteManager);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if User gets sites ordered by title descending and status code is 200")
public void getSitesOrderedByTitleDESC() throws Exception
{
int totalItems = restClient.authenticateUser(regularUser).withCoreAPI().getSites().getPagination().getTotalItems();
sites = restClient.authenticateUser(regularUser).withParams(String.format("maxItems=%s&orderBy=title DESC", totalItems))
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListIsNotEmpty();
List<RestSiteModel> sitesList = sites.getEntries();
sitesList.get(0).onModel().assertThat().field("title").is(publicSite.getTitle());
sitesList.get(1).onModel().assertThat().field("title").is(privateSite.getTitle());
sitesList.get(2).onModel().assertThat().field("title").is(moderatedSite.getTitle());
sitesList.get(sitesList.size()-1).onModel().assertThat().field("title").is(secondSite.getTitle());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if User gets sites ordered by id ascending and status code is 200")
public void getSitesOrderedByIdASC() throws Exception
{
int totalItems = restClient.authenticateUser(regularUser).withCoreAPI().getSites().getPagination().getTotalItems();
sites = restClient.authenticateUser(regularUser).withParams(String.format("maxItems=%s&orderBy=id ASC", totalItems))
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListIsNotEmpty();
List<RestSiteModel> sitesList = sites.getEntries();
sitesList.get(sitesList.size()-1).onModel().assertThat().field("id").is(publicSite.getId());
sitesList.get(sitesList.size()-2).onModel().assertThat().field("id").is(privateSite.getId());
sitesList.get(sitesList.size()-3).onModel().assertThat().field("id").is(moderatedSite.getId());
sitesList.get(0).onModel().assertThat().field("id").is(secondSite.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify pagination")
public void checkPagination() throws Exception
{
sites = restClient.authenticateUser(regularUser).withCoreAPI().getSites();
sites.getPagination().assertThat()
.field("totalItems").isNotEmpty().and()
.field("maxItems").is("100").and()
.field("hasMoreItems").is((sites.getPagination().getTotalItems() > sites.getPagination().getMaxItems()) ? "true" : "false").and()
.field("skipCount").is("0").and()
.field("count").is((sites.getPagination().isHasMoreItems()) ? sites.getPagination().getMaxItems() : sites.getPagination().getTotalItems());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify user can get only first two sites and status code is 200")
public void getFirstTwoSites() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams(String.format("maxItems=%s&orderBy=id DESC", 2))
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.getPagination().assertThat().field("maxItems").is("2").and().field("count").is("2");
sites.assertThat().entriesListCountIs(2).and().entriesListDoesNotContain(moderatedSite.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify user can get sites using high skipCount parameter and status code is 200")
public void getSitesUsingHighSkipCount() throws Exception
{
RestSiteModelsCollection allSites = restClient.authenticateUser(regularUser).withCoreAPI().getSites();
sites = restClient.withParams("skipCount=100").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().paginationField("skipCount").is("100");
if(allSites.getPagination().getTotalItems() > 100)
sites.assertThat().entriesListIsNotEmpty();
else
sites.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify user can not get sites using zero maxItems parameter and status code is 400")
public void userCanNotGetSitesUsingZeroMaxItems() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams("maxItems=0").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError()
.containsErrorKey(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS)
.containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify that getSites request applies valid properties param and status code is 200")
public void getSitesRequestWithValidPropertiesParam() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams("properties=id").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListDoesNotContain("description")
.assertThat().entriesListDoesNotContain("title")
.assertThat().entriesListDoesNotContain("visibility")
.assertThat().entriesListDoesNotContain("guid")
.assertThat().entriesListContains("id");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify pagination when skipCount and MaxItems are used")
public void checkPaginationWithSkipCountAndMaxItems() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams("skipCount=10&maxItems=110").withCoreAPI().getSites();
sites.getPagination().assertThat()
.field("totalItems").isNotEmpty().and()
.field("maxItems").is("110").and()
.field("hasMoreItems").is((sites.getPagination().getTotalItems() - sites.getPagination().getSkipCount() > sites.getPagination().getMaxItems())?"true":"false").and()
.field("skipCount").is("10").and()
.field("count").is((sites.getPagination().isHasMoreItems()) ? sites.getPagination().getMaxItems()
: sites.getPagination().getTotalItems() - sites.getPagination().getSkipCount());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if User gets sites ordered by id ascending and status code is 200")
public void getSitesOrderedByTitleASCAndVisibilityASC() throws Exception
{
secondPublicSite = dataSite.usingAdmin().createSite(
new SiteModel(Visibility.PUBLIC, "guid", name+"A", name+"A", name));
thirdPublicSite = dataSite.usingAdmin().createSite(
new SiteModel(Visibility.PUBLIC, "guid", name+"B", name+"B", name));
int totalItems = restClient.authenticateUser(regularUser).withCoreAPI().getSites().getPagination().getTotalItems();
sites = restClient.authenticateUser(regularUser).withParams(String.format("maxItems=%s&orderBy=title ASC&orderBy=description ASC", totalItems))
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListIsNotEmpty();
List<RestSiteModel> sitesList = sites.getEntries();
sitesList.get(sitesList.size()-1).onModel().assertThat().field("title").is(thirdPublicSite.getTitle());
sitesList.get(sitesList.size()-2).onModel().assertThat().field("title").is(secondPublicSite.getTitle());
dataSite.deleteSite(secondPublicSite);
secondPublicSite = null;
dataSite.deleteSite(thirdPublicSite);
thirdPublicSite = null;
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for containers")
public void checkThatRelationsParameterIsAppliedForContainers() throws Exception
{
List<List<Object>> jsonObjects = restClient.authenticateUser(adminUser)
.withParams("relations=containers").withCoreAPI().usingSite(publicSite).getSitesWithRelations();
List<Object> siteObjects = jsonObjects.get(0);
for (int i = 0; i < siteObjects.size(); i++)
{
RestSiteModel siteModel = (RestSiteModel) siteObjects.get(i);
siteModel.assertThat().field("visibility").isNotEmpty()
.and().field("id").isNotEmpty()
.and().field("title").isNotEmpty()
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
}
List<Object> containerObjects = jsonObjects.get(1);
for (int i = 0; i < containerObjects.size(); i++)
{
RestSiteContainerModelsCollection containers = (RestSiteContainerModelsCollection) containerObjects.get(i);
containers.assertThat().entriesListIsNotEmpty().and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
}
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for members")
public void checkThatRelationsParameterIsAppliedForMembers() throws Exception
{
List<List<Object>> jsonObjects = restClient.authenticateUser(adminUser)
.withParams("relations=members").withCoreAPI().usingSite(publicSite).getSitesWithRelations();
List<Object> siteObjects = jsonObjects.get(0);
for (int i = 0; i < siteObjects.size(); i++)
{
RestSiteModel siteModel = (RestSiteModel) siteObjects.get(i);
siteModel.assertThat().field("visibility").isNotEmpty()
.and().field("id").isNotEmpty()
.and().field("title").isNotEmpty()
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
}
List<Object> memberObjects = jsonObjects.get(1);
for (int i = 0; i < memberObjects.size(); i++)
{
RestSiteMemberModelsCollection siteMembers = (RestSiteMemberModelsCollection) memberObjects.get(i);
siteMembers.assertThat().entriesListIsNotEmpty().assertThat().entriesListContains("id").assertThat().entriesListContains("role", UserRole.SiteManager.toString());
siteMembers.getOneRandomEntry().onModel().assertThat().field("person.firstName").isNotEmpty().and().field("person.id").isNotEmpty();
}
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL } )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for members and containers")
public void checkThatRelationsParameterIsAppliedForMembersAndContainers() throws Exception
{
List<List<Object>> jsonObjects = restClient.authenticateUser(adminUser)
.withParams("relations=containers,members").withCoreAPI().usingSite(publicSite).getSitesWithRelations();
List<Object> siteObjects = jsonObjects.get(0);
for (int i = 0; i < siteObjects.size(); i++)
{
RestSiteModel siteModel = (RestSiteModel) siteObjects.get(i);
siteModel.assertThat().field("visibility").isNotEmpty()
.and().field("id").isNotEmpty()
.and().field("title").isNotEmpty()
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
}
List<Object> containerObjects = jsonObjects.get(1);
for (int i = 0; i < containerObjects.size(); i++)
{
RestSiteContainerModelsCollection containers = (RestSiteContainerModelsCollection) containerObjects.get(i);
containers.assertThat().entriesListIsNotEmpty().and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
}
List<Object> memberObjects = jsonObjects.get(2);
for (int i = 0; i < memberObjects.size(); i++)
{
RestSiteMemberModelsCollection siteMembers = (RestSiteMemberModelsCollection) memberObjects.get(i);
siteMembers.assertThat().entriesListIsNotEmpty().assertThat().entriesListContains("id").assertThat().entriesListContains("role", UserRole.SiteManager.toString());
siteMembers.getOneRandomEntry().onModel().assertThat().field("person.firstName").isNotEmpty().and().field("person.id").isNotEmpty();
}
}
@AfterMethod(alwaysRun=true)
public void deleteSites() throws Exception
{
if(secondPublicSite != null)
dataSite.deleteSite(secondPublicSite);
if(thirdPublicSite != null)
dataSite.deleteSite(thirdPublicSite);
}
@AfterClass(alwaysRun=true)
public void tearDown() throws Exception
{
dataSite.deleteSite(publicSite);
dataSite.deleteSite(privateSite);
dataSite.deleteSite(moderatedSite);
dataSite.deleteSite(secondSite);
}
}
@@ -1,117 +0,0 @@
package org.alfresco.rest.sites;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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;
/**
* @author iulia.cojocea
*/
public class GetSitesSanityTests extends RestTest
{
private UserModel adminUserModel;
private UserModel userModel;
private ListUserWithRoles usersWithRoles;
private SiteModel siteModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel,UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Verify user with Manager role gets sites information and gets status code OK (200)")
public void managerIsAbleToRetrieveSites() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withParams("maxItems=10000")
.withCoreAPI().getSites()
.assertThat().entriesListIsNotEmpty()
.assertThat().entriesListContains("id", siteModel.getId())
.and().paginationExist();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Collaborator role gets sites information and gets status code OK (200)")
public void collaboratorIsAbleToRetrieveSites() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("maxItems=10000")
.withCoreAPI().getSites().assertThat().entriesListIsNotEmpty()
.assertThat().entriesListContains("id", siteModel.getId())
.and().paginationExist();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Contributor role gets sites information and gets status code OK (200)")
public void contributorIsAbleToRetrieveSites() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withParams("maxItems=10000")
.withCoreAPI().getSites()
.assertThat().entriesListIsNotEmpty()
.assertThat().entriesListContains("id", siteModel.getId())
.and().paginationExist();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Consumer role gets sites information and gets status code OK (200)")
public void consumerIsAbleToRetrieveSites() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withParams("maxItems=10000")
.withCoreAPI().getSites()
.assertThat().entriesListIsNotEmpty()
.assertThat().entriesListContains("id", siteModel.getId())
.and().paginationExist();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Admin user gets sites information and gets status code OK (200)")
public void adminUserIsAbleToRetrieveSites() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUserModel).withParams("maxItems=10000")
.withCoreAPI().getSites()
.assertThat().entriesListIsNotEmpty()
.assertThat().entriesListContains("id", siteModel.getId())
.and().paginationExist();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get sites call returns status code 401")
@Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSites() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
userModel = dataUser.createRandomTestUser();
userModel.setPassword("user wrong password");
dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel).withParams("maxItems=1")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,484 @@
package org.alfresco.rest.sites;
import org.alfresco.dataprep.SiteService;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.*;
import org.alfresco.utility.constants.ContainerName;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.data.RandomData;
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.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.util.List;
/**
* @author iulia.cojocea
*/
public class GetSitesTests extends RestTest
{
private UserModel adminUser;
private UserModel lastPrivateSiteManager;
private ListUserWithRoles usersWithRoles;
private SiteModel siteModel;
private UserModel regularUser, privateSiteManager, privateSiteConsumer;
private SiteModel firstPublicSite, firstPrivateSite, firstModeratedSite, deletedSite;
private SiteModel lastPublicSite, lastPrivateSite, lastModeratedSite;
private RestSiteModelsCollection sites;
private String name;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
regularUser = dataUser.createRandomTestUser();
lastPrivateSiteManager = dataUser.createRandomTestUser();
privateSiteManager = dataUser.createRandomTestUser();
privateSiteConsumer = dataUser.createRandomTestUser();
siteModel = new SiteModel(RandomData.getRandomName("0-PublicSite"));
firstPublicSite = dataSite.usingAdmin().createSite(siteModel);
siteModel = new SiteModel(RandomData.getRandomName("0-PrivateSite"), SiteService.Visibility.PRIVATE);
firstPrivateSite = dataSite.usingAdmin().createSite(siteModel);
siteModel = new SiteModel(RandomData.getRandomName("0-ModeratedSite"), SiteService.Visibility.MODERATED);
firstModeratedSite = dataSite.usingAdmin().createSite(siteModel);
dataUser.addUserToSite(privateSiteManager, firstPrivateSite, UserRole.SiteManager);
dataUser.addUserToSite(privateSiteConsumer, firstPrivateSite, UserRole.SiteConsumer);
deletedSite = dataSite.usingAdmin().createPublicRandomSite();
name = RandomData.getRandomName("ZZZZZZZZZ-PublicSite");
lastPublicSite = dataSite.usingAdmin().createSite(new SiteModel(SiteService.Visibility.PUBLIC, "guid", name, name, name));
lastPrivateSite = dataSite.usingAdmin().createSite(new SiteModel(RandomData.getRandomName("ZZZZZZZZZ-PrivateSite"), SiteService.Visibility.PRIVATE));
lastModeratedSite = dataSite.usingAdmin().createSite(new SiteModel(RandomData.getRandomName("ZZZZZZZZZ-ModeratedSite"), SiteService.Visibility.MODERATED));
adminUser = dataUser.getAdminUser();
siteModel = dataSite.usingAdmin().createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel,UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
dataUser.addUserToSite(lastPrivateSiteManager, lastPrivateSite, UserRole.SiteManager);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets sites information and gets status code OK (200)")
public void managerIsAbleToRetrieveSites() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withParams("maxItems=10000")
.withCoreAPI().getSites()
.assertThat().entriesListIsNotEmpty()
.assertThat().entriesListContains("id", siteModel.getId())
.and().paginationExist();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets sites information and gets status code OK (200)")
public void collaboratorIsAbleToRetrieveSites() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("maxItems=10000")
.withCoreAPI().getSites().assertThat().entriesListIsNotEmpty()
.assertThat().entriesListContains("id", siteModel.getId())
.and().paginationExist();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets sites information and gets status code OK (200)")
public void contributorIsAbleToRetrieveSites() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withParams("maxItems=10000")
.withCoreAPI().getSites()
.assertThat().entriesListIsNotEmpty()
.assertThat().entriesListContains("id", siteModel.getId())
.and().paginationExist();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role gets sites information and gets status code OK (200)")
public void consumerIsAbleToRetrieveSites() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withParams("maxItems=10000")
.withCoreAPI().getSites()
.assertThat().entriesListIsNotEmpty()
.assertThat().entriesListContains("id", siteModel.getId())
.and().paginationExist();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Admin user gets sites information and gets status code OK (200)")
public void adminUserIsAbleToRetrieveSites() throws Exception
{
restClient.authenticateUser(adminUser).withParams("maxItems=10000")
.withCoreAPI().getSites()
.assertThat().entriesListIsNotEmpty()
.assertThat().entriesListContains("id", siteModel.getId())
.and().paginationExist();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get sites call returns status code 401")
// @Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSites() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
UserModel userModel = dataUser.createRandomTestUser();
userModel.setPassword("user wrong password");
dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel).withParams("maxItems=1")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get sites request returns status code 400 when invalid maxItems parameter is used")
public void getSitesWithInvalidMaxItems() throws Exception
{
restClient.authenticateUser(regularUser).withParams("maxItems=0=09")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "0=09"));
restClient.withParams("maxItems=A")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "A"));
restClient.withParams("maxItems=0")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get sites request returns status code 400 when invalid skipCount parameter is used")
public void getSitesWithInvalidSkipCount() throws Exception
{
restClient.authenticateUser(regularUser).withParams("skipCount=A")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "A"));
restClient.authenticateUser(regularUser).withParams("skipCount=-1")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if User gets sites ordered by title ascending and status code is 200")
public void getSitesOrderedByTitleASC() throws Exception
{
sites = restClient.authenticateUser(privateSiteManager).withParams("orderBy=title ASC")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListIsNotEmpty();
List<RestSiteModel> sitesList = sites.getEntries();
sitesList.get(0).onModel().assertThat().field("title").is(firstModeratedSite.getTitle());
sitesList.get(1).onModel().assertThat().field("title").is(firstPrivateSite.getTitle());
sitesList.get(2).onModel().assertThat().field("title").is(firstPublicSite.getTitle());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if a regular user gets all public and moderated sites and status code is 200")
public void regularUserGetsOnlyPublicAndModeratedSites() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams("maxItems=5000")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListContains("title", firstPublicSite.getTitle())
.and().entriesListContains("title", firstModeratedSite.getTitle())
.and().entriesListDoesNotContain("title", firstPrivateSite.getTitle());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if a member of a private site gets the private site, all public sites and all moderated sites. Verify if status code is 200")
public void privateSiteMemberGetsSitesVisibleForHim() throws Exception
{
sites = restClient.authenticateUser(privateSiteConsumer).withParams("maxItems=5000")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListContains("title", firstPublicSite.getTitle())
.and().entriesListContains("title", firstModeratedSite.getTitle())
.and().entriesListContains("title", firstPrivateSite.getTitle());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if a site is not retrieved anymore after deletion and status code is 200")
public void checkDeletedSiteIsNotRetrieved() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams("maxItems=5000").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListContains("title", deletedSite.getTitle());
dataSite.usingAdmin().deleteSite(deletedSite);
sites = restClient.withParams("maxItems=5000").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListDoesNotContain("title", deletedSite.getTitle());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION})
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if User gets sites ordered by title descending and status code is 200")
public void getSitesOrderedByTitleDESC() throws Exception
{
int totalItems = restClient.authenticateUser(lastPrivateSiteManager).withCoreAPI().getSites().getPagination().getTotalItems();
sites = restClient.authenticateUser(lastPrivateSiteManager).withParams(String.format("maxItems=%s&orderBy=title DESC", totalItems))
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListIsNotEmpty();
List<RestSiteModel> sitesList = sites.getEntries();
sitesList.get(0).onModel().assertThat().field("title").is(lastPublicSite.getTitle());
sitesList.get(1).onModel().assertThat().field("title").is(lastPrivateSite.getTitle());
sitesList.get(2).onModel().assertThat().field("title").is(lastModeratedSite.getTitle());
sitesList.get(sitesList.size()-1).onModel().assertThat().field("title").is(firstModeratedSite.getTitle());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION})
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if User gets sites ordered by id ascending and status code is 200")
public void getSitesOrderedByIdASC() throws Exception
{
int totalItems = restClient.authenticateUser(lastPrivateSiteManager).withCoreAPI().getSites().getPagination().getTotalItems();
sites = restClient.authenticateUser(lastPrivateSiteManager).withParams(String.format("maxItems=%s&orderBy=id ASC", totalItems))
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListIsNotEmpty();
List<RestSiteModel> sitesList = sites.getEntries();
sitesList.get(sitesList.size()-1).onModel().assertThat().field("id").is(lastPublicSite.getId());
sitesList.get(sitesList.size()-2).onModel().assertThat().field("id").is(lastPrivateSite.getId());
sitesList.get(sitesList.size()-3).onModel().assertThat().field("id").is(lastModeratedSite.getId());
sitesList.get(0).onModel().assertThat().field("id").is(firstModeratedSite.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION})
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify pagination")
public void checkPagination() throws Exception
{
sites = restClient.authenticateUser(regularUser).withCoreAPI().getSites();
sites.getPagination().assertThat()
.field("totalItems").isNotEmpty().and()
.field("maxItems").is("100").and()
.field("hasMoreItems").is((sites.getPagination().getTotalItems() > sites.getPagination().getMaxItems()) ? "true" : "false").and()
.field("skipCount").is("0").and()
.field("count").is((sites.getPagination().isHasMoreItems()) ? sites.getPagination().getMaxItems() : sites.getPagination().getTotalItems());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION})
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify user can get only first two sites and status code is 200")
public void getFirstTwoSites() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams(String.format("maxItems=%s&orderBy=title ASC", 2))
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.getPagination().assertThat().field("maxItems").is("2").and().field("count").is("2");
sites.assertThat().entriesListCountIs(2).and().entriesListDoesNotContain(firstPublicSite.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION})
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify user can get sites using high skipCount parameter and status code is 200")
public void getSitesUsingHighSkipCount() throws Exception
{
RestSiteModelsCollection allSites = restClient.authenticateUser(regularUser).withCoreAPI().getSites();
sites = restClient.withParams("skipCount=100").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().paginationField("skipCount").is("100");
if(allSites.getPagination().getTotalItems() > 100)
sites.assertThat().entriesListIsNotEmpty();
else
sites.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION})
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify user can not get sites using zero maxItems parameter and status code is 400")
public void userCanNotGetSitesUsingZeroMaxItems() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams("maxItems=0").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError()
.containsErrorKey(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS)
.containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION})
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify that getSites request applies valid properties param and status code is 200")
public void getSitesRequestWithValidPropertiesParam() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams("properties=id").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListDoesNotContain("description")
.assertThat().entriesListDoesNotContain("title")
.assertThat().entriesListDoesNotContain("visibility")
.assertThat().entriesListDoesNotContain("guid")
.assertThat().entriesListContains("id");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION})
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify pagination when skipCount and MaxItems are used")
public void checkPaginationWithSkipCountAndMaxItems() throws Exception
{
sites = restClient.authenticateUser(regularUser).withParams("skipCount=10&maxItems=110").withCoreAPI().getSites();
sites.getPagination().assertThat()
.field("totalItems").isNotEmpty().and()
.field("maxItems").is("110").and()
.field("hasMoreItems").is((sites.getPagination().getTotalItems() - sites.getPagination().getSkipCount() > sites.getPagination().getMaxItems())?"true":"false").and()
.field("skipCount").is("10").and()
.field("count").is((sites.getPagination().isHasMoreItems()) ? sites.getPagination().getMaxItems()
: sites.getPagination().getTotalItems() - sites.getPagination().getSkipCount());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION})
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if User gets sites ordered by id ascending and status code is 200")
public void getSitesOrderedByTitleASCAndVisibilityASC() throws Exception
{
SiteModel secondPublicSite = dataSite.usingAdmin().createSite(
new SiteModel(SiteService.Visibility.PUBLIC, "guid", name+"A", name+"A", name));
SiteModel thirdPublicSite = dataSite.usingAdmin().createSite(
new SiteModel(SiteService.Visibility.PUBLIC, "guid", name+"B", name+"B", name));
int totalItems = restClient.authenticateUser(regularUser).withCoreAPI().getSites().getPagination().getTotalItems();
sites = restClient.authenticateUser(regularUser).withParams(String.format("maxItems=%s&orderBy=title ASC&orderBy=description ASC", totalItems))
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListIsNotEmpty();
List<RestSiteModel> sitesList = sites.getEntries();
sitesList.get(sitesList.size()-1).onModel().assertThat().field("title").is(thirdPublicSite.getTitle());
sitesList.get(sitesList.size()-2).onModel().assertThat().field("title").is(secondPublicSite.getTitle());
dataSite.usingAdmin().deleteSite(secondPublicSite);
dataSite.usingAdmin().deleteSite(thirdPublicSite);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION} )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for containers")
public void checkThatRelationsParameterIsAppliedForContainers() throws Exception
{
List<List<Object>> jsonObjects = restClient.authenticateUser(adminUser)
.withParams("relations=containers").withCoreAPI().usingSite(lastPublicSite).getSitesWithRelations();
List<Object> siteObjects = jsonObjects.get(0);
for (int i = 0; i < siteObjects.size(); i++)
{
RestSiteModel siteModel = (RestSiteModel) siteObjects.get(i);
siteModel.assertThat().field("visibility").isNotEmpty()
.and().field("id").isNotEmpty()
.and().field("title").isNotEmpty()
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
}
List<Object> containerObjects = jsonObjects.get(1);
for (int i = 0; i < containerObjects.size(); i++)
{
RestSiteContainerModelsCollection containers = (RestSiteContainerModelsCollection) containerObjects.get(i);
containers.assertThat().entriesListIsNotEmpty().and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
}
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION} )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for members")
public void checkThatRelationsParameterIsAppliedForMembers() throws Exception
{
List<List<Object>> jsonObjects = restClient.authenticateUser(adminUser)
.withParams("relations=members").withCoreAPI().usingSite(lastPublicSite).getSitesWithRelations();
List<Object> siteObjects = jsonObjects.get(0);
for (int i = 0; i < siteObjects.size(); i++)
{
RestSiteModel siteModel = (RestSiteModel) siteObjects.get(i);
siteModel.assertThat().field("visibility").isNotEmpty()
.and().field("id").isNotEmpty()
.and().field("title").isNotEmpty()
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
}
List<Object> memberObjects = jsonObjects.get(1);
for (int i = 0; i < memberObjects.size(); i++)
{
RestSiteMemberModelsCollection siteMembers = (RestSiteMemberModelsCollection) memberObjects.get(i);
siteMembers.assertThat().entriesListIsNotEmpty().assertThat().entriesListContains("id").assertThat().entriesListContains("role", UserRole.SiteManager.toString());
siteMembers.getOneRandomEntry().onModel().assertThat().field("person.firstName").isNotEmpty().and().field("person.id").isNotEmpty();
}
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION} )
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Check that relations parameter is applied for members and containers")
public void checkThatRelationsParameterIsAppliedForMembersAndContainers() throws Exception
{
List<List<Object>> jsonObjects = restClient.authenticateUser(adminUser)
.withParams("relations=containers,members").withCoreAPI().usingSite(lastPublicSite).getSitesWithRelations();
List<Object> siteObjects = jsonObjects.get(0);
for (int i = 0; i < siteObjects.size(); i++)
{
RestSiteModel siteModel = (RestSiteModel) siteObjects.get(i);
siteModel.assertThat().field("visibility").isNotEmpty()
.and().field("id").isNotEmpty()
.and().field("title").isNotEmpty()
.and().field("preset").is("site-dashboard")
.and().field("guid").isNotEmpty();
}
List<Object> containerObjects = jsonObjects.get(1);
for (int i = 0; i < containerObjects.size(); i++)
{
RestSiteContainerModelsCollection containers = (RestSiteContainerModelsCollection) containerObjects.get(i);
containers.assertThat().entriesListIsNotEmpty().and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
}
List<Object> memberObjects = jsonObjects.get(2);
for (int i = 0; i < memberObjects.size(); i++)
{
RestSiteMemberModelsCollection siteMembers = (RestSiteMemberModelsCollection) memberObjects.get(i);
siteMembers.assertThat().entriesListIsNotEmpty().assertThat().entriesListContains("id").assertThat().entriesListContains("role", UserRole.SiteManager.toString());
siteMembers.getOneRandomEntry().onModel().assertThat().field("person.firstName").isNotEmpty().and().field("person.id").isNotEmpty();
}
}
@AfterClass(alwaysRun=true)
public void cleanup() throws Exception
{
dataSite.usingAdmin().deleteSite(firstModeratedSite);
dataSite.usingAdmin().deleteSite(firstPrivateSite);
dataSite.usingAdmin().deleteSite(firstPublicSite);
dataSite.usingAdmin().deleteSite(lastPublicSite);
dataSite.usingAdmin().deleteSite(lastPrivateSite);
dataSite.usingAdmin().deleteSite(lastModeratedSite);
}
}
@@ -17,7 +17,7 @@ import org.testng.annotations.Test;
public class SitesTests extends RestTest
{
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Tests the creation of a site")
public void testCreateSite() throws Exception
{
@@ -1,107 +0,0 @@
package org.alfresco.rest.sites.containers;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.ContainerName;
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 GetSiteContainerCoreTests extends RestTest{
private UserModel adminUserModel, testUserModel;
private SiteModel publicSiteModel, moderatedSiteModel, privateSiteModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
testUserModel = dataUser.createRandomTestUser();
publicSiteModel = dataSite.usingAdmin().createPublicRandomSite();
moderatedSiteModel = dataSite.usingAdmin().createModeratedRandomSite();
privateSiteModel = dataSite.usingAdmin().createPrivateRandomSite();
dataLink.usingAdmin().usingSite(publicSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(publicSiteModel).createRandomDiscussion();
dataLink.usingAdmin().usingSite(moderatedSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(moderatedSiteModel).createRandomDiscussion();
dataLink.usingAdmin().usingSite(privateSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(privateSiteModel).createRandomDiscussion();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request returns status code 400 when site doesn't exist")
public void getContainerWithNonExistentSite() throws Exception
{
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite("NonExistentSiteId").getSiteContainer(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, "NonExistentSiteId", ContainerName.discussions.toString()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request returns status code 400 when container item doesn't exist")
public void getContainerWithNonExistentItem() throws Exception
{
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainer("NonExistentFolder");
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, publicSiteModel.getId(), "NonExistentFolder"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get container request returns status 200 for public site")
public void getContainerForPublicSite() throws Exception
{
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(ContainerName.discussions.toString())
.assertThat().field("folderId").is(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(ContainerName.links.toString())
.assertThat().field("folderId").is(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get container request returns status 200 for private site")
public void getContainerForPrivateSite() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(privateSiteModel).getSiteContainer(ContainerName.discussions.toString())
.assertThat().field("folderId").is(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.withCoreAPI().usingSite(privateSiteModel).getSiteContainer(ContainerName.links.toString())
.assertThat().field("folderId").is(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get container request returns status 200 for moderated site")
public void getContainerForModeratedSite() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(moderatedSiteModel).getSiteContainer(ContainerName.discussions.toString())
.assertThat().field("folderId").is(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.withCoreAPI().usingSite(moderatedSiteModel).getSiteContainer(ContainerName.links.toString())
.assertThat().field("folderId").is(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -1,176 +0,0 @@
package org.alfresco.rest.sites.containers;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.ContainerName;
import org.alfresco.utility.model.FolderModel;
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.apache.commons.lang3.RandomStringUtils;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*
* @author Cristina Axinte
*
*/
public class GetSiteContainerFullTests extends RestTest
{
private UserModel adminUserModel, testUserModel;
private SiteModel publicSiteModel, moderatedSiteModel, privateSiteModelByAdmin, privateSiteModelByUser;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
testUserModel = dataUser.createRandomTestUser();
publicSiteModel = dataSite.usingAdmin().createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(testUserModel).createModeratedRandomSite();
privateSiteModelByAdmin = dataSite.usingAdmin().createPrivateRandomSite();
privateSiteModelByUser = dataSite.usingUser(testUserModel).createPrivateRandomSite();
dataLink.usingAdmin().usingSite(publicSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(publicSiteModel).createRandomDiscussion();
dataLink.usingUser(testUserModel).usingSite(moderatedSiteModel).createRandomLink();
dataLink.usingAdmin().usingSite(privateSiteModelByAdmin).createRandomLink();
dataDiscussion.usingUser(testUserModel).usingSite(privateSiteModelByUser).createRandomDiscussion();
dataLink.usingUser(testUserModel).usingSite(privateSiteModelByUser).createRandomLink();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request with properties parameter returns status code 200 and parameter is applied")
public void getContainerUsingPropertiesParameter() throws Exception
{
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(publicSiteModel).usingParams("properties=id").getSiteContainer(ContainerName.discussions.toString())
.assertThat().fieldsCount().is(1)
.and().field("id").isNotEmpty()
.and().field("folderId").isNull();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request for a container that does not belong to site returns status code 404")
public void getContainerThatDoesNotBelongToSite() throws Exception
{
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(moderatedSiteModel).getSiteContainer(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, moderatedSiteModel.getId(), ContainerName.discussions.toString()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request for empty siteId returns status code 404")
public void getContainerForEmptySiteId() throws Exception
{
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite("").getSiteContainer(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, "", ContainerName.discussions.toString()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request for empty container returns status code 200 and the list of containers")
public void getContainerForEmptyContainer() throws Exception
{
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(moderatedSiteModel).getSiteContainer("");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container with name containing special chars returns status code 404")
public void getContainerWithNameContainingSpecialChars() throws Exception
{
String containerSpecialName = RandomStringUtils.randomAlphabetic(2) + "~!%40%23%24%25%5E%26*()_%2B%5B%5D%7B%7D%7C%5C%3B%27%3A%22%2C.%2F%3C%3E";
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(containerSpecialName);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, publicSiteModel.getId(), containerSpecialName))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if admin can get container request for a private site created by another user and status code is 200")
public void adminCanGetContainerForPrivateSiteCreatedByUser() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(privateSiteModelByUser).getSiteContainer(ContainerName.discussions.toString())
.assertThat().field("folderId").is(ContainerName.discussions.toString())
.and().field("id").isNotEmpty();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user cannot get container request for a private site created by admin and status code is 404")
public void userCannotGetContainerForPrivateSiteCreatedByAdmin() throws Exception
{
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(privateSiteModelByAdmin).getSiteContainer(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, privateSiteModelByAdmin.getId(), ContainerName.links.toString()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user can get container request for a public site created by admin and status code is 200")
public void userCanGetContainerForPublicSiteCreatedByAdmin() throws Exception
{
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(ContainerName.links.toString())
.assertThat().field("folderId").is(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request for a deleted container returns status code is 404")
public void getContainerThatWasDeleted() throws Exception
{
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(privateSiteModelByUser).getSiteContainer(ContainerName.links.toString())
.assertThat().field("folderId").is(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
//use dataprep for delete 'links' container
FolderModel folder= new FolderModel("links");
folder.setCmisLocation(String.format("/Sites/%s/%s", privateSiteModelByUser.getId(), ContainerName.links.toString()));
dataContent.deleteTree(folder);
restClient.authenticateUser(testUserModel)
.withCoreAPI().usingSite(privateSiteModelByUser).getSiteContainer(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, privateSiteModelByUser.getId(), ContainerName.links.toString()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
}
@@ -1,117 +0,0 @@
package org.alfresco.rest.sites.containers;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteContainerModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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;
/**
* @author iulia.cojocea
*/
public class GetSiteContainerSanityTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
private RestSiteContainerModel siteContainerModel;
private UserModel userModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets site container and gets status code OK (200)")
public void getSiteContainerWithManagerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
siteContainerModel = restClient.withCoreAPI().usingSite(siteModel).getSiteContainers().getOneRandomEntry();
restClient.withCoreAPI().usingSite(siteModel).getSiteContainer(siteContainerModel.onModel())
.assertThat().field("id").is(siteContainerModel.onModel().getId())
.and().field("folderId").is(siteContainerModel.onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Collaborator role gets site container and gets status code OK (200)")
public void getSiteContainerWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
siteContainerModel = restClient.withCoreAPI().usingSite(siteModel).getSiteContainers().getOneRandomEntry();
restClient.withCoreAPI().usingSite(siteModel).getSiteContainer(siteContainerModel.onModel())
.and().field("id").is(siteContainerModel.onModel().getId())
.and().field("folderId").is(siteContainerModel.onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Contributor role gets site container and gets status code OK (200)")
public void getSiteContainerWithContributorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
siteContainerModel = restClient.withCoreAPI().usingSite(siteModel).getSiteContainers().getOneRandomEntry();
restClient.withCoreAPI().usingSite(siteModel).getSiteContainer(siteContainerModel.onModel())
.assertThat().field("id").is(siteContainerModel.onModel().getId())
.and().field("folderId").is(siteContainerModel.onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Consumer role gets site container and gets status code OK (200)")
public void getSiteContainerWithConsumerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
siteContainerModel = restClient.withCoreAPI().usingSite(siteModel).getSiteContainers().getOneRandomEntry();
restClient.withCoreAPI().usingSite(siteModel).getSiteContainer(siteContainerModel.onModel())
.assertThat().field("id").is(siteContainerModel.onModel().getId())
.and().field("folderId").is(siteContainerModel.onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with admin user gets site container and gets status code OK (200)")
public void getSiteContainerWithAdminUser() throws Exception
{
restClient.authenticateUser(adminUserModel);
siteContainerModel = restClient.withCoreAPI().usingSite(siteModel).getSiteContainers().getOneRandomEntry();
restClient.withCoreAPI().usingSite(siteModel).getSiteContainer(siteContainerModel.onModel())
.assertThat().field("id").is(siteContainerModel.onModel().getId())
.and().field("folderId").is(siteContainerModel.onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get site container call returns status code 401")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSiteContainer() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
siteContainerModel = restClient.withCoreAPI().usingSite(siteModel).getSiteContainers().getOneRandomEntry();
userModel = dataUser.createRandomTestUser();
userModel.setPassword("user wrong password");
dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel)
.withCoreAPI().usingSite(siteModel).getSiteContainer(siteContainerModel.onModel());
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,313 @@
package org.alfresco.rest.sites.containers;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteContainerModel;
import org.alfresco.utility.constants.ContainerName;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.FolderModel;
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.apache.commons.lang3.RandomStringUtils;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* @author iulia.cojocea
*/
public class GetSiteContainerTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel publicSiteModel, moderatedSiteModel, privateSiteModel, adminPrivateSiteModel;
private ListUserWithRoles usersWithRoles;
private RestSiteContainerModel siteContainerModel;
private UserModel testUser;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
testUser = dataUser.createRandomTestUser();
publicSiteModel = dataSite.usingAdmin().createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(testUser).createModeratedRandomSite();
privateSiteModel = dataSite.usingUser(testUser).createPrivateRandomSite();
adminPrivateSiteModel = dataSite.usingAdmin().createPrivateRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(publicSiteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
dataLink.usingAdmin().usingSite(publicSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(publicSiteModel).createRandomDiscussion();
dataLink.usingUser(testUser).usingSite(moderatedSiteModel).createRandomLink();
dataLink.usingAdmin().usingSite(adminPrivateSiteModel).createRandomLink();
dataLink.usingUser(testUser).usingSite(privateSiteModel).createRandomLink();
dataDiscussion.usingUser(testUser).usingSite(privateSiteModel).createRandomDiscussion();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets site container and gets status code OK (200)")
public void getSiteContainerWithManagerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
siteContainerModel = restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers().getOneRandomEntry();
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(siteContainerModel.onModel())
.assertThat().field("id").is(siteContainerModel.onModel().getId())
.and().field("folderId").is(siteContainerModel.onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site container and gets status code OK (200)")
public void getSiteContainerWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
siteContainerModel = restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers().getOneRandomEntry();
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(siteContainerModel.onModel())
.and().field("id").is(siteContainerModel.onModel().getId())
.and().field("folderId").is(siteContainerModel.onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets site container and gets status code OK (200)")
public void getSiteContainerWithContributorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
siteContainerModel = restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers().getOneRandomEntry();
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(siteContainerModel.onModel())
.assertThat().field("id").is(siteContainerModel.onModel().getId())
.and().field("folderId").is(siteContainerModel.onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role gets site container and gets status code OK (200)")
public void getSiteContainerWithConsumerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
siteContainerModel = restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers().getOneRandomEntry();
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(siteContainerModel.onModel())
.assertThat().field("id").is(siteContainerModel.onModel().getId())
.and().field("folderId").is(siteContainerModel.onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with admin user gets site container and gets status code OK (200)")
public void getSiteContainerWithAdminUser() throws Exception
{
restClient.authenticateUser(adminUserModel);
siteContainerModel = restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers().getOneRandomEntry();
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(siteContainerModel.onModel())
.assertThat().field("id").is(siteContainerModel.onModel().getId())
.and().field("folderId").is(siteContainerModel.onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get site container call returns status code 401")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSiteContainer() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
siteContainerModel = restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers().getOneRandomEntry();
UserModel userModel = dataUser.createRandomTestUser();
userModel.setPassword("user wrong password");
dataUser.addUserToSite(userModel, publicSiteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(siteContainerModel.onModel());
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request returns status code 400 when site doesn't exist")
public void getContainerWithNonExistentSite() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite("NonExistentSiteId").getSiteContainer(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, "NonExistentSiteId", ContainerName.discussions.toString()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request returns status code 400 when container item doesn't exist")
public void getContainerWithNonExistentItem() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainer("NonExistentFolder");
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, publicSiteModel.getId(), "NonExistentFolder"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify regular user can get container for public site and request returns status 200")
public void getContainerForPublicSite() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(ContainerName.discussions.toString())
.assertThat().field("folderId").is(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(ContainerName.links.toString())
.assertThat().field("folderId").is(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify manager is able to get container for his private site and request returns status 200")
public void getContainerForPrivateSite() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(privateSiteModel).getSiteContainer(ContainerName.discussions.toString())
.assertThat().field("folderId").is(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get container request returns status 200 for moderated site")
public void getContainerForModeratedSite() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(moderatedSiteModel).getSiteContainer(ContainerName.links.toString())
.assertThat().field("folderId").is(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request with properties parameter returns status code 200 and parameter is applied")
public void getContainerUsingPropertiesParameter() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(publicSiteModel).usingParams("properties=id").getSiteContainer(ContainerName.discussions.toString())
.assertThat().fieldsCount().is(1)
.and().field("id").isNotEmpty()
.and().field("folderId").isNull();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request for a container that does not belong to site returns status code 404")
public void getContainerThatDoesNotBelongToSite() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(moderatedSiteModel).getSiteContainer(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, moderatedSiteModel.getId(), ContainerName.discussions.toString()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request for empty siteId returns status code 404")
public void getContainerForEmptySiteId() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite("").getSiteContainer(ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, "", ContainerName.discussions.toString()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request for empty container returns status code 200 and the list of containers")
public void getContainerForEmptyContainer() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(moderatedSiteModel).getSiteContainer("");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container with name containing special chars returns status code 404")
public void getContainerWithNameContainingSpecialChars() throws Exception
{
String containerSpecialName = RandomStringUtils.randomAlphabetic(2) + "~!%40%23%24%25%5E%26*()_%2B%5B%5D%7B%7D%7C%5C%3B%27%3A%22%2C.%2F%3C%3E";
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainer(containerSpecialName);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, publicSiteModel.getId(), containerSpecialName))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if admin can get container request for a private site created by another user and status code is 200")
public void adminCanGetContainerForPrivateSiteCreatedByUser() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(privateSiteModel).getSiteContainer(ContainerName.discussions.toString())
.assertThat().field("folderId").is(ContainerName.discussions.toString())
.and().field("id").isNotEmpty();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user cannot get container request for a private site created by admin and status code is 404")
public void userCannotGetContainerForPrivateSiteCreatedByAdmin() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(adminPrivateSiteModel).getSiteContainer(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminPrivateSiteModel.getId(), ContainerName.links.toString()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get container request for a deleted container returns status code is 404")
public void getContainerThatWasDeleted() throws Exception
{
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(privateSiteModel).getSiteContainer(ContainerName.links.toString())
.assertThat().field("folderId").is(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
//use dataprep for delete 'links' container
FolderModel folder= new FolderModel("links");
folder.setCmisLocation(String.format("/Sites/%s/%s", privateSiteModel.getId(), ContainerName.links.toString()));
dataContent.deleteTree(folder);
restClient.authenticateUser(testUser)
.withCoreAPI().usingSite(privateSiteModel).getSiteContainer(ContainerName.links.toString());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, privateSiteModel.getId(), ContainerName.links.toString()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
}
@@ -1,219 +0,0 @@
package org.alfresco.rest.sites.containers;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.ContainerName;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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 GetSiteContainersCoreTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel publicSiteModel, publicSiteWithContainers;
private SiteModel moderatedSiteModel, privateSiteModel;
private ListUserWithRoles publicSiteUsers;
private ListUserWithRoles publicSiteWithContainersUsers;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
publicSiteModel = dataSite.usingAdmin().createPublicRandomSite();
publicSiteWithContainers = dataSite.usingAdmin().createPublicRandomSite();
moderatedSiteModel = dataSite.usingAdmin().createModeratedRandomSite();
privateSiteModel = dataSite.usingAdmin().createPrivateRandomSite();
publicSiteUsers = dataUser
.addUsersWithRolesToSite(publicSiteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
publicSiteWithContainersUsers = dataUser
.addUsersWithRolesToSite(publicSiteWithContainers, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
dataLink.usingAdmin().usingSite(publicSiteWithContainers).createRandomLink();
dataDiscussion.usingAdmin().usingSite(publicSiteWithContainers).createRandomDiscussion();
dataLink.usingAdmin().usingSite(moderatedSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(moderatedSiteModel).createRandomDiscussion();
dataLink.usingAdmin().usingSite(privateSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(privateSiteModel).createRandomDiscussion();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 200 with valid maxItems parameter")
public void getContainersWithValidMaxItems() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withParams("maxItems=5")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3)
.and().entriesListContains("folderId" ,ContainerName.documentLibrary.toString())
.and().entriesListContains("folderId", ContainerName.links.toString())
.and().entriesListContains("folderId", ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.withParams("maxItems=1")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1);
restClient.withParams("maxItems=3")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(1)
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 400 when invalid maxItems parameter is used")
public void getContainersWithMaxItemsZero () throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteManager))
.withParams("maxItems=0")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("Only positive values supported for maxItems");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 400 when invalid maxItems parameter is used")
public void getContainersWithMaxItemsCharacter () throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("maxItems=test")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "test"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 200 when maxItems parameter starts with multiple zero")
public void getContainersWithMaxItemsMultipleZero () throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("maxItems=000007")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 200 when valid skipCount parameter is used")
public void getSiteContainersWithValidSkipCount() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteManager)).withParams("skipCount=1")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(0);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=1")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(2);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteConsumer)).withParams("skipCount=2")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=0")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 400 when invalid skipCount parameter is used")
public void getSiteContainersWithSkipCountCharacter() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=abc")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "abc"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 200 when skipCount parameter starts with multiple zero")
public void getSiteContainersWithSkipCountMultipleZero() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=00002")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 400 when site doesn't exist")
public void getSiteContainersWithNonExistentSite() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI().usingSite("NonExistentSiteId").getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site containers request returns status 200 for private site")
public void getSiteContainersForPrivateSite() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(privateSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site containers request returns status 200 for moderated site")
public void getSiteContainersForModeratedSite() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(moderatedSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site containers request returns status 200 for several containers")
public void getSiteContainersForSeveralItems() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3)
.and().entriesListContains("folderId" ,ContainerName.documentLibrary.toString())
.and().entriesListContains("folderId", ContainerName.links.toString())
.and().entriesListContains("folderId", ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site containers request returns status 200 for one container")
public void getSiteContainersWithOneItem() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(1)
.and().entriesListContains("folderId" ,ContainerName.documentLibrary.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -1,144 +0,0 @@
package org.alfresco.rest.sites.containers;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteContainerModelsCollection;
import org.alfresco.utility.constants.ContainerName;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
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;
/**
*
* @author Cristina Axinte
*
*/
public class GetSiteContainersFullTests extends RestTest
{
private SiteModel publicSiteWithContainers;
private ListUserWithRoles publicSiteWithContainersUsers;
RestSiteContainerModelsCollection restSiteContainers;
int totalItems;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
publicSiteWithContainers = dataSite.usingAdmin().createPublicRandomSite();
publicSiteWithContainersUsers = dataUser
.addUsersWithRolesToSite(publicSiteWithContainers, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
dataLink.usingAdmin().usingSite(publicSiteWithContainers).createRandomLink();
dataDiscussion.usingAdmin().usingSite(publicSiteWithContainers).createRandomDiscussion();
dataContent.usingAdmin().usingSite(publicSiteWithContainers).createFolder();
restSiteContainers = restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers();
totalItems = restSiteContainers.getPagination().getTotalItems();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request with properties parameter applied returns status code 200")
public void getSiteContainersUsingPropertiesParameter() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSiteWithContainers).usingParams("properties=folderId").getSiteContainers()
.assertThat().entriesListCountIs(3)
.and().entriesListContains("folderId", ContainerName.discussions.toString())
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString())
.and().entriesListContains("folderId", ContainerName.links.toString())
.and().entriesListDoesNotContain("id");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request for a container that is not empty returns status code 200")
public void getSiteContainersThatIsNotEmpty() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3)
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 200 when first container is skipped")
public void getSiteContainersAndSkipFirst() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("skipCount=1").withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(2)
.and().entriesListDoesNotContain("folderId", restSiteContainers.getEntries().get(0).onModel().getFolderId())
.and().entriesListContains("folderId", restSiteContainers.getEntries().get(1).onModel().getFolderId())
.and().entriesListContains("folderId", restSiteContainers.getEntries().get(2).onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request and get last container returns status code 200")
public void getLastSiteContainer() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("skipCount=" + String.valueOf(totalItems-1)).withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1)
.and().entriesListDoesNotContain("folderId", restSiteContainers.getEntries().get(0).onModel().getFolderId())
.and().entriesListDoesNotContain("folderId", restSiteContainers.getEntries().get(1).onModel().getFolderId())
.and().entriesListContains("folderId", restSiteContainers.getEntries().get(2).onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 200 when high skipCount parameter is used")
public void getSiteContainersWithHighSkipCount() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("skipCount=999999").withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListIsEmpty()
.and().entriesListCountIs(0)
.and().paginationField("skipCount").is("999999");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request for an empty siteId returns status code 404")
public void getSiteContainersForEmptySiteId() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite("").getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, ""))
.stackTraceIs(RestErrorModel.STACKTRACE)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 200 with valid maxItems parameter")
public void getContainersWithValidMaxItems() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withParams("maxItems=2").withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(2)
.getPagination().assertThat().field("count").is("2")
.and().field("hasMoreItems").is("true")
.and().field("totalItems").is("3")
.and().field("skipCount").is("0")
.and().field("maxItems").is("2");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -1,115 +0,0 @@
package org.alfresco.rest.sites.containers;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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;
/**
* @author iulia.cojocea
*/
public class GetSiteContainersSanityTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
private UserModel userModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets site containers and gets status code OK (200)")
public void getSiteContainersWithManagerRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).getSiteContainers()
.assertThat().entriesListIsNotEmpty()
.assertThat().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Collaborator role gets site containers and gets status code OK (200)")
public void getSiteContainersWithCollaboratorRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(siteModel).getSiteContainers()
.assertThat().entriesListIsNotEmpty()
.assertThat().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Contributor role gets site containers and gets status code OK (200)")
public void getSiteContainersWithContributorRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(siteModel).getSiteContainers()
.assertThat().entriesListIsNotEmpty()
.assertThat().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Consumer role gets site containers and gets status code OK (200)")
public void getSiteContainersWithConsumerRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(siteModel).getSiteContainers()
.assertThat().entriesListIsNotEmpty()
.assertThat().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Admin user gets site containers information and gets status code OK (200)")
public void getSiteContainersWithAdminUser() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUserModel);
restClient.withCoreAPI().usingSite(siteModel).getSiteContainers()
.assertThat().entriesListIsNotEmpty()
.assertThat().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get site containers call returns status code 401 with Manager role")
@Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSiteContainers() throws JsonToModelConversionException, Exception
{
userModel = dataUser.createRandomTestUser();
userModel.setPassword("user wrong password");
dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel)
.withCoreAPI().usingSite(siteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,390 @@
package org.alfresco.rest.sites.containers;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteContainerModelsCollection;
import org.alfresco.utility.constants.ContainerName;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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;
/**
* @author iulia.cojocea
*/
public class GetSiteContainersTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel publicSiteModel, publicSiteWithContainers;
private SiteModel moderatedSiteModel, privateSiteModel;
private ListUserWithRoles publicSiteUsers;
private ListUserWithRoles publicSiteWithContainersUsers;
private RestSiteContainerModelsCollection restSiteContainers;
private int totalItems;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
publicSiteModel = dataSite.usingAdmin().createPublicRandomSite();
publicSiteWithContainers = dataSite.usingAdmin().createPublicRandomSite();
moderatedSiteModel = dataSite.usingAdmin().createModeratedRandomSite();
privateSiteModel = dataSite.usingAdmin().createPrivateRandomSite();
publicSiteUsers = dataUser.addUsersWithRolesToSite(publicSiteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
publicSiteWithContainersUsers = dataUser
.addUsersWithRolesToSite(publicSiteWithContainers, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
dataLink.usingAdmin().usingSite(publicSiteWithContainers).createRandomLink();
dataDiscussion.usingAdmin().usingSite(publicSiteWithContainers).createRandomDiscussion();
dataLink.usingAdmin().usingSite(moderatedSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(moderatedSiteModel).createRandomDiscussion();
dataLink.usingAdmin().usingSite(privateSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(privateSiteModel).createRandomDiscussion();
restSiteContainers = restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers();
totalItems = restSiteContainers.getPagination().getTotalItems();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets site containers and gets status code OK (200)")
public void getSiteContainersWithManagerRole() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListIsNotEmpty()
.assertThat().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site containers and gets status code OK (200)")
public void getSiteContainersWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListIsNotEmpty()
.assertThat().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets site containers and gets status code OK (200)")
public void getSiteContainersWithContributorRole() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListIsNotEmpty()
.assertThat().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role gets site containers and gets status code OK (200)")
public void getSiteContainersWithConsumerRole() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListIsNotEmpty()
.assertThat().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Admin user gets site containers information and gets status code OK (200)")
public void getSiteContainersWithAdminUser() throws Exception
{
restClient.authenticateUser(adminUserModel);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListIsNotEmpty()
.assertThat().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get site containers call returns status code 401 with Manager role")
// @Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSiteContainers() throws Exception
{
UserModel userModel = dataUser.createRandomTestUser();
userModel.setPassword("user wrong password");
dataUser.addUserToSite(userModel, publicSiteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 200 with valid maxItems parameter")
public void getContainersWithValidMaxItems() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withParams("maxItems=5")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3)
.and().entriesListContains("folderId" , ContainerName.documentLibrary.toString())
.and().entriesListContains("folderId", ContainerName.links.toString())
.and().entriesListContains("folderId", ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.withParams("maxItems=1")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1);
restClient.withParams("maxItems=3")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(1)
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 400 when invalid maxItems parameter is used")
public void getContainersWithMaxItemsZero () throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteManager))
.withParams("maxItems=0")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("Only positive values supported for maxItems");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 400 when invalid maxItems parameter is used")
public void getContainersWithMaxItemsCharacter () throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("maxItems=test")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "test"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 200 when maxItems parameter starts with multiple zero")
public void getContainersWithMaxItemsMultipleZero () throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("maxItems=000007")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 200 when valid skipCount parameter is used")
public void getSiteContainersWithValidSkipCount() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteManager)).withParams("skipCount=1")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(0);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=1")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(2);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteConsumer)).withParams("skipCount=2")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=0")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 400 when invalid skipCount parameter is used")
public void getSiteContainersWithSkipCountCharacter() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=abc")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "abc"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 200 when skipCount parameter starts with multiple zero")
public void getSiteContainersWithSkipCountMultipleZero() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=00002")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 400 when site doesn't exist")
public void getSiteContainersWithNonExistentSite() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI().usingSite("NonExistentSiteId").getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site containers request returns status 200 for private site")
public void getSiteContainersForPrivateSite() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(privateSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site containers request returns status 200 for moderated site")
public void getSiteContainersForModeratedSite() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(moderatedSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site containers request returns status 200 for several containers")
public void getSiteContainersForSeveralItems() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3)
.and().entriesListContains("folderId" ,ContainerName.documentLibrary.toString())
.and().entriesListContains("folderId", ContainerName.links.toString())
.and().entriesListContains("folderId", ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site containers request returns status 200 for one container")
public void getSiteContainersWithOneItem() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(1)
.and().entriesListContains("folderId" ,ContainerName.documentLibrary.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request with properties parameter applied returns status code 200")
public void getSiteContainersUsingPropertiesParameter() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSiteWithContainers).usingParams("properties=folderId").getSiteContainers()
.assertThat().entriesListCountIs(3)
.and().entriesListContains("folderId", ContainerName.discussions.toString())
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString())
.and().entriesListContains("folderId", ContainerName.links.toString())
.and().entriesListDoesNotContain("id");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request for a container that is not empty returns status code 200")
public void getSiteContainersThatIsNotEmpty() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3)
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 200 when first container is skipped")
public void getSiteContainersAndSkipFirst() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("skipCount=1").withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(2)
.and().entriesListDoesNotContain("folderId", restSiteContainers.getEntries().get(0).onModel().getFolderId())
.and().entriesListContains("folderId", restSiteContainers.getEntries().get(1).onModel().getFolderId())
.and().entriesListContains("folderId", restSiteContainers.getEntries().get(2).onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request and get last container returns status code 200")
public void getLastSiteContainer() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("skipCount=" + String.valueOf(totalItems-1)).withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1)
.and().entriesListDoesNotContain("folderId", restSiteContainers.getEntries().get(0).onModel().getFolderId())
.and().entriesListDoesNotContain("folderId", restSiteContainers.getEntries().get(1).onModel().getFolderId())
.and().entriesListContains("folderId", restSiteContainers.getEntries().get(2).onModel().getFolderId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site containers request returns status code 200 when high skipCount parameter is used")
public void getSiteContainersWithHighSkipCount() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("skipCount=999999").withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListIsEmpty()
.and().entriesListCountIs(0)
.and().paginationField("skipCount").is("999999");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request for an empty siteId returns status code 404")
public void getSiteContainersForEmptySiteId() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite("").getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, ""))
.stackTraceIs(RestErrorModel.STACKTRACE)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER);
}
}
@@ -1,310 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.JsonBodyGenerator;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMemberModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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;
public class AddSiteMemberCoreTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel publicSiteModel;
private SiteModel moderatedSiteModel;
private SiteModel privateSiteModel;
private ListUserWithRoles usersWithRolesToModeratedSite;
private ListUserWithRoles usersWithRolesToPrivateSite;
private String addMembersJson;
private RestSiteMemberModel memberModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
publicSiteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(adminUserModel).createModeratedRandomSite();
privateSiteModel = dataSite.usingUser(adminUserModel).createPrivateRandomSite();
usersWithRolesToModeratedSite = dataUser.addUsersWithRolesToSite(moderatedSiteModel, UserRole.SiteManager, UserRole.SiteCollaborator,
UserRole.SiteConsumer,UserRole.SiteContributor);
usersWithRolesToPrivateSite = dataUser.addUsersWithRolesToSite(privateSiteModel, UserRole.SiteManager, UserRole.SiteCollaborator,
UserRole.SiteConsumer,UserRole.SiteContributor);
addMembersJson = "{\"role\":\"%s\",\"id\":\"%s\"}, {\"role\":\"%s\",\"id\":\"%s\"}";
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can add another user as manager to a public site and gets status code CREATED (201)")
public void addManagerToPublicSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can add another user as manager to a moderated site and gets status code CREATED (201)")
public void addManagerToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can add another user as manager to a private site and gets status code CREATED (201)")
public void addManagerToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that consumer role is not able to add another user to a moderated site and gets status code 403")
public void addUserByConsumerToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRolesToModeratedSite.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that consumer role is not able to add another user to a private site and gets status code 403")
public void addUserByConsumerToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRolesToPrivateSite.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator role is not able to add another user to a moderated site and gets status code 403")
public void addUserByCollaboratorToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRolesToModeratedSite.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator role is not able to add another user to a private site and gets status code 403")
public void addUserByCollaboratorToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRolesToPrivateSite.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor role is not able to add another user to a moderated site and gets status code 403")
public void addUserByContributorToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRolesToModeratedSite.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor role is not able to add another user to a private site and gets status code 403")
public void addUserByContributorToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRolesToPrivateSite.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that a user without specified role can not be added to a site and gets status code 400")
public void canNotAddUserWithoutSpecifyingRoleToSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
restClient.authenticateUser(adminUserModel).withCoreAPI();
String json = JsonBodyGenerator.keyValueJson("id", testUser.getUsername());
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(RestErrorModel.MUST_PROVIDE_ROLE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that a user with inexistent role can not be added to a site and gets status code 400")
public void canNotAddUserWithInexistentRoleToSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
restClient.authenticateUser(adminUserModel).withCoreAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, String.format("{\"role\":\"inexistentRole\",\"id\":\"%s\"}", testUser.getUsername()), "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.UNKNOWN_ROLE, "inexistentRole"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not add himself as a manager to a public site and gets status code 403")
public void userAddHimselfAsManagerToPublicSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(testUser).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not add himself as a manager to a moderated site and gets status code 403")
public void userAddHimselfAsManagerToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(testUser).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not add himself as a manager to a private site and gets status code 404")
public void userAddHimselfAsManagerToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(testUser).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, privateSiteModel.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not be added to an inexistent site and gets status code 404")
public void userIsNotAbleToAddUserToAnInexistentSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
SiteModel inexistentSite = new SiteModel("inexistentSite");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(inexistentSite).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not be added to a site if an empty site id is provided and gets status code 404")
public void userIsNotAbleToAddAnotherUserUsingEmptySiteId() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
SiteModel inexistentSite = new SiteModel("");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(inexistentSite).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that inexistent user can not be added to site and gets status code 404")
public void userIsNotAbleToAddInexistentUserToSite() throws Exception
{
UserModel testUser = new UserModel("inexistentUser", "password");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, testUser.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that empty username can not be added to site and gets status code 400")
public void userIsNotAbleToAddEmptyUserIdToSite() throws Exception
{
UserModel testUser = new UserModel("", "password");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.NO_CONTENT, testUser.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not add another user that is already a memeber and gets status code 409")
public void userIsNotAbleToAddUserThatIsAlreadyAMember() throws Exception
{
UserModel collaborator = usersWithRolesToModeratedSite.getOneUserWithRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(collaborator);
restClient.assertStatusCodeIs(HttpStatus.CONFLICT).assertLastError().containsSummary(String.format(RestErrorModel.ALREADY_Site_MEMBER, collaborator.getUsername(), moderatedSiteModel.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that several users with different roles can be added once in a row to a site and gets status code 201")
public void addSeveralUsersWithDifferentRolesToASite() throws Exception
{
UserModel firstUser = dataUser.createRandomTestUser("testUser");
firstUser.setUserRole(UserRole.SiteContributor);
UserModel secondUser = dataUser.createRandomTestUser("testUser");
secondUser.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUserModel).withCoreAPI();
String json = String.format(addMembersJson, firstUser.getUserRole(), firstUser.getUsername(), secondUser.getUserRole(), secondUser.getUsername());
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that several users with same roles can be added once in a row to a site and gets status code 201")
public void addSeveralUsersWithSameRolesToASite() throws Exception
{
UserModel firstUser = dataUser.createRandomTestUser("testUser");
firstUser.setUserRole(UserRole.SiteCollaborator);
UserModel secondUser = dataUser.createRandomTestUser("testUser");
secondUser.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUserModel).withCoreAPI();
String json = String.format(addMembersJson, firstUser.getUserRole(), firstUser.getUsername(), secondUser.getUserRole(), secondUser.getUsername());
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that several users that are already added to the site can not be added once in a row and gets status code 400")
public void addSeveralUsersThatAreAlreadyAddedToASite() throws Exception
{
UserModel collaborator = usersWithRolesToModeratedSite.getOneUserWithRole(UserRole.SiteCollaborator);
UserModel consumer = usersWithRolesToModeratedSite.getOneUserWithRole(UserRole.SiteConsumer);
restClient.authenticateUser(adminUserModel).withCoreAPI();
String json = String.format(addMembersJson, collaborator.getUserRole(), collaborator.getUsername(), consumer.getUserRole(), consumer.getUsername());
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", moderatedSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.CONFLICT).assertLastError().containsSummary(String.format(RestErrorModel.ALREADY_Site_MEMBER, collaborator.getUsername(), moderatedSiteModel.getId()));
}
}
@@ -1,256 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMemberModel;
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.HttpMethod;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AddSiteMemberFullTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel publicSiteModel;
private SiteModel moderatedSiteModel;
private SiteModel privateSiteModel;
private String addMembersJson;
private RestSiteMemberModel memberModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
publicSiteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(adminUserModel).createModeratedRandomSite();
privateSiteModel = dataSite.usingUser(adminUserModel).createPrivateRandomSite();
addMembersJson = "{\"role\":\"%s\",\"id\":\"%s\"}";
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION, description = "Check default error schema when request fails")
public void checkDefaultErrorSchema() throws Exception
{
UserModel testUser = new UserModel("inexistentUser", "password");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, testUser.getUsername()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Add new site member request by providing an empty body")
public void addSiteMemberUsingEmptyBody() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "", "sites/{siteId}/members?{parameters}",
publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.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.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Check lower and upper case letters for role field")
public void checkLowerUpperCaseLettersForRole() throws Exception
{
UserModel user = dataUser.createRandomTestUser();
String json = String.format(addMembersJson, "SITEMANAGER", user.getUsername());
restClient.authenticateUser(adminUserModel).withCoreAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
.containsSummary(String.format(RestErrorModel.UNKNOWN_ROLE, "SITEMANAGER"))
.containsErrorKey(String.format(RestErrorModel.UNKNOWN_ROLE, "SITEMANAGER"))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
json = String.format(addMembersJson, "sitemanager", user.getUsername());
restClient.authenticateUser(adminUserModel).withCoreAPI();
request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
.containsSummary(String.format(RestErrorModel.UNKNOWN_ROLE, "sitemanager"))
.containsErrorKey(String.format(RestErrorModel.UNKNOWN_ROLE, "sitemanager"))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Check empty value for user role")
public void checkEmptyValueForRole() throws Exception
{
UserModel user = dataUser.createRandomTestUser();
String json = String.format(addMembersJson, "", user.getUsername());
restClient.authenticateUser(adminUserModel).withCoreAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
.containsErrorKey(String.format(RestErrorModel.NO_CONTENT, "N/A (through reference chain: org.alfresco.rest.api.model.SiteMember[\"role\"])"))
.containsSummary(String.format(RestErrorModel.NO_CONTENT, "N/A (through reference chain: org.alfresco.rest.api.model.SiteMember[\"role\"])"))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator role can be added to public site")
public void addCollaboratorToPublicSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteCollaborator);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor role can be added to public site")
public void addContributorToPublicSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteContributor);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that consumer role can be added to public site")
public void addConsumerToPublicSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator role can be added to moderated site")
public void addCollaboratorToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteCollaborator);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor role can be added to moderated site")
public void addContributorToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteContributor);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that consumer role can be added to moderated site")
public void addConsumerToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator role can be added to private site")
public void addCollaboratorToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteCollaborator);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor role can be added to private site")
public void addContributorToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteContributor);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that consumer role can be added to private site")
public void addConsumerToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can be added to private site by site manager")
public void adminCanBeAddedToPrivateSiteBySiteManager() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser();
SiteModel privateSite = dataSite.usingUser(testUser).createPrivateRandomSite();
adminUserModel.setUserRole(UserRole.SiteContributor);
memberModel = restClient.authenticateUser(testUser).withCoreAPI().usingSite(privateSite).addPerson(adminUserModel);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(adminUserModel.getUsername()).and().field("role").is(adminUserModel.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin cannot be added to private site by site collaborator")
public void adminCannotBeAddedToPrivateSiteBySiteCollaborator() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser();
SiteModel privateSite = dataSite.usingUser(testUser).createPrivateRandomSite();
UserModel siteCollaborator = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteCollaborator, privateSite, UserRole.SiteCollaborator);
adminUserModel.setUserRole(UserRole.SiteContributor);
memberModel = restClient.authenticateUser(siteCollaborator).withCoreAPI().usingSite(privateSite).addPerson(adminUserModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
}
@@ -1,118 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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;
public class AddSiteMemberSanityTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel,
UserRole.SiteManager,
UserRole.SiteCollaborator,
UserRole.SiteConsumer,
UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that manager is able to add site member and gets status code CREATED (201)")
public void managerIsAbleToAddSiteMember() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).addPerson(testUser)
.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that site collaborator is not able to add site member and gets status code FORBIDDEN (403)")
public void collaboratorIsNotAbleToAddSiteMember() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI().usingSite(siteModel).addPerson(testUser);
restClient.assertLastError().containsSummary("Permission was denied");
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that site contributor is not able to add site member and gets status code FORBIDDEN (403)")
public void contributorIsNotAbleToAddSiteMember() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor))
.withCoreAPI().usingSite(siteModel).addPerson(testUser);
restClient.assertLastError().containsSummary("Permission was denied");
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that site consumer is not able to add site member and gets status code FORBIDDEN (403)")
public void consumerIsNotAbleToAddSiteMember() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingSite(siteModel).addPerson(testUser);
restClient.assertLastError().containsSummary("Permission was denied");
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that admin user is able to add site member and gets status code CREATED (201)")
public void adminIsAbleToAddSiteMember() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(siteModel).addPerson(testUser)
.and().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that unauthenticated user is not able to add site member")
@Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToAddSiteMmeber() throws Exception{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
UserModel inexistentUser = new UserModel("inexistent user", "inexistent password");
restClient.authenticateUser(inexistentUser)
.withCoreAPI().usingSite(siteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,589 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.JsonBodyGenerator;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMemberModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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;
public class AddSiteMemberTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel publicSiteModel, moderatedSiteModel, privateSiteModel;
private ListUserWithRoles publicSiteUsersWithRoles, moderatedSiteUsersWithRoles, privateSiteUsersWithRoles;
private String addMemberJson, addMembersJson;
private RestSiteMemberModel memberModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
publicSiteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(adminUserModel).createModeratedRandomSite();
privateSiteModel = dataSite.usingUser(adminUserModel).createPrivateRandomSite();
publicSiteUsersWithRoles = dataUser.addUsersWithRolesToSite(publicSiteModel,
UserRole.SiteManager,
UserRole.SiteCollaborator,
UserRole.SiteConsumer,
UserRole.SiteContributor);
moderatedSiteUsersWithRoles = dataUser.addUsersWithRolesToSite(moderatedSiteModel,
UserRole.SiteManager,
UserRole.SiteCollaborator,
UserRole.SiteConsumer,
UserRole.SiteContributor);
privateSiteUsersWithRoles = dataUser.addUsersWithRolesToSite(privateSiteModel,
UserRole.SiteManager,
UserRole.SiteCollaborator,
UserRole.SiteConsumer,
UserRole.SiteContributor);
addMemberJson = "{\"role\":\"%s\",\"id\":\"%s\"}";
addMembersJson = "{\"role\":\"%s\",\"id\":\"%s\"}, {\"role\":\"%s\",\"id\":\"%s\"}";
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that manager is able to add site member and gets status code CREATED (201)")
public void managerIsAbleToAddSiteMember() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(publicSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(publicSiteModel).addPerson(testUser)
.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site collaborator is not able to add site member and gets status code FORBIDDEN (403)")
public void collaboratorIsNotAbleToAddSiteMember() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(publicSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertLastError().containsSummary("Permission was denied");
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION})
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site contributor is not able to add site member and gets status code FORBIDDEN (403)")
public void contributorIsNotAbleToAddSiteMember() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(publicSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteContributor))
.withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertLastError().containsSummary("Permission was denied");
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site consumer is not able to add site member and gets status code FORBIDDEN (403)")
public void consumerIsNotAbleToAddSiteMember() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(publicSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertLastError().containsSummary("Permission was denied");
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that admin user is able to add site member and gets status code CREATED (201)")
public void adminIsAbleToAddSiteMember() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(publicSiteModel).addPerson(testUser)
.and().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that unauthenticated user is not able to add site member")
// @Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToAddSiteMmeber() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
UserModel userModel = dataUser.createRandomTestUser();
userModel.setPassword("user wrong password");
dataUser.addUserToSite(userModel, publicSiteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel)
.withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can add another user as manager to a public site and gets status code CREATED (201)")
public void addManagerToPublicSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can add another user as manager to a moderated site and gets status code CREATED (201)")
public void addManagerToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can add another user as manager to a private site and gets status code CREATED (201)")
public void addManagerToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that consumer role is not able to add another user to a moderated site and gets status code 403")
public void addUserByConsumerToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(moderatedSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that consumer role is not able to add another user to a private site and gets status code 403")
public void addUserByConsumerToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(privateSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator role is not able to add another user to a moderated site and gets status code 403")
public void addUserByCollaboratorToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(moderatedSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator role is not able to add another user to a private site and gets status code 403")
public void addUserByCollaboratorToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(privateSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor role is not able to add another user to a moderated site and gets status code 403")
public void addUserByContributorToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(moderatedSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor role is not able to add another user to a private site and gets status code 403")
public void addUserByContributorToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(privateSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that a user without specified role can not be added to a site and gets status code 400")
public void canNotAddUserWithoutSpecifyingRoleToSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
restClient.authenticateUser(adminUserModel).withCoreAPI();
String json = JsonBodyGenerator.keyValueJson("id", testUser.getUsername());
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(RestErrorModel.MUST_PROVIDE_ROLE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that a user with inexistent role can not be added to a site and gets status code 400")
public void canNotAddUserWithInexistentRoleToSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
restClient.authenticateUser(adminUserModel).withCoreAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, String.format("{\"role\":\"inexistentRole\",\"id\":\"%s\"}", testUser.getUsername()), "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.UNKNOWN_ROLE, "inexistentRole"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not add himself as a manager to a public site and gets status code 403")
public void userAddHimselfAsManagerToPublicSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(testUser).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not add himself as a manager to a moderated site and gets status code 403")
public void userAddHimselfAsManagerToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(testUser).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not add himself as a manager to a private site and gets status code 404")
public void userAddHimselfAsManagerToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(testUser).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, privateSiteModel.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not be added to an inexistent site and gets status code 404")
public void userIsNotAbleToAddUserToAnInexistentSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
SiteModel inexistentSite = new SiteModel("inexistentSite");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(inexistentSite).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not be added to a site if an empty site id is provided and gets status code 404")
public void userIsNotAbleToAddAnotherUserUsingEmptySiteId() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteManager);
SiteModel inexistentSite = new SiteModel("");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(inexistentSite).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that inexistent user can not be added to site and gets status code 404")
public void userIsNotAbleToAddInexistentUserToSite() throws Exception
{
UserModel testUser = new UserModel("inexistentUser", "password");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, testUser.getUsername()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that empty username can not be added to site and gets status code 400")
public void userIsNotAbleToAddEmptyUserIdToSite() throws Exception
{
UserModel testUser = new UserModel("", "password");
testUser.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.NO_CONTENT, testUser.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that user can not add another user that is already a memeber and gets status code 409")
public void userIsNotAbleToAddUserThatIsAlreadyAMember() throws Exception
{
UserModel collaborator = moderatedSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(collaborator);
restClient.assertStatusCodeIs(HttpStatus.CONFLICT).assertLastError().containsSummary(String.format(RestErrorModel.ALREADY_Site_MEMBER, collaborator.getUsername(), moderatedSiteModel.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that several users with different roles can be added once in a row to a site and gets status code 201")
public void addSeveralUsersWithDifferentRolesToASite() throws Exception
{
UserModel firstUser = dataUser.createRandomTestUser("testUser");
firstUser.setUserRole(UserRole.SiteContributor);
UserModel secondUser = dataUser.createRandomTestUser("testUser");
secondUser.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUserModel).withCoreAPI();
String json = String.format(addMembersJson, firstUser.getUserRole(), firstUser.getUsername(), secondUser.getUserRole(), secondUser.getUsername());
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that several users with same roles can be added once in a row to a site and gets status code 201")
public void addSeveralUsersWithSameRolesToASite() throws Exception
{
UserModel firstUser = dataUser.createRandomTestUser("testUser");
firstUser.setUserRole(UserRole.SiteCollaborator);
UserModel secondUser = dataUser.createRandomTestUser("testUser");
secondUser.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUserModel).withCoreAPI();
String json = String.format(addMembersJson, firstUser.getUserRole(), firstUser.getUsername(), secondUser.getUserRole(), secondUser.getUsername());
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that several users that are already added to the site can not be added once in a row and gets status code 400")
public void addSeveralUsersThatAreAlreadyAddedToASite() throws Exception
{
UserModel collaborator = moderatedSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
UserModel consumer = moderatedSiteUsersWithRoles.getOneUserWithRole(UserRole.SiteConsumer);
restClient.authenticateUser(adminUserModel).withCoreAPI();
String json = String.format(addMembersJson, collaborator.getUserRole(), collaborator.getUsername(), consumer.getUserRole(), consumer.getUsername());
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", moderatedSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.CONFLICT).assertLastError().containsSummary(String.format(RestErrorModel.ALREADY_Site_MEMBER, collaborator.getUsername(), moderatedSiteModel.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Add new site member request by providing an empty body")
public void addSiteMemberUsingEmptyBody() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "", "sites/{siteId}/members?{parameters}",
publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.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.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Check lower and upper case letters for role field")
public void checkLowerUpperCaseLettersForRole() throws Exception
{
UserModel user = dataUser.createRandomTestUser();
String json = String.format(addMemberJson, "SITEMANAGER", user.getUsername());
restClient.authenticateUser(adminUserModel).withCoreAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
.containsSummary(String.format(RestErrorModel.UNKNOWN_ROLE, "SITEMANAGER"))
.containsErrorKey(String.format(RestErrorModel.UNKNOWN_ROLE, "SITEMANAGER"))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
json = String.format(addMemberJson, "sitemanager", user.getUsername());
restClient.authenticateUser(adminUserModel).withCoreAPI();
request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
.containsSummary(String.format(RestErrorModel.UNKNOWN_ROLE, "sitemanager"))
.containsErrorKey(String.format(RestErrorModel.UNKNOWN_ROLE, "sitemanager"))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Check empty value for user role")
public void checkEmptyValueForRole() throws Exception
{
UserModel user = dataUser.createRandomTestUser();
String json = String.format(addMemberJson, "", user.getUsername());
restClient.authenticateUser(adminUserModel).withCoreAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, json, "sites/{siteId}/members?{parameters}", publicSiteModel.getId(), restClient.getParameters());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
.containsErrorKey(String.format(RestErrorModel.NO_CONTENT, "N/A (through reference chain: org.alfresco.rest.api.model.SiteMember[\"role\"])"))
.containsSummary(String.format(RestErrorModel.NO_CONTENT, "N/A (through reference chain: org.alfresco.rest.api.model.SiteMember[\"role\"])"))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor role can be added to public site")
public void addContributorToPublicSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteContributor);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator role can be added to moderated site")
public void addCollaboratorToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteCollaborator);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor role can be added to moderated site")
public void addContributorToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteContributor);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that consumer role can be added to moderated site")
public void addConsumerToModeratedSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator role can be added to private site")
public void addCollaboratorToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteCollaborator);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor role can be added to private site")
public void addContributorToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteContributor);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that consumer role can be added to private site")
public void addConsumerToPrivateSite() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser("testUser");
testUser.setUserRole(UserRole.SiteConsumer);
memberModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(testUser);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(testUser.getUsername())
.and().field("role").is(testUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can be added to private site by site manager")
public void adminCanBeAddedToPrivateSiteBySiteManager() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser();
SiteModel privateSite = dataSite.usingUser(testUser).createPrivateRandomSite();
adminUserModel.setUserRole(UserRole.SiteContributor);
memberModel = restClient.authenticateUser(testUser).withCoreAPI().usingSite(privateSite).addPerson(adminUserModel);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
memberModel.assertThat().field("id").is(adminUserModel.getUsername()).and().field("role").is(adminUserModel.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin cannot be added to private site by site collaborator")
public void adminCannotBeAddedToPrivateSiteBySiteCollaborator() throws Exception
{
UserModel testUser = dataUser.createRandomTestUser();
SiteModel privateSite = dataSite.usingUser(testUser).createPrivateRandomSite();
UserModel siteCollaborator = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteCollaborator, privateSite, UserRole.SiteCollaborator);
adminUserModel.setUserRole(UserRole.SiteContributor);
memberModel = restClient.authenticateUser(siteCollaborator).withCoreAPI().usingSite(privateSite).addPerson(adminUserModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
}
@@ -1,175 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*
* @author Cristina Axinte
*
*/
public class GetSiteMemberCoreTests extends RestTest
{
private UserModel adminUser;
private SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
private UserModel manager, consumer, collaborator, contributor;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUser).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
consumer = dataUser.createRandomTestUser();
dataUser.addUserToSite(consumer, siteModel, UserRole.SiteConsumer);
manager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager);
collaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
contributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role doesn't get a site member of inexistent site and status code is Not Found (404)")
public void getSiteMemberOfInexistentSite() throws Exception
{
SiteModel invalidSite = new SiteModel("invalidSite");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(invalidSite).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, consumer.getUsername(), invalidSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role doesn't get non site member of inexistent site and status code is Not Found (404)")
public void getSiteMemberForNonSiteMember() throws Exception
{
UserModel nonMember = dataUser.createRandomTestUser();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(nonMember);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, nonMember.getUsername(), siteModel.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role doesn't get not existing site member and status code is Not Found (404)")
public void getSiteMemberForInexistentSiteMember() throws Exception
{
UserModel inexistentUser = new UserModel("inexistentUser", "password");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(inexistentUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role can get site member using \"-me-\" in place of personId")
public void getSiteMemberUsingMeForPersonId() throws Exception
{
UserModel manager = dataUser.createRandomTestUser();
dataUser.addUserToSite(manager, siteModel, UserRole.SiteManager);
UserModel meUser = new UserModel("-me-", "password");
restClient.authenticateUser(manager);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(meUser)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role can get site member for empty siteId")
public void getSiteMemberForEmptySiteId() throws Exception
{
SiteModel emptySite = new SiteModel("");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(emptySite).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, consumer.getUsername(), emptySite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithManagerRole() throws Exception
{
UserModel anotherManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(anotherManager, siteModel, UserRole.SiteManager);
restClient.authenticateUser(manager);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(anotherManager)
.assertThat().field("id").is(anotherManager.getUsername())
.and().field("role").is(anotherManager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(collaborator);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(manager)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithConsumerRole() throws Exception
{
restClient.authenticateUser(consumer);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(manager)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithContributorRole() throws Exception
{
restClient.authenticateUser(contributor);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(manager)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets admin site member and status code is OK (200)")
public void getSiteAdminManagerMember() throws Exception
{
restClient.authenticateUser(contributor);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(adminUser)
.assertThat().field("id").is(adminUser.getUsername())
.and().field("role").is(UserRole.SiteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -1,192 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class GetSiteMemberFullTests extends RestTest
{
private UserModel adminUser;
private SiteModel siteModel;
private SiteModel moderatedSiteModel;
private SiteModel privateSiteModel;
private ListUserWithRoles usersWithRoles;
private UserModel manager, consumer, collaborator, contributor;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUser).createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(adminUser).createModeratedRandomSite();
privateSiteModel = dataSite.usingUser(adminUser).createPrivateRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
consumer = usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer);
manager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager);
collaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
contributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor);
dataUser.addUserToSite(consumer, moderatedSiteModel, UserRole.SiteConsumer);
dataUser.addUserToSite(manager, moderatedSiteModel, UserRole.SiteManager);
dataUser.addUserToSite(consumer, privateSiteModel, UserRole.SiteConsumer);
dataUser.addUserToSite(manager, privateSiteModel, UserRole.SiteManager);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site member with Contributor role and status code is OK (200)")
public void getSiteContributorMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(collaborator).withCoreAPI().usingSite(siteModel).getSiteMember(contributor)
.assertThat().field("id").is(contributor.getUsername())
.and().field("role").is(contributor.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets site member with Collaborator role and status code is OK (200)")
public void getSiteCollaboratorMemberWithContributorRole() throws Exception
{
restClient.authenticateUser(contributor).withCoreAPI().usingSite(siteModel).getSiteMember(collaborator)
.assertThat().field("id").is(collaborator.getUsername())
.and().field("role").is(collaborator.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets admin role and status code is OK (200)")
public void getAdminWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(collaborator).withCoreAPI().usingSite(siteModel).getSiteMember(adminUser)
.assertThat().field("id").is(adminUser.getUsername())
.and().field("role").is(UserRole.SiteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site member with Consumer role and status code is OK (200)")
public void getSiteConsumerMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(collaborator).withCoreAPI().usingSite(siteModel).getSiteMember(consumer)
.assertThat().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user gets site member of private site and status code is OK (200)")
public void getSiteMemberOfPrivateSite() throws Exception
{
restClient.authenticateUser(manager).withCoreAPI().usingSite(privateSiteModel).getSiteMember(consumer)
.assertThat().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify not joined user is not is not able to get site member of private site and status code is 404")
public void userThatIsNotMemberOfPrivateSiteIsNotAbleToGetSiteMember() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingSite(privateSiteModel).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, consumer.getUsername(), privateSiteModel.getTitle()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is not able to get from site a user that created a member request that was not accepted yet")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsNotAbleToGetFromSiteANonExistingMember() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSiteModel);
restClient.authenticateUser(adminUser).withCoreAPI().usingSite(moderatedSiteModel).getSiteMember(newMember);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), moderatedSiteModel.getTitle()))
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user gets site creator and status code is OK (200)")
public void getSiteCreator() throws Exception
{
SiteModel newSiteModel = dataSite.usingUser(collaborator).createModeratedRandomSite();
dataUser.addUserToSite(consumer, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(consumer).withCoreAPI().usingSite(newSiteModel).getSiteMember(collaborator)
.assertThat().field("id").is(collaborator.getUsername())
.and().field("role").is(UserRole.SiteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role can get site member using \"-me-\" in place of personId")
public void getSiteMemberOfPrivateSiteUsingMeForPersonId() throws Exception
{
UserModel meUser = new UserModel("-me-", "password");
restClient.authenticateUser(consumer).withCoreAPI().usingSite(privateSiteModel).getSiteMember(meUser)
.assertThat().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user gets site member of moderated site and status code is OK (200)")
public void getSiteMemberOfModeratedSite() throws Exception
{
restClient.authenticateUser(manager).withCoreAPI().usingSite(moderatedSiteModel).getSiteMember(consumer)
.assertThat().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify not joined user gets site member of moderated site and status code is OK (200)")
public void userThatIsNotMemberOfModeratedSiteIsAbleToGetSiteMember() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingSite(moderatedSiteModel).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site member request with properties parameter returns status code 200 and parameter is applied")
public void getSiteMemberUsingPropertiesParameter() throws Exception
{
restClient.authenticateUser(manager)
.withCoreAPI().usingSite(siteModel).usingParams("properties=id").getSiteMember(consumer)
.assertThat().fieldsCount().is(1)
.and().field("id").isNotEmpty()
.and().field("role").isNull()
.and().field("person").isNull();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -1,112 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.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;
/**
* @author iulia.cojocea
*/
public class GetSiteMemberSanityTests extends RestTest
{
private UserModel adminUser;
private SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
private UserModel userModel;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUser).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
userModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(userModel, siteModel, UserRole.SiteConsumer);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets site member and status code is OK (200)")
public void getSiteMemberWithManagerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(userModel)
.assertThat().field("id").is(userModel.getUsername())
.and().field("role").is(userModel.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Collaborator role gets site member and gets status code OK (200)")
public void getSiteMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(userModel)
.and().field("id").is(userModel.getUsername())
.and().field("role").is(userModel.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Contributor role gets site member and gets status code OK (200)")
public void getSiteMemberWithContributorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(userModel)
.and().field("id").is(userModel.getUsername())
.and().field("role").is(userModel.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Consumer role gets site member and gets status code OK (200)")
public void getSiteMemberWithConsumerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(userModel)
.and().field("id").is(userModel.getUsername())
.and().field("role").is(userModel.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with admin user gets site member and gets status code OK (200)")
public void getSiteMemberWithAdminUser() throws Exception
{
restClient.authenticateUser(adminUser);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(userModel)
.and().field("id").is(userModel.getUsername())
.and().field("role").is(userModel.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get site member call returns status code 401")
@Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSiteMember() throws JsonToModelConversionException, Exception
{
UserModel inexistentUser = new UserModel("inexistent user", "inexistent password");
restClient.authenticateUser(inexistentUser);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(userModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,396 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* @author iulia.cojocea
*/
public class GetSiteMemberTests extends RestTest
{
private UserModel adminUser;
private SiteModel publicSiteModel, moderatedSiteModel, privateSiteModel;
private ListUserWithRoles usersWithRoles;
private UserModel manager, consumer, collaborator, contributor;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
publicSiteModel = dataSite.usingUser(adminUser).createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(adminUser).createModeratedRandomSite();
privateSiteModel = dataSite.usingUser(adminUser).createPrivateRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(publicSiteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
consumer = dataUser.createRandomTestUser();
manager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager);
collaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
contributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor);
dataUser.addUserToSite(consumer, publicSiteModel, UserRole.SiteConsumer);
dataUser.addUserToSite(consumer, moderatedSiteModel, UserRole.SiteConsumer);
dataUser.addUserToSite(manager, moderatedSiteModel, UserRole.SiteManager);
dataUser.addUserToSite(consumer, privateSiteModel, UserRole.SiteConsumer);
dataUser.addUserToSite(manager, privateSiteModel, UserRole.SiteManager);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets site member and status code is OK (200)")
public void getSiteMemberWithManagerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(consumer)
.assertThat().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site member and gets status code OK (200)")
public void getSiteMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(consumer)
.and().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets site member and gets status code OK (200)")
public void getSiteMemberWithContributorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(consumer)
.and().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role gets site member and gets status code OK (200)")
public void getSiteMemberWithConsumerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(consumer)
.and().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with admin user gets site member and gets status code OK (200)")
public void getSiteMemberWithAdminUser() throws Exception
{
restClient.authenticateUser(adminUser);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(consumer)
.and().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get site member call returns status code 401")
// @Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSiteMember() throws JsonToModelConversionException, Exception
{
UserModel inexistentUser = new UserModel("inexistent user", "inexistent password");
restClient.authenticateUser(inexistentUser);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role doesn't get a site member of inexistent site and status code is Not Found (404)")
public void getSiteMemberOfInexistentSite() throws Exception
{
SiteModel invalidSite = new SiteModel("invalidSite");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(invalidSite).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, consumer.getUsername(), invalidSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role doesn't get non site member of inexistent site and status code is Not Found (404)")
public void getSiteMemberForNonSiteMember() throws Exception
{
UserModel nonMember = dataUser.createRandomTestUser();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(nonMember);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, nonMember.getUsername(), publicSiteModel.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role doesn't get not existing site member and status code is Not Found (404)")
public void getSiteMemberForInexistentSiteMember() throws Exception
{
UserModel inexistentUser = new UserModel("inexistentUser", "password");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(inexistentUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role can get site member using \"-me-\" in place of personId")
public void getSiteMemberUsingMeForPersonId() throws Exception
{
UserModel meUser = new UserModel("-me-", "password");
restClient.authenticateUser(manager);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(meUser)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role can get site member for empty siteId")
public void getSiteMemberForEmptySiteId() throws Exception
{
SiteModel emptySite = new SiteModel("");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(emptySite).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, consumer.getUsername(), emptySite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithManagerRole() throws Exception
{
UserModel anotherManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(anotherManager, publicSiteModel, UserRole.SiteManager);
restClient.authenticateUser(manager);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(anotherManager)
.assertThat().field("id").is(anotherManager.getUsername())
.and().field("role").is(anotherManager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(collaborator);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(manager)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithConsumerRole() throws Exception
{
restClient.authenticateUser(consumer);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(manager)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithContributorRole() throws Exception
{
restClient.authenticateUser(contributor);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(manager)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets admin site member and status code is OK (200)")
public void getSiteAdminManagerMember() throws Exception
{
restClient.authenticateUser(contributor);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMember(adminUser)
.assertThat().field("id").is(adminUser.getUsername())
.and().field("role").is(UserRole.SiteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site member with Contributor role and status code is OK (200)")
public void getSiteContributorMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(collaborator).withCoreAPI().usingSite(publicSiteModel).getSiteMember(contributor)
.assertThat().field("id").is(contributor.getUsername())
.and().field("role").is(contributor.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets site member with Collaborator role and status code is OK (200)")
public void getSiteCollaboratorMemberWithContributorRole() throws Exception
{
restClient.authenticateUser(contributor).withCoreAPI().usingSite(publicSiteModel).getSiteMember(collaborator)
.assertThat().field("id").is(collaborator.getUsername())
.and().field("role").is(collaborator.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets admin role and status code is OK (200)")
public void getAdminWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(collaborator).withCoreAPI().usingSite(publicSiteModel).getSiteMember(adminUser)
.assertThat().field("id").is(adminUser.getUsername())
.and().field("role").is(UserRole.SiteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site member with Consumer role and status code is OK (200)")
public void getSiteConsumerMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(collaborator).withCoreAPI().usingSite(publicSiteModel).getSiteMember(consumer)
.assertThat().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user gets site member of private site and status code is OK (200)")
public void getSiteMemberOfPrivateSite() throws Exception
{
restClient.authenticateUser(manager).withCoreAPI().usingSite(privateSiteModel).getSiteMember(consumer)
.assertThat().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify not joined user is not is not able to get site member of private site and status code is 404")
public void regularUserIsNotAbleToGetSiteMemberOfPrivateSite() throws Exception {
UserModel regularUser = dataUser.createRandomTestUser();
restClient.authenticateUser(regularUser).withCoreAPI().usingSite(privateSiteModel).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, consumer.getUsername(), privateSiteModel.getTitle()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is not able to get from site a user that created a member request that was not accepted yet")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void adminIsNotAbleToGetFromSiteANonExistingMember() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSiteModel);
restClient.authenticateUser(adminUser).withCoreAPI().usingSite(moderatedSiteModel).getSiteMember(newMember);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), moderatedSiteModel.getTitle()))
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user gets site creator and status code is OK (200)")
public void getSiteCreator() throws Exception
{
SiteModel newSiteModel = dataSite.usingUser(collaborator).createModeratedRandomSite();
dataUser.addUserToSite(consumer, publicSiteModel, UserRole.SiteConsumer);
restClient.authenticateUser(consumer).withCoreAPI().usingSite(newSiteModel).getSiteMember(collaborator)
.assertThat().field("id").is(collaborator.getUsername())
.and().field("role").is(UserRole.SiteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role can get site member using \"-me-\" in place of personId")
public void getSiteMemberOfPrivateSiteUsingMeForPersonId() throws Exception
{
UserModel meUser = new UserModel("-me-", "password");
restClient.authenticateUser(consumer).withCoreAPI().usingSite(privateSiteModel).getSiteMember(meUser)
.assertThat().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user gets site member of moderated site and status code is OK (200)")
public void getSiteMemberOfModeratedSite() throws Exception
{
restClient.authenticateUser(manager).withCoreAPI().usingSite(moderatedSiteModel).getSiteMember(consumer)
.assertThat().field("id").is(consumer.getUsername())
.and().field("role").is(consumer.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify not joined user gets site member of moderated site and status code is OK (200)")
public void regularUserIsAbleToGetSiteMemberOfModeratedSite() throws Exception
{
UserModel regularUser = dataUser.createRandomTestUser();
restClient.authenticateUser(regularUser).withCoreAPI().usingSite(moderatedSiteModel).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site member request with properties parameter returns status code 200 and parameter is applied")
public void getSiteMemberUsingPropertiesParameter() throws Exception
{
restClient.authenticateUser(manager)
.withCoreAPI().usingSite(publicSiteModel).usingParams("properties=id").getSiteMember(consumer)
.assertThat().fieldsCount().is(1)
.and().field("id").isNotEmpty()
.and().field("role").isNull()
.and().field("person").isNull();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -1,159 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMemberModelsCollection;
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;
/**
* Created by Claudia Agache on 11/23/2016.
*/
public class GetSiteMembersCoreTests extends RestTest
{
private UserModel userModel, publicSiteContributor, privateSiteConsumer, moderatedSiteManager, admin;
private SiteModel publicSite, privateSite, moderatedSite, moderatedSite2;
private RestSiteMemberModelsCollection siteMembers;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
admin = dataUser.getAdminUser();
userModel = dataUser.createRandomTestUser();
publicSiteContributor = dataUser.createRandomTestUser();
moderatedSiteManager = dataUser.createRandomTestUser();
privateSiteConsumer = dataUser.createRandomTestUser();
publicSite = dataSite.usingAdmin().createPublicRandomSite();
privateSite = dataSite.usingAdmin().createPrivateRandomSite();
moderatedSite = dataSite.usingAdmin().createModeratedRandomSite();
moderatedSite2 = dataSite.usingAdmin().createModeratedRandomSite();
dataUser.addUserToSite(publicSiteContributor, publicSite, UserRole.SiteContributor);
dataUser.addUserToSite(moderatedSiteManager, moderatedSite, UserRole.SiteManager);
dataUser.addUserToSite(privateSiteConsumer, privateSite, UserRole.SiteConsumer);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site members call returns status code 404 if siteId does not exist")
public void checkStatusCodeForNonExistentSiteId() throws Exception
{
restClient.authenticateUser(publicSiteContributor).withCoreAPI()
.usingSite("NonExistentSiteId").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site members call returns status code 400 for invalid maxItems")
public void checkStatusCodeForInvalidMaxItems() throws Exception
{
restClient.authenticateUser(publicSiteContributor).withParams("maxItems=0")
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS)
.containsErrorKey(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
restClient.authenticateUser(publicSiteContributor).withParams("maxItems=A")
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "A"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site members call returns status code 400 for invalid skipCount ")
public void checkStatusCodeForInvalidSkipCount() throws Exception
{
restClient.authenticateUser(publicSiteContributor).withParams("skipCount=A")
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "A"));
restClient.authenticateUser(publicSiteContributor).withParams("skipCount=-1")
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets public site members and status code is 200")
public void getPublicSiteMembers() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", admin.getUsername())
.and().entriesListContains("id", publicSiteContributor.getUsername())
.and().paginationField("count").is("2");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members and status code is 200")
public void getModeratedSiteMembers() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", admin.getUsername())
.and().entriesListContains("id", moderatedSiteManager.getUsername())
.and().paginationField("count").is("2");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user gets private site members if he is a member of that site and status code is 200")
public void getPrivateSiteMembersByASiteMember() throws Exception
{
siteMembers = restClient.authenticateUser(privateSiteConsumer).withCoreAPI()
.usingSite(privateSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", admin.getUsername())
.and().entriesListContains("id", privateSiteConsumer.getUsername())
.and().paginationField("count").is("2");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user doesn't get private site members if he is not a member of that site and status code is 404")
public void getPrivateSiteMembersByNotASiteMember() throws Exception
{
restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(privateSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, privateSite.getTitle()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user gets moderated site members after the adding of a new member and status code is 200")
public void getSiteMembersAfterAddingNewMember() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite2).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", admin.getUsername())
.and().paginationField("count").is("1");
restClient.authenticateUser(admin).withCoreAPI().usingSite(moderatedSite2).addPerson(privateSiteConsumer);
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite2).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", admin.getUsername())
.and().entriesListContains("id", privateSiteConsumer.getUsername())
.and().paginationField("count").is("2");
}
}
@@ -1,160 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestSiteMemberModel;
import org.alfresco.rest.model.RestSiteMemberModelsCollection;
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;
/**
*
* @author Cristina Axinte
*
*/
public class GetSiteMembersFullTests extends RestTest
{
private UserModel userModel, publicSiteContributor;
private UserModel moderatedSiteContributor, moderatedSiteCollaborator, moderatedSiteConsumer;
private SiteModel publicSite, moderatedSite, moderatedSite2;
private RestSiteMemberModelsCollection siteMembers;
private RestSiteMemberModel firstSiteMember, secondSiteMember, thirdSiteMember, fourthSiteMember;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
userModel = dataUser.createRandomTestUser();
publicSiteContributor = dataUser.createRandomTestUser();
moderatedSiteContributor = dataUser.createRandomTestUser();
moderatedSiteCollaborator = dataUser.createRandomTestUser();
moderatedSiteConsumer = dataUser.createRandomTestUser();
publicSite = dataSite.usingUser(userModel).createPublicRandomSite();
moderatedSite = dataSite.usingUser(userModel).createModeratedRandomSite();
moderatedSite2 = dataSite.usingUser(userModel).createModeratedRandomSite();
dataUser.addUserToSite(publicSiteContributor, publicSite, UserRole.SiteContributor);
dataUser.addUserToSite(publicSiteContributor, publicSite, UserRole.SiteContributor);
dataUser.addUserToSite(moderatedSiteContributor, moderatedSite, UserRole.SiteContributor);
dataUser.addUserToSite(moderatedSiteCollaborator, moderatedSite, UserRole.SiteCollaborator);
dataUser.addUserToSite(moderatedSiteConsumer, moderatedSite, UserRole.SiteConsumer);
dataUser.addUserToSite(moderatedSiteContributor, moderatedSite2, UserRole.SiteContributor);
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite).usingParams("properties=role,id").getSiteMembers();
firstSiteMember = siteMembers.getEntries().get(0).onModel();
secondSiteMember = siteMembers.getEntries().get(1).onModel();
thirdSiteMember = siteMembers.getEntries().get(2).onModel();
fourthSiteMember = siteMembers.getEntries().get(3).onModel();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members with properties parameter applied and status code is 200")
public void getModeratedSiteMembersUsingPropertiesParameter() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite).usingParams("properties=role,id").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListCountIs(4)
.and().entriesListDoesNotContain("person")
.and().entriesListContains("role", UserRole.SiteManager.toString())
.and().entriesListContains("id", userModel.getUsername())
.and().entriesListContains("role", UserRole.SiteContributor.toString())
.and().entriesListContains("id", moderatedSiteContributor.getUsername())
.and().entriesListContains("role", UserRole.SiteCollaborator.toString())
.and().entriesListContains("id", moderatedSiteCollaborator.getUsername())
.and().entriesListContains("role", UserRole.SiteConsumer.toString())
.and().entriesListContains("id", moderatedSiteConsumer.getUsername());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members with skipCount parameter applied")
public void getModeratedSiteMembersUsingSkipCountParameter() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite).usingParams("skipCount=2").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().paginationField("count").is("2");
siteMembers.assertThat().paginationField("skipCount").is("2");
siteMembers.assertThat().entriesListDoesNotContain("id", firstSiteMember.getId())
.and().entriesListDoesNotContain("id", secondSiteMember.getId())
.and().entriesListContains("role", thirdSiteMember.getRole().toString())
.and().entriesListContains("id", thirdSiteMember.getId())
.and().entriesListContains("role", fourthSiteMember.getRole().toString())
.and().entriesListContains("id", fourthSiteMember.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members with high skipCount parameter applied")
public void getModeratedSiteMembersUsingHighSkipCountParameter() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite).usingParams("skipCount=100").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().paginationField("count").is("0");
siteMembers.assertThat().paginationField("skipCount").is("100");
siteMembers.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members with maxItems parameter applied and check all pagination fields")
public void getModeratedSiteMembersUsingMaxItemsParameter() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite).usingParams("maxItems=1").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().paginationField("count").is("1");
siteMembers.assertThat().paginationField("hasMoreItems").is("true");
siteMembers.assertThat().paginationField("maxItems").is("1");
siteMembers.assertThat().paginationField("totalItems").isNotPresent();
siteMembers.assertThat().entriesListContains("id", firstSiteMember.getId())
.and().entriesListContains("role", firstSiteMember.getRole().toString())
.and().entriesListDoesNotContain("id", secondSiteMember.getId())
.and().entriesListDoesNotContain("id", thirdSiteMember.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user gets moderated site members with member not joined yet and status code is 200")
public void getSiteMembersFromNotJoinedModeratedSite() throws Exception
{
UserModel userNotJoined = dataUser.createRandomTestUser();
restClient.authenticateUser(userNotJoined).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite2).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("role", UserRole.SiteManager.toString())
.and().entriesListContains("id", userModel.getUsername())
.and().entriesListDoesNotContain("id", userNotJoined.getUsername());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets site members after the member was removed from site and status code is 200")
public void getSiteMembersAfterRemoveTheSiteMember() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite2).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListCountIs(2);
restClient.authenticateUser(userModel).withCoreAPI().usingSite(moderatedSite2).deleteSiteMember(moderatedSiteContributor);
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite2).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListCountIs(1)
.and().entriesListContains("role", UserRole.SiteManager.toString())
.and().entriesListContains("id", userModel.getUsername());
}
}
@@ -1,111 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.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;
/**
* @author iulia.cojocea
*/
public class GetSiteMembersSanityTests extends RestTest
{
private SiteModel siteModel;
private UserModel adminUser;
private ListUserWithRoles usersWithRoles;
private UserModel userModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUser).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel,UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets site members and gets status code OK (200)")
public void getSiteMembersWithManagerRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(siteModel).getSiteMembers().assertThat().entriesListIsNotEmpty()
.and().entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteManager).getUsername())
.and().entriesListContains("role", usersWithRoles.getOneUserWithRole(UserRole.SiteManager).getUserRole().toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Collaborator role gets site members and gets status code OK (200)")
public void getSiteMembersWithCollaboratorRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI().usingSite(siteModel).getSiteMembers().assertThat().entriesListIsNotEmpty().assertThat()
.entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername()).and()
.entriesListContains("role", usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUserRole().toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Contributor role gets site members and gets status code OK (200)")
public void getSiteMembersWithContributorRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor))
.withCoreAPI().usingSite(siteModel).getSiteMembers().assertThat().entriesListIsNotEmpty()
.and().entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteContributor).getUsername())
.and().entriesListContains("role", usersWithRoles.getOneUserWithRole(UserRole.SiteContributor).getUserRole().toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Consumer role gets site members and gets status code OK (200)")
public void getSiteMembersWithConsumerRole() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingSite(siteModel).getSiteMembers().assertThat().entriesListIsNotEmpty()
.and().entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer).getUsername())
.and().entriesListContains("role", usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer).getUserRole().toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with admin usere gets site members and gets status code OK (200)")
public void getSiteMembersWithAdminUser() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUser)
.withCoreAPI().usingSite(siteModel).getSiteMembers().assertThat().entriesListIsNotEmpty()
.and().entriesListContains("id", adminUser.getUsername())
.when().assertThat().entriesListContains("role", "SiteManager");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get site members call returns status code 401")
@Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSiteMembers() throws JsonToModelConversionException, Exception
{
userModel = dataUser.createRandomTestUser();
userModel.setPassword("user wrong password");
dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel)
.withCoreAPI().usingSite(siteModel).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,357 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMemberModel;
import org.alfresco.rest.model.RestSiteMemberModelsCollection;
import org.alfresco.utility.Utility;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* @author iulia.cojocea
*/
public class GetSiteMembersTests extends RestTest
{
private SiteModel publicSite, privateSite, moderatedSite, moderatedSite2, moderatedSite3;
private RestSiteMemberModelsCollection siteMembers;
private ListUserWithRoles usersWithRoles, moderatedSiteUsers;
private UserModel regularUser, privateSiteConsumer, siteCreator;
private RestSiteMemberModel firstSiteMember, secondSiteMember, thirdSiteMember, fourthSiteMember;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
siteCreator = dataUser.createRandomTestUser();
regularUser = dataUser.createRandomTestUser();
privateSiteConsumer = dataUser.createRandomTestUser();
publicSite = dataSite.usingUser(siteCreator).createPublicRandomSite();
privateSite = dataSite.usingUser(siteCreator).createPrivateRandomSite();
moderatedSite = dataSite.usingUser(siteCreator).createModeratedRandomSite();
moderatedSite2 = dataSite.usingUser(siteCreator).createModeratedRandomSite();
moderatedSite3 = dataSite.usingUser(siteCreator).createModeratedRandomSite();
dataUser.addUserToSite(privateSiteConsumer, privateSite, UserRole.SiteConsumer);
dataUser.addUserToSite(privateSiteConsumer, moderatedSite3, UserRole.SiteConsumer);
usersWithRoles = dataUser.addUsersWithRolesToSite(publicSite,UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
moderatedSiteUsers = dataUser.addUsersWithRolesToSite(moderatedSite, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
siteMembers = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(moderatedSite).usingParams("properties=role,id").getSiteMembers();
firstSiteMember = siteMembers.getEntries().get(0).onModel();
secondSiteMember = siteMembers.getEntries().get(1).onModel();
thirdSiteMember = siteMembers.getEntries().get(2).onModel();
fourthSiteMember = siteMembers.getEntries().get(3).onModel();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify user with Manager role gets site members and gets status code OK (200)")
public void getSiteMembersWithManagerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSite).getSiteMembers().assertThat().entriesListIsNotEmpty()
.and().entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteManager).getUsername())
.and().entriesListContains("role", usersWithRoles.getOneUserWithRole(UserRole.SiteManager).getUserRole().toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site members and gets status code OK (200)")
public void getSiteMembersWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI().usingSite(publicSite).getSiteMembers().assertThat().entriesListIsNotEmpty().assertThat()
.entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername()).and()
.entriesListContains("role", usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUserRole().toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets site members and gets status code OK (200)")
public void getSiteMembersWithContributorRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor))
.withCoreAPI().usingSite(publicSite).getSiteMembers().assertThat().entriesListIsNotEmpty()
.and().entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteContributor).getUsername())
.and().entriesListContains("role", usersWithRoles.getOneUserWithRole(UserRole.SiteContributor).getUserRole().toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role gets site members and gets status code OK (200)")
public void getSiteMembersWithConsumerRole() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingSite(publicSite).getSiteMembers().assertThat().entriesListIsNotEmpty()
.and().entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer).getUsername())
.and().entriesListContains("role", usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer).getUserRole().toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with admin usere gets site members and gets status code OK (200)")
public void getSiteMembersWithAdminUser() throws Exception
{
restClient.authenticateUser(dataUser.getAdminUser())
.withCoreAPI().usingSite(publicSite).getSiteMembers().assertThat().entriesListIsNotEmpty()
.and().entriesListContains("id", siteCreator.getUsername())
.when().assertThat().entriesListContains("role", "SiteManager");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Failed authentication get site members call returns status code 401")
// @Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToRetrieveSiteMembers() throws Exception
{
UserModel userModel = dataUser.createRandomTestUser();
userModel.setPassword("user wrong password");
dataUser.addUserToSite(userModel, publicSite, UserRole.SiteManager);
restClient.authenticateUser(userModel)
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site members call returns status code 404 if siteId does not exist")
public void checkStatusCodeForNonExistentSiteId() throws Exception
{
restClient.authenticateUser(regularUser).withCoreAPI()
.usingSite("NonExistentSiteId").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site members call returns status code 400 for invalid maxItems")
public void checkStatusCodeForInvalidMaxItems() throws Exception
{
restClient.authenticateUser(regularUser).withParams("maxItems=0")
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS)
.containsErrorKey(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
restClient.withParams("maxItems=A")
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "A"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site members call returns status code 400 for invalid skipCount ")
public void checkStatusCodeForInvalidSkipCount() throws Exception
{
restClient.authenticateUser(regularUser).withParams("skipCount=A")
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "A"));
restClient.withParams("skipCount=-1")
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets public site members and status code is 200")
public void getPublicSiteMembers() throws Exception
{
siteMembers = restClient.authenticateUser(regularUser).withCoreAPI()
.usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", siteCreator.getUsername())
.and().entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer).getUsername())
.and().entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteContributor).getUsername())
.and().entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername())
.and().entriesListContains("id", usersWithRoles.getOneUserWithRole(UserRole.SiteManager).getUsername())
.and().paginationField("count").is("5");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members and status code is 200")
public void getModeratedSiteMembers() throws Exception
{
siteMembers = restClient.authenticateUser(regularUser).withCoreAPI()
.usingSite(moderatedSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", siteCreator.getUsername())
.and().entriesListContains("id", moderatedSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator).getUsername())
.and().entriesListContains("id", moderatedSiteUsers.getOneUserWithRole(UserRole.SiteContributor).getUsername())
.and().entriesListContains("id", moderatedSiteUsers.getOneUserWithRole(UserRole.SiteConsumer).getUsername())
.and().paginationField("count").is("4");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user gets private site members if he is a member of that site and status code is 200")
public void getPrivateSiteMembersByASiteMember() throws Exception
{
siteMembers = restClient.authenticateUser(privateSiteConsumer).withCoreAPI()
.usingSite(privateSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", siteCreator.getUsername())
.and().entriesListContains("id", privateSiteConsumer.getUsername())
.and().paginationField("count").is("2");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user doesn't get private site members if he is not a member of that site and status code is 404")
public void getPrivateSiteMembersByNotASiteMember() throws Exception
{
restClient.authenticateUser(regularUser).withCoreAPI()
.usingSite(privateSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, privateSite.getTitle()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user gets moderated site members after the adding of a new member and status code is 200")
public void getSiteMembersAfterAddingNewMember() throws Exception
{
siteMembers = restClient.authenticateUser(regularUser).withCoreAPI()
.usingSite(moderatedSite2).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", siteCreator.getUsername())
.and().paginationField("count").is("1");
restClient.authenticateUser(siteCreator).withCoreAPI().usingSite(moderatedSite2).addPerson(privateSiteConsumer);
siteMembers = restClient.authenticateUser(regularUser).withCoreAPI()
.usingSite(moderatedSite2).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", siteCreator.getUsername())
.and().entriesListContains("id", privateSiteConsumer.getUsername())
.and().paginationField("count").is("2");
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members with properties parameter applied and status code is 200")
public void getModeratedSiteMembersUsingPropertiesParameter() throws Exception
{
siteMembers = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(moderatedSite).usingParams("properties=role,id").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListCountIs(4)
.and().entriesListDoesNotContain("person")
.and().entriesListContains("role", UserRole.SiteManager.toString())
.and().entriesListContains("id", siteCreator.getUsername())
.and().entriesListContains("role", UserRole.SiteContributor.toString())
.and().entriesListContains("id", moderatedSiteUsers.getOneUserWithRole(UserRole.SiteContributor).getUsername())
.and().entriesListContains("role", UserRole.SiteCollaborator.toString())
.and().entriesListContains("id", moderatedSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator).getUsername())
.and().entriesListContains("role", UserRole.SiteConsumer.toString())
.and().entriesListContains("id", moderatedSiteUsers.getOneUserWithRole(UserRole.SiteConsumer).getUsername());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members with skipCount parameter applied")
public void getModeratedSiteMembersUsingSkipCountParameter() throws Exception
{
siteMembers = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(moderatedSite).usingParams("skipCount=2").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().paginationField("count").is("2");
siteMembers.assertThat().paginationField("skipCount").is("2");
siteMembers.assertThat().entriesListDoesNotContain("id", firstSiteMember.getId())
.and().entriesListDoesNotContain("id", secondSiteMember.getId())
.and().entriesListContains("role", thirdSiteMember.getRole().toString())
.and().entriesListContains("id", thirdSiteMember.getId())
.and().entriesListContains("role", fourthSiteMember.getRole().toString())
.and().entriesListContains("id", fourthSiteMember.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members with high skipCount parameter applied")
public void getModeratedSiteMembersUsingHighSkipCountParameter() throws Exception
{
siteMembers = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(moderatedSite).usingParams("skipCount=100").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().paginationField("count").is("0");
siteMembers.assertThat().paginationField("skipCount").is("100");
siteMembers.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members with maxItems parameter applied and check all pagination fields")
public void getModeratedSiteMembersUsingMaxItemsParameter() throws Exception
{
siteMembers = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(moderatedSite).usingParams("maxItems=1").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().paginationField("count").is("1");
siteMembers.assertThat().paginationField("hasMoreItems").is("true");
siteMembers.assertThat().paginationField("maxItems").is("1");
siteMembers.assertThat().paginationField("totalItems").isNotPresent();
siteMembers.assertThat().entriesListContains("id", firstSiteMember.getId())
.and().entriesListContains("role", firstSiteMember.getRole().toString())
.and().entriesListDoesNotContain("id", secondSiteMember.getId())
.and().entriesListDoesNotContain("id", thirdSiteMember.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user gets moderated site members with member not joined yet and status code is 200")
public void getSiteMembersFromNotJoinedModeratedSite() throws Exception
{
UserModel userNotJoined = dataUser.createRandomTestUser();
restClient.authenticateUser(userNotJoined).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
siteMembers = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(moderatedSite2).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", siteCreator.getUsername())
.and().entriesListDoesNotContain("id", userNotJoined.getUsername());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets site members after the member was removed from site and status code is 200")
public void getSiteMembersAfterRemovingASiteMember() throws Exception
{
siteMembers = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(moderatedSite3).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListCountIs(2);
restClient.withCoreAPI().usingSite(moderatedSite3).deleteSiteMember(privateSiteConsumer);
siteMembers = restClient.withCoreAPI().usingSite(moderatedSite3).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListCountIs(1)
.and().entriesListContains("role", UserRole.SiteManager.toString())
.and().entriesListContains("id", siteCreator.getUsername());
}
}
@@ -1,269 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*
* @author Cristina Axinte
*
*/
public class RemoveSiteMemberCoreTests extends RestTest
{
private SiteModel siteModel;
private UserModel adminUserModel;
private ListUserWithRoles usersWithRoles;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUserModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator,
UserRole.SiteConsumer, UserRole.SiteContributor);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can NOT delete site member for an inexistent user and gets status code 404, 'Not Found'")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void managerIsNotAbleToDeleteInexistentSiteMember() throws Exception
{
UserModel inexistentUser = new UserModel("inexistentUser", "password");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(inexistentUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can NOT delete site member for a non site member and gets status code 400, 'Bad Request'")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void managerIsNotAbleToDeleteNotSiteMember() throws Exception
{
UserModel nonMember = dataUser.createRandomTestUser();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(nonMember);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "argument"));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can NOT delete site member for an invalid site and gets status code 404, 'Not Found'")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void managerIsNotAbleToDeleteSiteMemberOfInvalidSite() throws Exception
{
SiteModel invalidSite = new SiteModel("invalidSite");
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(invalidSite).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, testUserModel.getUsername(), invalidSite.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete a site member with manager role")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteManagerIsAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel anothermanager = dataUser.createRandomTestUser();
dataUser.addUserToSite(anothermanager, siteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(siteModel).deleteSiteMember(anothermanager);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", anothermanager.getUsername());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete site member using \"-me-\" in place of personId")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void managerIsAbleToDeleteSiteMemberUsingMe() throws Exception
{
UserModel manager = dataUser.createRandomTestUser();
dataUser.addUserToSite(manager, siteModel, UserRole.SiteManager);
UserModel meUser = new UserModel("-me-", "password");
restClient.authenticateUser(manager);
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(meUser);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", manager.getUsername());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site collaborator cannot delete a site member with Manager role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel managerForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(managerForDelete, siteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(managerForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site contributor cannot delete site member with Manager role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteContributorIsNotAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel managerForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(managerForDelete, siteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(managerForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site consumer cannot delete site member with Manager role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteConsumerIsNotAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel managerForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(managerForDelete, siteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(managerForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site collaborator cannot delete a site member with Contributor role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, siteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site contributor cannot delete site member with Contributor role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteContributorIsNotAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, siteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site consumer cannot delete site member with Contributor role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteConsumerIsNotAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, siteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete a site member with Contributor role")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteManagerIsAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, siteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(siteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", contributorForDelete.getUsername());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site collaborator cannot delete a site member with Collaborator role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, siteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site contributor cannot delete site member with Collaborator role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteContributorIsNotAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, siteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site consumer cannot delete site member with Collaborator role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteConsumerIsNotAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, siteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete a site member with Collaborator role")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public void siteManagerIsAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, siteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(siteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", collaboratorForDelete.getUsername());
}
}
@@ -1,150 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.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;
public class RemoveSiteMemberFullTests extends RestTest
{
private SiteModel siteModel;
private UserModel adminUserModel;
private ListUserWithRoles usersWithRoles;
private SiteModel moderatedSiteModel;
private SiteModel privateSiteModel;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUserModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(adminUserModel).createModeratedRandomSite();
privateSiteModel = dataSite.usingUser(adminUserModel).createPrivateRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator,
UserRole.SiteConsumer, UserRole.SiteContributor);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete a site member with Contributor role and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
dataUser.addUserToSite(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor), siteModel, UserRole.SiteContributor);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete site member with Manager role and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void aminIsAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
dataUser.addUserToSite(usersWithRoles.getOneUserWithRole(UserRole.SiteManager), siteModel, UserRole.SiteManager);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete site member with Consumer role and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsAbleToDeleteSiteMemberWithConsumerRole() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
dataUser.addUserToSite(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer), siteModel, UserRole.SiteConsumer);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete a site member with Collaborator role and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
dataUser.addUserToSite(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator), siteModel, UserRole.SiteCollaborator);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete a site member of moderated site and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsAbleToDeleteModeratedSiteMember() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
newMember.setUserRole(UserRole.SiteManager);
dataUser.addUserToSite(newMember, moderatedSiteModel, UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).deleteSiteMember(newMember);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete a site member of private site and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsAbleToDeletePrivateSiteMember() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
newMember.setUserRole(UserRole.SiteManager);
dataUser.addUserToSite(newMember, privateSiteModel, UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).deleteSiteMember(newMember);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that regular user can not delete admin and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void regularUserIsNotAbleToDeleteAdmin() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingSite(siteModel)
.deleteSiteMember(adminUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError()
.containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getTitle()))
.containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can not delete a site member twice and gets status code 404 for the second attempt")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@Bug(id="ACE-5447")
public void adminIsNotAbleToRemoveSiteMemberTwice() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(RestErrorModel.ENTITY_NOT_FOUND);
dataUser.addUserToSite(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor), siteModel, UserRole.SiteContributor);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is not able to remove from site a user that created a member request that was not accepted yet")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@Bug(id="ACE-5447")
public void adminIsNotAbleToRemoveFromSiteANonExistingMember() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).deleteSiteMember(newMember);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(RestErrorModel.ENTITY_NOT_FOUND);
}
}
@@ -1,134 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.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;
/**
* @author iulia.cojocea
*/
public class RemoveSiteMemberSanityTests extends RestTest
{
private SiteModel siteModel;
private UserModel adminUserModel;
private ListUserWithRoles usersWithRoles;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUserModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Verify that site manager can delete site member and gets status code 204, 'No Content'")
public void siteManagerIsAbleToDeleteSiteMemberWithConsumerRole() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", testUserModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Verify that site collaborator cannot delete site member and gets status code 403, 'Forbidden'")
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithConsumerRole() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListContains("id", testUserModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Verify that site contributor cannot delete site member and gets status code 403, 'Forbidden'")
public void siteContributorIsNotAbleToDeleteSiteMemberWithConsumerRole() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListContains("id", testUserModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Verify that site consumer cannot delete site member and gets status code 403, 'Forbidden'")
public void siteConsumerIsNotAbleToDeleteSiteMemberWithConsumerRole() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingSite(siteModel)
.deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListContains("id", testUserModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Verify that admin user can delete site member and gets status code 204, 'No Content'")
public void adminUserIsAbleToDeleteSiteMember() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", testUserModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Verify that unauthenticated user is not able to delete site member")
@Bug(id = "MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToDeleteSiteMember() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
UserModel inexistentUser = new UserModel("inexistent user", "inexistent password");
restClient.authenticateUser(inexistentUser).withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,467 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.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;
/**
* @author iulia.cojocea
*/
public class RemoveSiteMemberTests extends RestTest
{
private SiteModel publicSiteModel, moderatedSiteModel, privateSiteModel;
private UserModel adminUserModel, siteCreator;
private ListUserWithRoles usersWithRoles;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUserModel = dataUser.getAdminUser();
siteCreator = dataUser.createRandomTestUser();
publicSiteModel = dataSite.usingUser(siteCreator).createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(siteCreator).createModeratedRandomSite();
privateSiteModel = dataSite.usingUser(siteCreator).createPrivateRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(publicSiteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Verify that site manager can delete site member and gets status code 204, 'No Content'")
public void siteManagerIsAbleToDeleteSiteMemberWithConsumerRole() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, publicSiteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", testUserModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.REGRESSION, description = "Verify that site collaborator cannot delete site member and gets status code 403, 'Forbidden'")
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithConsumerRole() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, publicSiteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMembers()
.assertThat().entriesListContains("id", testUserModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.REGRESSION, description = "Verify that site contributor cannot delete site member and gets status code 403, 'Forbidden'")
public void siteContributorIsNotAbleToDeleteSiteMemberWithConsumerRole() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, publicSiteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMembers()
.assertThat().entriesListContains("id", testUserModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.REGRESSION, description = "Verify that site consumer cannot delete site member and gets status code 403, 'Forbidden'")
public void siteConsumerIsNotAbleToDeleteSiteMemberWithConsumerRole() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, publicSiteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingSite(publicSiteModel)
.deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMembers()
.assertThat().entriesListContains("id", testUserModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API,
TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Verify that unauthenticated user is not able to delete site member")
// @Bug(id = "MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToDeleteSiteMember() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, publicSiteModel, UserRole.SiteConsumer);
UserModel inexistentUser = new UserModel("inexistent user", "inexistent password");
restClient.authenticateUser(inexistentUser).withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can NOT delete site member for an inexistent user and gets status code 404, 'Not Found'")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void managerIsNotAbleToDeleteInexistentSiteMember() throws Exception
{
UserModel inexistentUser = new UserModel("inexistentUser", "password");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(inexistentUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can NOT delete site member for a non site member and gets status code 400, 'Bad Request'")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void managerIsNotAbleToDeleteNotSiteMember() throws Exception
{
UserModel nonMember = dataUser.createRandomTestUser();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(nonMember);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "argument"));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can NOT delete site member for an invalid site and gets status code 404, 'Not Found'")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void managerIsNotAbleToDeleteSiteMemberOfInvalidSite() throws Exception
{
SiteModel invalidSite = new SiteModel("invalidSite");
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, publicSiteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(invalidSite).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, testUserModel.getUsername(), invalidSite.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete a site member with manager role")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteManagerIsAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel anothermanager = dataUser.createRandomTestUser();
dataUser.addUserToSite(anothermanager, publicSiteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(anothermanager);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", anothermanager.getUsername());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete site member using \"-me-\" in place of personId")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void managerIsAbleToDeleteSiteMemberUsingMe() throws Exception
{
UserModel manager = dataUser.createRandomTestUser();
dataUser.addUserToSite(manager, publicSiteModel, UserRole.SiteManager);
UserModel meUser = new UserModel("-me-", "password");
restClient.authenticateUser(manager);
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(meUser);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", manager.getUsername());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site collaborator cannot delete a site member with Manager role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel managerForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(managerForDelete, publicSiteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(managerForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site contributor cannot delete site member with Manager role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteContributorIsNotAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel managerForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(managerForDelete, publicSiteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(managerForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site consumer cannot delete site member with Manager role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteConsumerIsNotAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel managerForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(managerForDelete, publicSiteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(managerForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site collaborator cannot delete a site member with Contributor role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, publicSiteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site contributor cannot delete site member with Contributor role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteContributorIsNotAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, publicSiteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site consumer cannot delete site member with Contributor role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteConsumerIsNotAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, publicSiteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete a site member with Contributor role")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteManagerIsAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, publicSiteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", contributorForDelete.getUsername());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site collaborator cannot delete a site member with Collaborator role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, publicSiteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site contributor cannot delete site member with Collaborator role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteContributorIsNotAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, publicSiteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site consumer cannot delete site member with Collaborator role and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteConsumerIsNotAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, publicSiteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete a site member with Collaborator role")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
public void siteManagerIsAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, publicSiteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(publicSiteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(publicSiteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", collaboratorForDelete.getUsername());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete a site member with Contributor role and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
dataUser.addUserToSite(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor), publicSiteModel, UserRole.SiteContributor);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete site member with Manager role and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void aminIsAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
dataUser.addUserToSite(usersWithRoles.getOneUserWithRole(UserRole.SiteManager), publicSiteModel, UserRole.SiteManager);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete site member with Consumer role and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsAbleToDeleteSiteMemberWithConsumerRole() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
dataUser.addUserToSite(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer), publicSiteModel, UserRole.SiteConsumer);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete a site member with Collaborator role and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
dataUser.addUserToSite(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator), publicSiteModel, UserRole.SiteCollaborator);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete a site member of moderated site and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsAbleToDeleteModeratedSiteMember() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
newMember.setUserRole(UserRole.SiteManager);
dataUser.addUserToSite(newMember, moderatedSiteModel, UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).deleteSiteMember(newMember);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can delete a site member of private site and gets status code 204")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void adminIsAbleToDeletePrivateSiteMember() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
newMember.setUserRole(UserRole.SiteManager);
dataUser.addUserToSite(newMember, privateSiteModel, UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).deleteSiteMember(newMember);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that regular user can not delete admin and gets status code 422")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
public void regularUserIsNotAbleToDeleteASiteMember() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingSite(publicSiteModel)
.deleteSiteMember(siteCreator);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError()
.containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getTitle()))
.containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin can not delete a site member twice and gets status code 404 for the second attempt")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@Bug(id="ACE-5447")
public void adminIsNotAbleToRemoveSiteMemberTwice() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel)
.deleteSiteMember(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(RestErrorModel.ENTITY_NOT_FOUND);
dataUser.addUserToSite(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor), publicSiteModel, UserRole.SiteContributor);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is not able to remove from site a user that created a member request that was not accepted yet")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@Bug(id="ACE-5447")
public void adminIsNotAbleToRemoveFromSiteANonExistingMember() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSiteModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).deleteSiteMember(newMember);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(RestErrorModel.ENTITY_NOT_FOUND);
}
}
@@ -1,209 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.JsonBodyGenerator;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMemberModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* Created by Claudia Agache on 11/29/2016.
*/
public class UpdateSiteMemberCoreTests extends RestTest
{
private UserModel adminUser, regularUser, anotherManager;
private SiteModel publicSite;
private ListUserWithRoles publicSiteUsers;
private RestSiteMemberModel updatedMember;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
publicSite = dataSite.usingUser(adminUser).createPublicRandomSite();
publicSiteUsers = dataUser.addUsersWithRolesToSite(publicSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
anotherManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(anotherManager, publicSite, UserRole.SiteManager);
regularUser = dataUser.createRandomTestUser();
regularUser.setUserRole(UserRole.SiteConsumer);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 404 when nonexistent siteId is used")
public void updateSiteMemberOfNonexistentSite() throws Exception
{
SiteModel deletedSite = dataSite.usingUser(adminUser).createPublicRandomSite();
dataUser.addUserToSite(regularUser, deletedSite, UserRole.SiteConsumer);
dataSite.deleteSite(deletedSite);
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(deletedSite).updateSiteMember(regularUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, deletedSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 400 when personId is not member of the site")
public void updateNotASiteMember() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(publicSite).updateSiteMember(regularUser);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("User is not a member of the site");
}
// @Bug(id="REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 404 when personId does not exist")
public void updateNonexistentSiteMember() throws Exception
{
UserModel nonexistentUser = new UserModel("nonexistentUser", DataUser.PASSWORD);
nonexistentUser.setUserRole(UserRole.SiteContributor);
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(publicSite).updateSiteMember(nonexistentUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, nonexistentUser.getUsername()));
}
@Bug(id="REPO-1941")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if a manager is able to downgrade to contributor using -me- string in place of personId.")
public void updateSiteManagerToSiteContributorUsingMe() throws Exception
{
UserModel meManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(meManager, publicSite, UserRole.SiteManager);
UserModel meUser = new UserModel("-me-", "password");
meUser.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(meManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(meUser);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(meManager.getUsername())
.and().field("role").is(meUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 404 when empty siteId is used")
public void updateSiteMemberUsingEmptySiteId() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite("").updateSiteMember(regularUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, ""));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 405 when empty personId is used")
public void updateSiteMemberUsingEmptyPersonId() throws Exception
{
UserModel emptyUser = new UserModel("", DataUser.PASSWORD);
emptyUser.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(publicSite).updateSiteMember(emptyUser);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED)
.assertLastError().containsSummary(RestErrorModel.PUT_EMPTY_ARGUMENT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 400 when invalid role is used")
public void updateSiteMemberUsingInvalidRole() throws Exception
{
restClient.authenticateUser(anotherManager).withCoreAPI();
UserModel siteConsumer = publicSiteUsers.getOneUserWithRole(UserRole.SiteConsumer);
String json = JsonBodyGenerator.keyValueJson("role","invalidRole");
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, json, "sites/{siteId}/members/{personId}", publicSite.getId(), siteConsumer.getUsername());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.UNKNOWN_ROLE, "invalidRole"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update another site manager to site collaborator")
public void managerUpdateSiteManagerToSiteCollaborator() throws Exception
{
UserModel siteManager = publicSiteUsers.getOneUserWithRole(UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteCollaborator);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername())
.and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site contributor to site manager")
public void managerUpdateSiteContributorToSiteManager() throws Exception
{
UserModel siteContributor = publicSiteUsers.getOneUserWithRole(UserRole.SiteContributor);
siteContributor.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteContributor);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteContributor.getUsername())
.and().field("role").is(siteContributor.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site collaborator to site manager")
public void managerUpdateSiteCollaboratorToSiteManager() throws Exception
{
UserModel siteCollaborator = publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteCollaborator);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteCollaborator.getUsername())
.and().field("role").is(siteCollaborator.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site consumer to site manager")
public void managerUpdateSiteConsumerToSiteManager() throws Exception
{
UserModel siteConsumer = publicSiteUsers.getOneUserWithRole(UserRole.SiteConsumer);
siteConsumer.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteConsumer.getUsername())
.and().field("role").is(siteConsumer.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to downgrade himself to site consumer")
public void managerDowngradeHimselfToSiteConsumer() throws Exception
{
UserModel siteManager = publicSiteUsers.getOneUserWithRole(UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername())
.and().field("role").is(siteManager.getUserRole());
}
}
@@ -1,279 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMemberModel;
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.HttpMethod;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class UpdateSiteMemberFullTests extends RestTest
{
private UserModel adminUser, anotherManager;
private SiteModel publicSite, moderatedSite, privateSite;
private RestSiteMemberModel updatedMember;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
publicSite = dataSite.usingUser(adminUser).createPublicRandomSite();
moderatedSite = dataSite.usingUser(adminUser).createModeratedRandomSite();
privateSite = dataSite.usingUser(adminUser).createPrivateRandomSite();
anotherManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(anotherManager, publicSite, UserRole.SiteManager);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update another site manager to site contributor")
public void managerUpdateSiteManagerToSiteContributor() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, publicSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername()).and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update another site manager to site consumer")
public void managerUpdateSiteManagerToSiteConsumer() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, publicSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername()).and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site contributor to site collaborator")
public void managerUpdateSiteContributorToSiteCollaborator() throws Exception
{
UserModel siteContributor = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteContributor, publicSite, UserRole.SiteContributor);
siteContributor.setUserRole(UserRole.SiteCollaborator);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteContributor);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteContributor.getUsername()).and().field("role").is(siteContributor.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site contributor to site consumer")
public void managerUpdateSiteContributorToSiteConsumer() throws Exception
{
UserModel siteContributor = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteContributor, publicSite, UserRole.SiteContributor);
siteContributor.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteContributor);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteContributor.getUsername()).and().field("role").is(siteContributor.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site collaborator to site contributor")
public void managerUpdateSiteCollaboratorToSiteContributor() throws Exception
{
UserModel siteCollaborator = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteCollaborator, publicSite, UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteCollaborator);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteCollaborator.getUsername()).and().field("role").is(siteCollaborator.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site collaborator to site consumer")
public void managerUpdateSiteCollaboratorToSiteConsumer() throws Exception
{
UserModel siteCollaborator = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteCollaborator, publicSite, UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteCollaborator);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteCollaborator.getUsername()).and().field("role").is(siteCollaborator.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site consumer to site collaborator")
public void managerUpdateSiteConsumerToSiteCollaborator() throws Exception
{
UserModel siteConsumer = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteConsumer, publicSite, UserRole.SiteConsumer);
siteConsumer.setUserRole(UserRole.SiteCollaborator);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteConsumer.getUsername()).and().field("role").is(siteConsumer.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site consumer to site contributor")
public void managerUpdateSiteConsumerToSiteContributor() throws Exception
{
UserModel siteConsumer = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteConsumer, publicSite, UserRole.SiteConsumer);
siteConsumer.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteConsumer.getUsername()).and().field("role").is(siteConsumer.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update another site manager to site manager")
public void managerUpdateSiteManagerToSiteManager() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, publicSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername()).and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site collaborator to site collaborator")
public void managerUpdateSiteCollaboratorToSiteCollaborator() throws Exception
{
UserModel siteCollaborator = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteCollaborator, publicSite, UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteCollaborator);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteCollaborator);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteCollaborator.getUsername()).and().field("role").is(siteCollaborator.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site contributor to site contributor")
public void managerUpdateSiteContributorToSiteContributor() throws Exception
{
UserModel siteContributor = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteContributor, publicSite, UserRole.SiteContributor);
siteContributor.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteContributor);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteContributor.getUsername()).and().field("role").is(siteContributor.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site consumer to site consumer")
public void managerUpdateSiteConsumerToSiteConsumer() throws Exception
{
UserModel siteConsumer = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteConsumer, publicSite, UserRole.SiteConsumer);
siteConsumer.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteConsumer.getUsername()).and().field("role").is(siteConsumer.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager of a private site is able to downgrade his role")
public void privateSiteManagerDowngradesRole() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, privateSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteManager).withCoreAPI()
.usingSite(privateSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername()).and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager of a moderated site is able to downgrade his role")
public void moderatedSiteManagerDowngradesRole() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, moderatedSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteManager).withCoreAPI()
.usingSite(moderatedSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername()).and().field("role").is(siteManager.getUserRole());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify the response of updating a site member with empty body at request")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL })
public void verifyManagerCanNotUpdateSiteMemberWithEmptyBody() throws Exception
{
restClient.authenticateUser(anotherManager).withCoreAPI();
UserModel siteCollaborator = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteCollaborator, publicSite, UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteConsumer);
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, "", "sites/{siteId}/members/{personId}", publicSite.getId(), siteCollaborator.getUsername());
restClient.processModel(RestSiteMemberModel.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.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update a user that has created a site membership request, but it's not a member of the site yet")
public void verifyManagerCanNotUpdateUserWithSiteMembershipRequest() throws Exception
{
UserModel siteConsumer = dataUser.createRandomTestUser();
siteConsumer.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(siteConsumer).withCoreAPI().usingUser(siteConsumer).addSiteMembershipRequest(moderatedSite);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(moderatedSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
.containsSummary(RestErrorModel.NOT_A_MEMBER);
}
}
@@ -1,138 +0,0 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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;
public class UpdateSiteMemberSanityTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
private UserModel testUserModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that manager is able to update site member and gets status code OK (200)")
public void managerIsAbleToUpdateSiteMember() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
testUserModel.setUserRole(UserRole.SiteConsumer);
restClient.withCoreAPI().usingSite(siteModel).updateSiteMember(testUserModel)
.assertThat().field("id").is(testUserModel.getUsername())
.and().field("role").is(testUserModel.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that collaborator is not able to update site member and gets status code FORBIDDEN (403)")
public void collaboratorIsNotAbleToUpdateSiteMember() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
testUserModel.setUserRole(UserRole.SiteCollaborator);
restClient.withCoreAPI().usingSite(siteModel).updateSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.assertLastError()
.containsSummary(String.format("The current user does not have permissions to modify the membership details of the site %s.", siteModel.getTitle()));
}
@Bug(id = "REPO-1832")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that collaborator is not able to update site member and gets status code FORBIDDEN (403)")
public void collaboratorIsNotAbleToUpdateSiteMemberWithTheSameRole() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
testUserModel.setUserRole(UserRole.SiteConsumer);
restClient.withCoreAPI().usingSite(siteModel).updateSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.assertLastError()
.containsSummary(String.format("The current user does not have permissions to modify the membership details of the site %s.", siteModel.getTitle()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that contributor is not able to update site member and gets status code FORBIDDEN (403)")
public void contributorIsNotAbleToUpdateSiteMember() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
testUserModel.setUserRole(UserRole.SiteCollaborator);
restClient.withCoreAPI().usingSite(siteModel).updateSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.assertLastError()
.containsSummary(String.format("The current user does not have permissions to modify the membership details of the site %s.", siteModel.getTitle()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that consumer is not able to update site member and gets status code FORBIDDEN (403)")
public void consumerIsNotAbleToUpdateSiteMember() throws Exception
{
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
testUserModel.setUserRole(UserRole.SiteCollaborator);
restClient.withCoreAPI().usingSite(siteModel).updateSiteMember(testUserModel);
restClient.assertLastError()
.containsSummary(String.format("The current user does not have permissions to modify the membership details of the site %s.", siteModel.getTitle()));
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that admin is able to update site member and gets status code OK (200)")
public void adminIsAbleToUpdateSiteMember() throws Exception
{
restClient.authenticateUser(adminUserModel);
testUserModel.setUserRole(UserRole.SiteCollaborator);
restClient.withCoreAPI().usingSite(siteModel).updateSiteMember(testUserModel)
.assertThat().field("id").is(testUserModel.getUsername())
.and().field("role").is(testUserModel.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that unauthenticated user is not able to update site member")
@Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToUpdateSiteMmeber() throws Exception{
UserModel inexistentUser = new UserModel("inexistent user", "inexistent password");
restClient.authenticateUser(inexistentUser);
testUserModel.setUserRole(UserRole.SiteCollaborator);
restClient.withCoreAPI().usingSite(siteModel).updateSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,546 @@
package org.alfresco.rest.sites.members;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.JsonBodyGenerator;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMemberModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class UpdateSiteMemberTests extends RestTest
{
private UserModel adminUser, siteCreator, regularUser;
private SiteModel publicSite, moderatedSite, privateSite;
private ListUserWithRoles publicSiteUsers;
private UserModel userToBeUpdated;
private RestSiteMemberModel updatedMember;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
siteCreator = dataUser.createRandomTestUser();
publicSite = dataSite.usingUser(siteCreator).createPublicRandomSite();
moderatedSite = dataSite.usingUser(siteCreator).createModeratedRandomSite();
privateSite = dataSite.usingUser(siteCreator).createPrivateRandomSite();
publicSiteUsers = dataUser.addUsersWithRolesToSite(publicSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
regularUser = dataUser.createRandomTestUser();
regularUser.setUserRole(UserRole.SiteConsumer);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator is not able to update site member and gets status code FORBIDDEN (403)")
public void collaboratorIsNotAbleToUpdateSiteMember() throws Exception
{
userToBeUpdated = dataUser.createRandomTestUser();
dataUser.addUserToSite(userToBeUpdated, publicSite, UserRole.SiteConsumer);
userToBeUpdated.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(publicSite).updateSiteMember(userToBeUpdated);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.assertLastError()
.containsSummary(String.format("The current user does not have permissions to modify the membership details of the site %s.", publicSite.getTitle()));
}
@Bug(id = "REPO-1832")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that collaborator is not able to update site member and gets status code FORBIDDEN (403)")
public void collaboratorIsNotAbleToUpdateSiteMemberWithTheSameRole() throws Exception
{
userToBeUpdated = dataUser.createRandomTestUser();
dataUser.addUserToSite(userToBeUpdated, publicSite, UserRole.SiteConsumer);
userToBeUpdated.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(publicSite).updateSiteMember(userToBeUpdated);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.assertLastError()
.containsSummary(String.format("The current user does not have permissions to modify the membership details of the site %s.", publicSite.getTitle()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that contributor is not able to update site member and gets status code FORBIDDEN (403)")
public void contributorIsNotAbleToUpdateSiteMember() throws Exception
{
userToBeUpdated = dataUser.createRandomTestUser();
dataUser.addUserToSite(userToBeUpdated, publicSite, UserRole.SiteConsumer);
userToBeUpdated.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(publicSite).updateSiteMember(userToBeUpdated);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
restClient.assertLastError()
.containsSummary(String.format("The current user does not have permissions to modify the membership details of the site %s.", publicSite.getTitle()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that consumer is not able to update site member and gets status code FORBIDDEN (403)")
public void consumerIsNotAbleToUpdateSiteMember() throws Exception
{
userToBeUpdated = dataUser.createRandomTestUser();
dataUser.addUserToSite(userToBeUpdated, publicSite, UserRole.SiteConsumer);
userToBeUpdated.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(publicSite).updateSiteMember(userToBeUpdated);
restClient.assertLastError()
.containsSummary(String.format("The current user does not have permissions to modify the membership details of the site %s.", publicSite.getTitle()));
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that admin is able to update site member and gets status code OK (200)")
public void adminIsAbleToUpdateSiteMember() throws Exception
{
userToBeUpdated = dataUser.createRandomTestUser();
dataUser.addUserToSite(userToBeUpdated, publicSite, UserRole.SiteConsumer);
userToBeUpdated.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUser);
restClient.withCoreAPI().usingSite(publicSite).updateSiteMember(userToBeUpdated)
.assertThat().field("id").is(userToBeUpdated.getUsername())
.and().field("role").is(userToBeUpdated.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that unauthenticated user is not able to update site member")
// @Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthenticatedUserIsNotAuthorizedToUpdateSiteMmeber() throws Exception
{
userToBeUpdated = dataUser.createRandomTestUser();
dataUser.addUserToSite(userToBeUpdated, publicSite, UserRole.SiteConsumer);
userToBeUpdated.setUserRole(UserRole.SiteCollaborator);
UserModel inexistentUser = new UserModel("inexistent user", "inexistent password");
restClient.authenticateUser(inexistentUser);
restClient.withCoreAPI().usingSite(publicSite).updateSiteMember(userToBeUpdated);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 404 when nonexistent siteId is used")
public void updateSiteMemberOfNonexistentSite() throws Exception
{
SiteModel deletedSite = dataSite.usingUser(adminUser).createPublicRandomSite();
dataUser.addUserToSite(regularUser, deletedSite, UserRole.SiteConsumer);
dataSite.deleteSite(deletedSite);
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(deletedSite).updateSiteMember(regularUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, deletedSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 400 when personId is not member of the site")
public void updateNotASiteMember() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(publicSite).updateSiteMember(regularUser);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("User is not a member of the site");
}
// @Bug(id="REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 404 when personId does not exist")
public void updateNonexistentSiteMember() throws Exception
{
UserModel nonexistentUser = new UserModel("nonexistentUser", DataUser.PASSWORD);
nonexistentUser.setUserRole(UserRole.SiteContributor);
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(publicSite).updateSiteMember(nonexistentUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, nonexistentUser.getUsername()));
}
@Bug(id="REPO-1941")
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if a manager is able to downgrade to contributor using -me- string in place of personId.")
public void updateSiteManagerToSiteContributorUsingMe() throws Exception
{
UserModel meManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(meManager, publicSite, UserRole.SiteManager);
UserModel meUser = new UserModel("-me-", "password");
meUser.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(meManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(meUser);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(meManager.getUsername())
.and().field("role").is(meUser.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 404 when empty siteId is used")
public void updateSiteMemberUsingEmptySiteId() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite("").updateSiteMember(regularUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, ""));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 405 when empty personId is used")
public void updateSiteMemberUsingEmptyPersonId() throws Exception
{
UserModel emptyUser = new UserModel("", DataUser.PASSWORD);
emptyUser.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(publicSite).updateSiteMember(emptyUser);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED)
.assertLastError().containsSummary(RestErrorModel.PUT_EMPTY_ARGUMENT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 400 when invalid role is used")
public void updateSiteMemberUsingInvalidRole() throws Exception
{
restClient.authenticateUser(siteCreator).withCoreAPI();
UserModel siteConsumer = publicSiteUsers.getOneUserWithRole(UserRole.SiteConsumer);
String json = JsonBodyGenerator.keyValueJson("role","invalidRole");
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, json, "sites/{siteId}/members/{personId}", publicSite.getId(), siteConsumer.getUsername());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.UNKNOWN_ROLE, "invalidRole"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update another site manager to site collaborator")
public void managerUpdateSiteManagerToSiteCollaborator() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, publicSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteCollaborator);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername())
.and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site contributor to site manager")
public void managerUpdateSiteContributorToSiteManager() throws Exception
{
UserModel siteContributor = publicSiteUsers.getOneUserWithRole(UserRole.SiteContributor);
siteContributor.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteContributor);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteContributor.getUsername())
.and().field("role").is(siteContributor.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site collaborator to site manager")
public void managerUpdateSiteCollaboratorToSiteManager() throws Exception
{
UserModel siteCollaborator = publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteCollaborator);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteCollaborator.getUsername())
.and().field("role").is(siteCollaborator.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.SANITY,
description= "Verify if manager is able to update site consumer to site manager")
public void managerUpdateSiteConsumerToSiteManager() throws Exception
{
UserModel siteConsumer = publicSiteUsers.getOneUserWithRole(UserRole.SiteConsumer);
siteConsumer.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteConsumer.getUsername())
.and().field("role").is(siteConsumer.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.REGRESSION })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to downgrade himself to site consumer")
public void publicSiteManagerDowngradesRole() throws Exception
{
UserModel siteManager = publicSiteUsers.getOneUserWithRole(UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername())
.and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update another site manager to site contributor")
public void managerUpdateSiteManagerToSiteContributor() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, publicSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername()).and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update another site manager to site consumer")
public void managerUpdateSiteManagerToSiteConsumer() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, publicSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername()).and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site contributor to site collaborator")
public void managerUpdateSiteContributorToSiteCollaborator() throws Exception
{
UserModel siteContributor = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteContributor, publicSite, UserRole.SiteContributor);
siteContributor.setUserRole(UserRole.SiteCollaborator);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteContributor);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteContributor.getUsername()).and().field("role").is(siteContributor.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site contributor to site consumer")
public void managerUpdateSiteContributorToSiteConsumer() throws Exception
{
UserModel siteContributor = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteContributor, publicSite, UserRole.SiteContributor);
siteContributor.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteContributor);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteContributor.getUsername()).and().field("role").is(siteContributor.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site collaborator to site contributor")
public void managerUpdateSiteCollaboratorToSiteContributor() throws Exception
{
UserModel siteCollaborator = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteCollaborator, publicSite, UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteCollaborator);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteCollaborator.getUsername()).and().field("role").is(siteCollaborator.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site collaborator to site consumer")
public void managerUpdateSiteCollaboratorToSiteConsumer() throws Exception
{
UserModel siteCollaborator = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteCollaborator, publicSite, UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteCollaborator);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteCollaborator.getUsername()).and().field("role").is(siteCollaborator.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site consumer to site collaborator")
public void managerUpdateSiteConsumerToSiteCollaborator() throws Exception
{
UserModel siteConsumer = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteConsumer, publicSite, UserRole.SiteConsumer);
siteConsumer.setUserRole(UserRole.SiteCollaborator);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteConsumer.getUsername()).and().field("role").is(siteConsumer.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site consumer to site contributor")
public void managerUpdateSiteConsumerToSiteContributor() throws Exception
{
UserModel siteConsumer = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteConsumer, publicSite, UserRole.SiteConsumer);
siteConsumer.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteConsumer.getUsername()).and().field("role").is(siteConsumer.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update another site manager to site manager")
public void managerUpdateSiteManagerToSiteManager() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, publicSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername()).and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site collaborator to site collaborator")
public void managerUpdateSiteCollaboratorToSiteCollaborator() throws Exception
{
UserModel siteCollaborator = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteCollaborator, publicSite, UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteCollaborator);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteCollaborator);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteCollaborator.getUsername()).and().field("role").is(siteCollaborator.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site contributor to site contributor")
public void managerUpdateSiteContributorToSiteContributor() throws Exception
{
UserModel siteContributor = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteContributor, publicSite, UserRole.SiteContributor);
siteContributor.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteContributor);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteContributor.getUsername()).and().field("role").is(siteContributor.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site consumer to site consumer")
public void managerUpdateSiteConsumerToSiteConsumer() throws Exception
{
UserModel siteConsumer = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteConsumer, publicSite, UserRole.SiteConsumer);
siteConsumer.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteConsumer.getUsername()).and().field("role").is(siteConsumer.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager of a private site is able to downgrade his role")
public void privateSiteManagerDowngradesRole() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, privateSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteManager).withCoreAPI()
.usingSite(privateSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername()).and().field("role").is(siteManager.getUserRole());
}
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager of a moderated site is able to downgrade his role")
public void moderatedSiteManagerDowngradesRole() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteManager, moderatedSite, UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteManager).withCoreAPI()
.usingSite(moderatedSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername()).and().field("role").is(siteManager.getUserRole());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
description = "Verify the response of updating a site member with empty body at request")
@Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL })
public void managerCanNotUpdateSiteMemberWithEmptyBody() throws Exception
{
restClient.authenticateUser(siteCreator).withCoreAPI();
UserModel siteCollaborator = dataUser.createRandomTestUser();
dataUser.addUserToSite(siteCollaborator, publicSite, UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteConsumer);
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, "", "sites/{siteId}/members/{personId}", publicSite.getId(), siteCollaborator.getUsername());
restClient.processModel(RestSiteMemberModel.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.SITES, TestGroup.FULL })
@TestRail(section={TestGroup.REST_API, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update a user that has created a site membership request, but it's not a member of the site yet")
public void managerCanNotUpdateUserWithSiteMembershipRequest() throws Exception
{
UserModel siteConsumer = dataUser.createRandomTestUser();
siteConsumer.setUserRole(UserRole.SiteConsumer);
restClient.authenticateUser(siteConsumer).withCoreAPI().usingUser(siteConsumer).addSiteMembershipRequest(moderatedSite);
updatedMember = restClient.authenticateUser(siteCreator).withCoreAPI()
.usingSite(moderatedSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError()
.containsSummary(RestErrorModel.NOT_A_MEMBER);
}
}
@@ -1,90 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModel;
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.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AddSiteMembershipRequestCoreTests extends RestTest
{
private UserModel adminUser;
private SiteModel moderatedSite;
private RestSiteMembershipRequestModel requestModel;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
moderatedSite = dataSite.usingUser(adminUser).createModeratedRandomSite();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 400 for a user that has already been invited")
public void addSiteMembershipRequestStatusCodeIs400ReceivedForAUserThatIsAlreadyInvited() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
dataUser.addUserToSite(newMember, moderatedSite, UserRole.SiteContributor);
restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.ALREADY_Site_MEMBER, newMember.getUsername(), moderatedSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 404 for a user that does not exist")
public void addSiteMembershipRequestStatusCodeIs404ReceivedForAUserThatDoesNotExist() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingUser(new UserModel("invalidUser", "password")).addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidUser"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 404 for a site that does not exist")
public void addSiteMembershipRequestStatusCodeIs404ReceivedForASiteThatDoesNotExist() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest(new SiteModel("invalidSiteID"));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), "invalidSiteID"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 400 for empty request body")
public void addSiteMembershipRequestStatusCodeIs400ForEmptyRequestBody() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest("");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.NO_CONTENT, "No content to map to Object due to end of input"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 201 for request with empty message")
public void addSiteMembershipRequestStatusCodeIs201ForRequestWithEmptyMessage() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
requestModel = restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest("", moderatedSite, "New request");
restClient.assertStatusCodeIs(HttpStatus.CREATED);
requestModel.assertThat().field("id").is(moderatedSite.getId()).assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 201 for request with empty title")
public void addSiteMembershipRequestStatusCodeIs201ForRequestWithEmptyTitle() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
requestModel = restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest("Please accept me", moderatedSite, "");
restClient.assertStatusCodeIs(HttpStatus.CREATED);
requestModel.assertThat().field("id").is(moderatedSite.getId()).assertThat().field("site").isNotEmpty();
}
}
@@ -1,95 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
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.data.DataUser;
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.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AddSiteMembershipRequestSanityTests extends RestTest
{
private SiteModel publicSite, anotherPublicSite;
private DataUser.ListUserWithRoles usersWithRoles;
private UserModel adminUser, siteManager;
private RestSiteMembershipRequestModel requestModel;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
publicSite = dataSite.usingUser(adminUser).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(publicSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
siteManager = dataUser.createRandomTestUser();
anotherPublicSite = dataSite.usingUser(siteManager).createPublicRandomSite();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site manager is able to create new site membership request for himself and status code is 201")
public void managerCreatesNewSiteMembershipRequestForSelf() throws Exception
{
requestModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherPublicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
requestModel.assertThat().field("id").is(anotherPublicSite.getId())
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site contributor is able to create new site membership request for himself and status code is 201")
public void contributorCreatesNewSiteMembershipRequestForSelf() throws Exception
{
requestModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherPublicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
requestModel.assertThat().field("id").is(anotherPublicSite.getId())
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site collaborator is able to create new site membership request for himself and status code is 201")
public void collaboratorCreatesNewSiteMembershipRequestForSelf() throws Exception
{
requestModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherPublicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
requestModel.assertThat().field("id").is(anotherPublicSite.getId())
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site consumer is able to create new site membership request for himself and status code is 201")
public void consumerCreatesNewSiteMembershipRequestForSelf() throws Exception
{
requestModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherPublicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
requestModel.assertThat().field("id").is(anotherPublicSite.getId())
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify admin is able to create new site membership request for himself and status code is 201")
public void adminCreatesNewSiteMembershipRequestForSelf() throws Exception
{
requestModel = restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherPublicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
requestModel.assertThat().field("id").is(anotherPublicSite.getId())
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify unauthenticated user is not able to create new site membership request")
public void unauthenticatedUserIsNotAbleToCreateSiteMembershipRequest() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -1,6 +1,6 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.dataprep.SiteService.Visibility;
import org.alfresco.dataprep.SiteService;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
@@ -20,14 +20,11 @@ import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* Created by Claudia Agache on 1/9/2017.
*/
public class AddSiteMembershipRequestFullTests extends RestTest
public class AddSiteMembershipRequestTests extends RestTest
{
private SiteModel publicSite, privateSite, moderatedSite;
private SiteModel publicSite, anotherPublicSite, moderatedSite, privateSite;
private DataUser.ListUserWithRoles usersWithRoles;
private UserModel adminUser, newMember, regularUser;
private UserModel adminUser, siteManager, regularUser, newMember;
private RestSiteMembershipRequestModel siteMembershipRequest;
private RestSiteMembershipRequestModelsCollection siteMembershipRequests;
@@ -36,16 +33,146 @@ public class AddSiteMembershipRequestFullTests extends RestTest
{
adminUser = dataUser.getAdminUser();
publicSite = dataSite.usingUser(adminUser).createPublicRandomSite();
privateSite = dataSite.usingUser(adminUser).createPrivateRandomSite();
moderatedSite = dataSite.usingUser(adminUser).createModeratedRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(publicSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
siteManager = dataUser.createRandomTestUser();
anotherPublicSite = dataSite.usingUser(siteManager).createPublicRandomSite();
moderatedSite = dataSite.usingUser(adminUser).createModeratedRandomSite();
privateSite = dataSite.usingUser(adminUser).createPrivateRandomSite();
newMember = dataUser.createRandomTestUser();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY,
description = "Verify site manager is able to create new site membership request for himself and status code is 201")
public void managerCreatesNewSiteMembershipRequestForSelf() throws Exception
{
siteMembershipRequest = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherPublicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
siteMembershipRequest.assertThat().field("id").is(anotherPublicSite.getId())
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site contributor is able to create new site membership request for himself and status code is 201")
public void contributorCreatesNewSiteMembershipRequestForSelf() throws Exception
{
siteMembershipRequest = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherPublicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
siteMembershipRequest.assertThat().field("id").is(anotherPublicSite.getId())
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site collaborator is able to create new site membership request for himself and status code is 201")
public void collaboratorCreatesNewSiteMembershipRequestForSelf() throws Exception
{
siteMembershipRequest = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherPublicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
siteMembershipRequest.assertThat().field("id").is(anotherPublicSite.getId())
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site consumer is able to create new site membership request for himself and status code is 201")
public void consumerCreatesNewSiteMembershipRequestForSelf() throws Exception
{
siteMembershipRequest = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherPublicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
siteMembershipRequest.assertThat().field("id").is(anotherPublicSite.getId())
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to create new site membership request for himself and status code is 201")
public void adminCreatesNewSiteMembershipRequestForSelf() throws Exception
{
siteMembershipRequest = restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(anotherPublicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
siteMembershipRequest.assertThat().field("id").is(anotherPublicSite.getId())
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY,
description = "Verify unauthenticated user is not able to create new site membership request")
public void unauthenticatedUserIsNotAbleToCreateSiteMembershipRequest() throws Exception
{
restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 400 for a user that has already been invited")
public void addSiteMembershipRequestStatusCodeIs400ReceivedForAUserThatIsAlreadyInvited() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
dataUser.addUserToSite(newMember, moderatedSite, UserRole.SiteContributor);
restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.ALREADY_Site_MEMBER, newMember.getUsername(), moderatedSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 404 for a user that does not exist")
public void addSiteMembershipRequestStatusCodeIs404ReceivedForAUserThatDoesNotExist() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingUser(new UserModel("invalidUser", "password")).addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidUser"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 404 for a site that does not exist")
public void addSiteMembershipRequestStatusCodeIs404ReceivedForASiteThatDoesNotExist() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest(new SiteModel("invalidSiteID"));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), "invalidSiteID"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 400 for empty request body")
public void addSiteMembershipRequestStatusCodeIs400ForEmptyRequestBody() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest("");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.NO_CONTENT, "No content to map to Object due to end of input"));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 201 for request with empty message")
public void addSiteMembershipRequestStatusCodeIs201ForRequestWithEmptyMessage() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
siteMembershipRequest = restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest("", moderatedSite, "New request");
restClient.assertStatusCodeIs(HttpStatus.CREATED);
siteMembershipRequest.assertThat().field("id").is(moderatedSite.getId()).assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 201 for request with empty title")
public void addSiteMembershipRequestStatusCodeIs201ForRequestWithEmptyTitle() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
siteMembershipRequest = restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest("Please accept me", moderatedSite, "");
restClient.assertStatusCodeIs(HttpStatus.CREATED);
siteMembershipRequest.assertThat().field("id").is(moderatedSite.getId()).assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager is not able to create new site membership request for other user")
public void managerIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws JsonToModelConversionException, Exception
public void managerIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingUser(newMember)
.addSiteMembershipRequest(publicSite);
@@ -57,9 +184,9 @@ public class AddSiteMembershipRequestFullTests extends RestTest
.containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site collaborator is not able to create new site membership request for other user")
public void collaboratorIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws JsonToModelConversionException, Exception
public void collaboratorIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingUser(newMember)
.addSiteMembershipRequest(publicSite);
@@ -67,9 +194,9 @@ public class AddSiteMembershipRequestFullTests extends RestTest
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site contributor is not able to create new site membership request for other user")
public void contributorIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws JsonToModelConversionException, Exception
public void contributorIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingUser(newMember)
.addSiteMembershipRequest(publicSite);
@@ -77,9 +204,9 @@ public class AddSiteMembershipRequestFullTests extends RestTest
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site consumer is not able to create new site membership request for other user")
public void consumerIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws JsonToModelConversionException, Exception
public void consumerIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingUser(newMember)
.addSiteMembershipRequest(publicSite);
@@ -87,9 +214,9 @@ public class AddSiteMembershipRequestFullTests extends RestTest
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify admin user is not able to create new site membership request for other user")
public void adminIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws JsonToModelConversionException, Exception
public void adminIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI().usingUser(newMember).addSiteMembershipRequest(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
@@ -105,7 +232,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
}
@Bug(id="ACE-2413")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify addSiteMembershipRequest Rest API status code is 400 for an invalid user id")
public void addSiteMembershipRequestReturns400ForEmptyUserId() throws Exception
{
@@ -114,7 +241,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to create new public site membership request for himself. Check that user joins immediately as consumer.")
public void userIsAbleToRequestMembershipOfPublicSite() throws Exception
@@ -127,13 +254,13 @@ public class AddSiteMembershipRequestFullTests extends RestTest
RestSiteEntry siteEntry = restClient.withCoreAPI().usingAuthUser().getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
siteEntry.assertThat().field("role").is(UserRole.SiteConsumer)
.and().field("id").is(publicSite.getId());
.and().field("id").is(publicSite.getId());
siteMembershipRequests = restClient.withCoreAPI().usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to create new moderated site membership request for himself. Check that the request is added to the site membership request list.")
public void userIsAbleToRequestMembershipOfModeratedSite() throws Exception
@@ -158,7 +285,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify regular user is not able to request membership of a private site.")
public void userIsNotAbleToRequestMembershipOfPrivateSite() throws Exception
@@ -172,9 +299,9 @@ public class AddSiteMembershipRequestFullTests extends RestTest
siteMembershipRequests.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify regular user is not able to create new site membership request for other user")
public void regularUserIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws JsonToModelConversionException, Exception
public void regularUserIsNotAbleToCreateSiteMembershipRequestForOtherUser() throws Exception
{
regularUser = dataUser.createRandomTestUser();
restClient.authenticateUser(regularUser).withCoreAPI().usingUser(newMember)
@@ -191,7 +318,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify create public site membership request returns status code 400 when the request is made twice")
public void userRequestsTwiceMembershipOfPublicSite() throws Exception
@@ -206,7 +333,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
restClient.assertLastError().containsSummary(String.format(RestErrorModel.ALREADY_Site_MEMBER, regularUser.getUsername(), publicSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify create moderated site membership request returns status code 400 when the request is made twice")
public void userRequestsTwiceMembershipOfModeratedSite() throws Exception
@@ -226,7 +353,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
.assertThat().entriesListCountIs(1);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify create private site membership request returns status code 404 when request is made with the user who created the site")
public void siteCreatorRequestsMembershipOfHisPrivateSite() throws Exception
@@ -236,7 +363,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUser.getUsername(), privateSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify create moderated site membership request returns status code 400 when request is made with the user who created the site")
public void siteCreatorRequestsMembershipOfHisModeratedSite() throws Exception
@@ -246,7 +373,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
.assertLastError().containsSummary(String.format(RestErrorModel.ALREADY_Site_MEMBER, adminUser.getUsername(), moderatedSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to create new moderated site membership request for himself. Check that the request is added to the site membership request list.")
public void adminIsAbleToRequestMembershipOfModeratedSite() throws Exception
@@ -262,7 +389,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
siteMembershipRequests.assertThat().entriesListContains("id", anotherModeratedSite.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL, TestGroup.NETWORKS })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION, TestGroup.NETWORKS })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify create site membership request returns status code 404 when personId is not member of the domain.")
public void addSiteMembershipRequestWhenPersonIdIsNotInTheDomain() throws Exception
@@ -275,7 +402,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminTenantUser.getUsername().toLowerCase(), publicSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL, TestGroup.NETWORKS })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION, TestGroup.NETWORKS })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify create site membership request returns status code 200 with tenant.")
public void addSiteMembershipRequestWithTenant() throws Exception
@@ -292,7 +419,7 @@ public class AddSiteMembershipRequestFullTests extends RestTest
.assertThat().field("site").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site membership request is automatically rejected when a site is switched from moderated to private")
public void siteMembershipRequestIsRejectedWhenSiteIsSwitchedFromModeratedToPrivate() throws Exception
@@ -304,10 +431,10 @@ public class AddSiteMembershipRequestFullTests extends RestTest
siteMembershipRequest.assertThat().field("id").is(moderatedThenPrivateSite.getId())
.assertThat().field("site").isNotEmpty();
dataSite.usingUser(adminUser).updateSiteVisibility(moderatedThenPrivateSite, Visibility.PRIVATE);
dataSite.usingUser(adminUser).updateSiteVisibility(moderatedThenPrivateSite, SiteService.Visibility.PRIVATE);
siteMembershipRequests = restClient.withCoreAPI().usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsEmpty();
}
}
}
@@ -1,148 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.dataprep.WorkflowService;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
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.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class DeleteSiteMembershipRequestCoreTests extends RestTest
{
SiteModel moderatedSite;
UserModel adminUserModel;
UserModel siteMember;
UserModel secondSiteMember;
SiteModel secondModeratedSite;
@Autowired
WorkflowService workflow;
@BeforeMethod(alwaysRun = true)
public void dataPreparation() throws Exception
{
moderatedSite = dataSite.usingUser(adminUserModel).createModeratedRandomSite();
adminUserModel = dataUser.getAdminUser();
siteMember = dataUser.createRandomTestUser();
secondSiteMember = dataUser.createRandomTestUser();
secondModeratedSite = dataSite.usingUser(siteMember).createModeratedRandomSite();
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able to remove his own site memebership request using '-me-' in place of personId and response is successful (204)")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void userCanDeleteHisOwnSiteMembershipRequestUsingMeAsPersonId() throws JsonToModelConversionException, DataPreparationException, Exception
{
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.withCoreAPI().usingMe().deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to remove site memebership request if doesn't have access to personI and response is 403")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void userIsNotAbleToDeleteSiteMembershipRequestWithNoAccessToPersonId() throws JsonToModelConversionException, DataPreparationException, Exception
{
restClient.authenticateUser(secondSiteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(siteMember).withCoreAPI().usingUser(secondSiteMember).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, secondSiteMember.getUsername(), moderatedSite.getId()));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to remove a site memebership request of an inexistent user and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void userIsNotAbleToDeleteSiteMembershipRequestOfAnInexistentUser() throws JsonToModelConversionException, DataPreparationException, Exception
{
UserModel inexistentUser = new UserModel("inexistenUser", "password");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(inexistentUser).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to remove a site memebership request to an inexistent site and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void userIsNotAbleToDeleteSiteMembershipRequestToAnInexistentSite() throws JsonToModelConversionException, DataPreparationException, Exception
{
SiteModel inexistentSite = new SiteModel("inexistentSite");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(inexistentSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), inexistentSite.getId()));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to remove a site memebership request to an empty site id and response is 405")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void userIsNotAbleToDeleteSiteMembershipRequestWithEmptySiteId() throws JsonToModelConversionException, DataPreparationException, Exception
{
SiteModel inexistentSite = new SiteModel("");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(inexistentSite);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(RestErrorModel.DELETE_EMPTY_ARGUMENT);
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to remove a site memebership request of another regular user from moderated site and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void regularUserIsNotAbleToDeleteSiteMembershipRequestOfAnotherRegularUserToAModeratedSite() throws JsonToModelConversionException, DataPreparationException, Exception
{
siteMember.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSite).addPerson(siteMember);
restClient.authenticateUser(secondSiteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(siteMember).withCoreAPI().usingUser(secondSiteMember).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, secondSiteMember.getUsername(), moderatedSite.getId()));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to remove a site memebership request of admin to a moderated site and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void regularUserIsNotAbleToDeleteSiteMembershipRequestOfAdminToAModeratedSite() throws JsonToModelConversionException, DataPreparationException, Exception
{
UserModel collaboratorUser = dataUser.createRandomTestUser();
collaboratorUser.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(siteMember).withCoreAPI().usingSite(secondModeratedSite).addPerson(collaboratorUser);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteMembershipRequest(secondModeratedSite);
restClient.authenticateUser(collaboratorUser).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), secondModeratedSite.getId()));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify manager is able to remove a site memebership request of admin to a moderated site and response is 204")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void managerUserIsAbleToDeleteSiteMembershipRequestOfAdminToAModeratedSite() throws JsonToModelConversionException, DataPreparationException, Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteMembershipRequest(secondModeratedSite);
restClient.authenticateUser(siteMember).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify manager is not able to remove a site memebership request if it was already approved and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void managerUserIsNotAbleToDeleteASiteMembershipRequestIfItWasAlreadyApproved() throws JsonToModelConversionException, DataPreparationException, Exception
{
secondSiteMember.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(secondSiteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(secondModeratedSite);
RestTaskModel taskModel = restClient.authenticateUser(secondSiteMember).withWorkflowAPI().getTasks().getTaskModelByDescription(secondModeratedSite);
workflow.approveSiteMembershipRequest(siteMember.getUsername(), siteMember.getPassword(), taskModel.getId(), true, "Approve");
restClient.authenticateUser(siteMember).withCoreAPI().usingUser(secondSiteMember).deleteSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, secondSiteMember.getUsername(), secondModeratedSite.getId()));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify manager is not able to remove an inexitent site memebership request and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void managerUserIsNotAbleToDeleteAnInexistentSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception
{
restClient.authenticateUser(siteMember).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), secondModeratedSite.getId()));
}
}
@@ -1,213 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.dataprep.WorkflowService;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection;
import org.alfresco.rest.model.RestTaskModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class DeleteSiteMembershipRequestFullTests extends RestTest
{
SiteModel moderatedSite, publicSite, secondModeratedSite;
UserModel adminUserModel, siteMember, secondSiteMember;
RestSiteMembershipRequestModelsCollection siteMembershipRequests;
@Autowired
WorkflowService workflow;
private ListUserWithRoles usersWithRoles;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
moderatedSite = dataSite.usingUser(adminUserModel).createModeratedRandomSite();
adminUserModel = dataUser.getAdminUser();
siteMember = dataUser.createRandomTestUser();
secondSiteMember = dataUser.createRandomTestUser();
secondModeratedSite = dataSite.usingUser(siteMember).createModeratedRandomSite();
publicSite = dataSite.usingUser(siteMember).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(moderatedSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify COLLABORATOR is able to remove/cancel a site memebership request of a user to a moderated site and response is 204")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void collaboratorUserIsAbleToCancelSiteMembershipRequestOfAnotherUserToAModeratedSite() throws JsonToModelConversionException,
DataPreparationException, Exception
{
UserModel user = dataUser.createRandomTestUser();
UserModel userCollaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
moderatedSite = dataSite.usingUser(userCollaborator).createModeratedRandomSite();
restClient.authenticateUser(user).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(userCollaborator).withCoreAPI().usingUser(user).getSiteMembershipRequest(moderatedSite).assertThat().field("id")
.is(moderatedSite.getId());
restClient.authenticateUser(userCollaborator).withCoreAPI().usingUser(user).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingUser(user).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, user.getUsername(), moderatedSite.getTitle()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify CONTRIBUTOR is able to remove/cancel a site memebership request of a user to a moderated site and response is 204")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void contributorUserIsAbleToCancelSiteMembershipRequestOfAnotherUserToAModeratedSite() throws JsonToModelConversionException,
DataPreparationException, Exception
{
UserModel user = dataUser.createRandomTestUser();
UserModel userContributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor);
moderatedSite = dataSite.usingUser(userContributor).createModeratedRandomSite();
restClient.authenticateUser(user).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(userContributor).withCoreAPI().usingUser(user).getSiteMembershipRequest(moderatedSite).assertThat().field("id")
.is(moderatedSite.getId());
restClient.authenticateUser(userContributor).withCoreAPI().usingUser(user).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingUser(user).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, user.getUsername(), moderatedSite.getTitle()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify CONSUMER is able to remove/cancel a site memebership request of a user to a moderated site and response is 204")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void consumerUserIsAbleToCancelSiteMembershipRequestOfAnotherUserToAModeratedSite() throws JsonToModelConversionException, DataPreparationException,
Exception
{
UserModel user = dataUser.createRandomTestUser();
UserModel userConsumer = usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer);
moderatedSite = dataSite.usingUser(userConsumer).createModeratedRandomSite();
restClient.authenticateUser(user).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(userConsumer).withCoreAPI().usingUser(user).getSiteMembershipRequest(moderatedSite).assertThat().field("id")
.is(moderatedSite.getId());
restClient.authenticateUser(userConsumer).withCoreAPI().usingUser(user).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingUser(user).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, user.getUsername(), moderatedSite.getTitle()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a site memebership request of admin to a public site and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void regularUserIsNotAbleToDeleteSiteMembershipRequestOfAdminToAPublicSite() throws JsonToModelConversionException, DataPreparationException,
Exception
{
UserModel userCollaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
restClient.authenticateUser(siteMember).withCoreAPI().usingSite(publicSite).addPerson(userCollaborator);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.authenticateUser(userCollaborator).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), publicSite.getId()))
.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 = "Delete a rejected site membership request.")
public void deleteARejectedSiteMembershipRequest() throws Exception
{
UserModel userWithRejectedRequests = dataUser.createRandomTestUser();
restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingAuthUser().addSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
RestTaskModel taskModel = restClient.authenticateUser(userWithRejectedRequests).withWorkflowAPI().getTasks()
.getTaskModelByDescription(secondModeratedSite);
workflow.approveSiteMembershipRequest(siteMember.getUsername(), siteMember.getPassword(), taskModel.getId(), false, "Rejected");
siteMembershipRequests = restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListDoesNotContain("id", secondModeratedSite.getId());
restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), secondModeratedSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Bug(id="ACE-2413")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a site memebership request- empty person id and response is 400")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void userIsNotAbleToDeleteSiteMembershipRequestEmptyPersonID() throws JsonToModelConversionException, DataPreparationException, Exception
{
UserModel emptyPersonId = new UserModel("", "password");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(emptyPersonId).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError()
.containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY)
.containsSummary(RestErrorModel.ENTITY_NOT_FOUND)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify COLLABORATOR removes/cancel twice same site memebership request and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void userCancelsSiteMembershipRequestTwiceModeratedSite() throws JsonToModelConversionException,
DataPreparationException, Exception
{
UserModel user = dataUser.createRandomTestUser();
UserModel userCollaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
moderatedSite = dataSite.usingUser(userCollaborator).createModeratedRandomSite();
restClient.authenticateUser(user).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(userCollaborator).withCoreAPI().usingUser(user).getSiteMembershipRequest(moderatedSite).assertThat().field("id")
.is(moderatedSite.getId());
restClient.authenticateUser(userCollaborator).withCoreAPI().usingUser(user).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.authenticateUser(userCollaborator).withCoreAPI().usingUser(user).deleteSiteMembershipRequest(moderatedSite);
restClient.withCoreAPI().usingUser(user).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, user.getUsername(), moderatedSite.getTitle()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
}
@@ -1,137 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.dataprep.SiteService.Visibility;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.data.RandomData;
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.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;
/**
* @author iulia.cojocea
*/
public class DeleteSiteMembershipRequestSanityTests extends RestTest
{
UserModel userModel;
UserModel siteMember;
SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
String siteId = RandomData.getRandomName("site");
siteModel = dataSite.usingUser(userModel).createSite(new SiteModel(Visibility.MODERATED, siteId, siteId, siteId, siteId));
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify one user is able to delete his one site memebership request")
public void userCanDeleteHisOwnSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingUser(siteMember)
.deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site manager is able to delete site membership request")
public void siteManagerCanDeleteSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingUser(siteMember).addSiteMembershipRequest(siteModel);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingUser(siteMember)
.deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify admin user is able to delete site memebership request")
public void adminUserCanDeleteSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingUser(siteMember).deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "REPO-1946")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify collaborator user is not able to delete site memebership request")
public void collaboratorCannotDeleteSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingUser(siteMember)
.deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "REPO-1946")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify contributor user is not able to delete site memebership request")
public void contributorCannotDeleteSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingUser(siteMember)
.deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "REPO-1946")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify consumer user is not able to delete site memebership request")
public void consumerCannotDeleteSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingUser(siteMember)
.deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "REPO-1946")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify random user is not able to delete site memebership request")
public void randomUserCanDeleteSiteMembershipRequest() throws JsonToModelConversionException, DataPreparationException, Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(dataUser.createRandomTestUser()).withCoreAPI().usingUser(siteMember).deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Failed authentication get site member call returns status code 401")
@Bug(id = "MNT-16904")
public void unauthenticatedUserIsNotAuthorizedToDeleteSiteMmebershipRequest() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(dataUser.createRandomTestUser()).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
UserModel inexistentUser = new UserModel("inexistent user", "inexistent password");
restClient.authenticateUser(inexistentUser).withCoreAPI().usingAuthUser().deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,319 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.dataprep.SiteService.Visibility;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection;
import org.alfresco.rest.model.RestTaskModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.data.RandomData;
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.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;
/**
* @author iulia.cojocea
*/
public class DeleteSiteMembershipRequestTests extends RestTest
{
UserModel siteCreator, adminUserModel, secondSiteCreator, siteMember;
SiteModel moderatedSite, secondModeratedSite, publicSite;
private ListUserWithRoles usersWithRoles;
RestSiteMembershipRequestModelsCollection siteMembershipRequests;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
siteCreator = dataUser.createRandomTestUser();
secondSiteCreator = dataUser.createRandomTestUser();
String siteId = RandomData.getRandomName("site");
moderatedSite = dataSite.usingUser(siteCreator).createSite(new SiteModel(Visibility.MODERATED, siteId, siteId, siteId, siteId));
usersWithRoles = dataUser.addUsersWithRolesToSite(moderatedSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
dataUser.addUserToSite(adminUserModel, moderatedSite, UserRole.SiteManager);
secondModeratedSite = dataSite.usingUser(secondSiteCreator).createModeratedRandomSite();
publicSite = dataSite.usingUser(siteCreator).createPublicRandomSite();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify one user is able to delete his one site memebership request")
public void userCanDeleteHisOwnSiteMembershipRequest() throws Exception
{
restClient.authenticateUser(secondSiteCreator).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingUser(secondSiteCreator).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site manager is able to delete site membership request")
public void managerCanDeleteSiteMembershipRequest() throws Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingUser(siteMember)
.deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingUser(siteMember).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, siteMember.getUsername(), moderatedSite.getTitle()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify admin user is able to delete site memebership request")
public void adminUserCanDeleteSiteMembershipRequest() throws Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(siteMember).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@Bug(id = "REPO-1946")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify collaborator user is not able to delete site memebership request")
public void collaboratorCannotDeleteSiteMembershipRequest() throws Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingUser(siteMember)
.deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@Bug(id = "REPO-1946")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify contributor user is not able to delete site memebership request")
public void contributorCannotDeleteSiteMembershipRequest() throws Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingUser(siteMember)
.deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "REPO-1946")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify consumer user is not able to delete site memebership request")
public void consumerCannotDeleteSiteMembershipRequest() throws Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingUser(siteMember)
.deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@Bug(id = "REPO-1946")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify random user is not able to delete site memebership request")
public void randomUserCanNotDeleteSiteMembershipRequest() throws Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(dataUser.createRandomTestUser()).withCoreAPI().usingUser(siteMember).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY, description = "Failed authentication get site member call returns status code 401")
// @Bug(id = "MNT-16904")
public void unauthenticatedUserIsNotAuthorizedToDeleteSiteMmebershipRequest() throws Exception
{
restClient.authenticateUser(dataUser.createRandomTestUser()).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
UserModel inexistentUser = new UserModel("inexistent user", "inexistent password");
restClient.authenticateUser(inexistentUser).withCoreAPI().usingAuthUser().deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is able to remove his own site memebership request using '-me-' in place of personId and response is successful (204)")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void userCanDeleteHisOwnSiteMembershipRequestUsingMeAsPersonId() throws Exception
{
restClient.authenticateUser(secondSiteCreator).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.withCoreAPI().usingMe().deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a site memebership request of an inexistent user and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void adminIsNotAbleToDeleteSiteMembershipRequestOfAnInexistentUser() throws Exception
{
UserModel inexistentUser = new UserModel("inexistenUser", "password");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(inexistentUser).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a site memebership request to an inexistent site and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void adminIsNotAbleToDeleteSiteMembershipRequestToAnInexistentSite() throws Exception
{
SiteModel inexistentSite = new SiteModel("inexistentSite");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(inexistentSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), inexistentSite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a site memebership request to an empty site id and response is 405")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void adminIsNotAbleToDeleteSiteMembershipRequestWithEmptySiteId() throws Exception
{
SiteModel inexistentSite = new SiteModel("");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(inexistentSite);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(RestErrorModel.DELETE_EMPTY_ARGUMENT);
}
@Bug(id = "REPO-1946")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify contributor user is not able to remove a site memebership request of admin to a moderated site and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void contributorIsNotAbleToDeleteSiteMembershipRequestOfAdminToAModeratedSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify manager is able to remove a site memebership request of admin to a moderated site and response is 204")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void managerUserIsAbleToDeleteSiteMembershipRequestOfAdminToAModeratedSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteMembershipRequest(secondModeratedSite);
restClient.authenticateUser(secondSiteCreator).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify manager is not able to remove a site memebership request if it was already approved and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void managerUserIsNotAbleToDeleteASiteMembershipRequestIfItWasAlreadyApproved() throws Exception
{
siteMember.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(secondModeratedSite);
RestTaskModel taskModel = restClient.authenticateUser(siteMember).withWorkflowAPI().getTasks().getTaskModelByDescription(secondModeratedSite);
workflow.approveSiteMembershipRequest(secondSiteCreator.getUsername(), secondSiteCreator.getPassword(), taskModel.getId(), true, "Approve");
restClient.authenticateUser(secondSiteCreator).withCoreAPI().usingUser(siteMember).deleteSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, siteMember.getUsername(), secondModeratedSite.getId()));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify manager is not able to remove an inexitent site memebership request and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void managerUserIsNotAbleToDeleteAnInexistentSiteMembershipRequest() throws Exception
{
restClient.authenticateUser(secondSiteCreator).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), secondModeratedSite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify collaborator user is not able to remove a site memebership request of admin to a public site and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void collaboratorIsNotAbleToDeleteSiteMembershipRequestOfAdminToAPublicSite() throws Exception
{
UserModel userCollaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
restClient.authenticateUser(siteMember).withCoreAPI().usingSite(publicSite).addPerson(userCollaborator);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.authenticateUser(userCollaborator).withCoreAPI().usingUser(adminUserModel).deleteSiteMembershipRequest(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), publicSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Delete a rejected site membership request.")
public void deleteARejectedSiteMembershipRequest() throws Exception
{
UserModel userWithRejectedRequests = dataUser.createRandomTestUser();
restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingAuthUser().addSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
RestTaskModel taskModel = restClient.authenticateUser(userWithRejectedRequests).withWorkflowAPI().getTasks()
.getTaskModelByDescription(secondModeratedSite);
workflow.approveSiteMembershipRequest(secondSiteCreator.getUsername(), secondSiteCreator.getPassword(), taskModel.getId(), false, "Rejected");
siteMembershipRequests = restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListDoesNotContain("id", secondModeratedSite.getId());
restClient.authenticateUser(secondSiteCreator).withCoreAPI().usingUser(userWithRejectedRequests).deleteSiteMembershipRequest(secondModeratedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, userWithRejectedRequests.getUsername(), secondModeratedSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@Bug(id="ACE-2413")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a site memebership request- empty person id and response is 400")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void adminIsNotAbleToDeleteSiteMembershipRequestEmptyPersonID() throws Exception
{
UserModel emptyPersonId = new UserModel("", "password");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(emptyPersonId).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError()
.containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY)
.containsSummary(RestErrorModel.ENTITY_NOT_FOUND)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify manager removes/cancel twice same site memebership request and response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void managerCancelsTwiceSiteMembershipRequestModeratedSite() throws Exception
{
siteMember = dataUser.createRandomTestUser();
restClient.authenticateUser(siteMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(siteCreator).withCoreAPI().usingUser(siteMember).deleteSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingUser(siteMember).deleteSiteMembershipRequest(moderatedSite);
restClient.withCoreAPI().usingUser(siteMember).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, siteMember.getUsername(), moderatedSite.getTitle()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
}
@@ -1,144 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
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.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;
/**
* Tests for getSiteMembershipRequests (get /people/{personId}/site-membership-requests) RestAPI call
*
* @author Bogdan Bocancea
*/
public class GetSiteMembershipRequestCoreTests extends RestTest
{
UserModel userModel;
SiteModel siteModel;
UserModel newMember;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
userModel = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(userModel).createModeratedRandomSite();
newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify contributor user fails to get all site membership requests of a specific person with Rest API when the authentication fails (401)")
public void unauthorizedContributorUserFailsToGetSiteMembershipRequests() throws Exception
{
UserModel contributor = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(contributor, siteModel, UserRole.SiteContributor);
contributor.setPassword("newpassword");
restClient.authenticateUser(contributor).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED)
.assertLastError().containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY)
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify collaborator user fails to get all site membership requests of a specific person with Rest API when the authentication fails (401)")
@Bug(id="MNT-16904", description = "It fails only on environment with tenants")
public void unauthorizedCollaboratorUserFailsToGetSiteMembershipRequests() throws Exception
{
UserModel collaborator = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(collaborator, siteModel, UserRole.SiteContributor);
collaborator.setPassword("newpassword");
restClient.authenticateUser(collaborator).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify consumer user fails to get all site membership requests of a specific person with Rest API when the authentication fails (401)")
@Bug(id = "MNT-16904", description = "It fails only on environment with tenants")
public void unauthorizedConsumerUserFailsToGetSiteMembershipRequests() throws Exception
{
UserModel consumer = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(consumer, siteModel, UserRole.SiteContributor);
consumer.setPassword("newpassword");
restClient.authenticateUser(consumer).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError()
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify a user gets all its own site membership requests using '-me-' with Rest API and response is successful (200)")
public void usingMeGetSiteMembershipRequestsWithSuccess() throws Exception
{
restClient.authenticateUser(newMember).withCoreAPI().usingMe().getSiteMembershipRequest(siteModel).assertThat().field("id").is(siteModel.getId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager can't get site membership requests for inexistent user and response is not found (404)")
public void siteManagerCantGetSiteMembershipRequestsInexistentUser() throws Exception
{
restClient.authenticateUser(newMember).withCoreAPI().usingUser(UserModel.getRandomUserModel()).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, ""));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user can get site membership requests on site with no requests and response is successful (200)")
public void userCantGetSiteMembershipRequestsWithNoRequests() throws Exception
{
UserModel noRequestUser = dataUser.createRandomTestUser();
restClient.authenticateUser(noRequestUser).withCoreAPI().usingMe().getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, noRequestUser.getUsername(), siteModel.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager can't get site membership requests on public site and response is not found (404)")
public void siteManagerCantGetPublicSiteMembershipRequests() throws Exception
{
UserModel publicUser = dataUser.createRandomTestUser();
SiteModel publicSite = dataSite.usingUser(userModel).createPublicRandomSite();
restClient.authenticateUser(publicUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.authenticateUser(userModel).withCoreAPI().usingUser(publicUser).getSiteMembershipRequest(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, publicUser.getUsername(), publicSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager can't get site membership requests on private site and response is not found (404)")
public void siteManagerCantGetPrivateSiteMembershipRequests() throws Exception
{
UserModel privateUser = dataUser.createRandomTestUser();
SiteModel privateSite = dataSite.usingUser(userModel).createPrivateRandomSite();
restClient.authenticateUser(privateUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(privateSite);
restClient.authenticateUser(userModel).withCoreAPI().usingUser(privateUser).getSiteMembershipRequest(privateSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, privateUser.getUsername(), privateSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager can't get site membership requests for inexistent site and response is not found (404)")
public void siteManagerCantGetSiteMembershipRequestsForInexistentSite() throws Exception
{
SiteModel inexistentSite = SiteModel.getRandomSiteModel();
restClient.authenticateUser(userModel).withCoreAPI().usingMe().getSiteMembershipRequest(inexistentSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, userModel.getUsername(), inexistentSite.getId()));
}
}
@@ -1,285 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.dataprep.SiteService.Visibility;
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.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.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;
public class GetSiteMembershipRequestFullTests extends RestTest
{
UserModel userModel, newMember, adminUser, userCollaborator, userConsumer, adminTenantUser, adminTenantUser2,
tenantUser, tenantUserAssignee;
SiteModel moderatedSite, secondModeratedSite;
RestSiteMembershipRequestModel returnedModel;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
userModel = dataUser.createRandomTestUser();
moderatedSite = dataSite.usingUser(userModel).createModeratedRandomSite();
newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site manager can get site membership requests on moderated site and response is successful (200)")
public void siteManagerCanGetModeratedSiteMembershipRequests() throws Exception
{
UserModel moderatedUser = dataUser.createRandomTestUser();
SiteModel moderatedSite = dataSite.usingUser(userModel).createModeratedRandomSite();
restClient.authenticateUser(moderatedUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedModel = restClient.authenticateUser(userModel).withCoreAPI().usingUser(moderatedUser).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().field("id").is(moderatedSite.getId())
.and().field("message").is("Please accept me")
.and().field("site.title").is(moderatedSite.getTitle())
.and().field("site.visibility").is(Visibility.MODERATED.toString())
.and().field("site.guid").isNotEmpty()
.and().field("site.description").is(moderatedSite.getDescription())
.and().field("site.preset").is("site-dashboard");
}
@Bug(id = "ACE-2413")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify if person ID field is empty user can't get site membership requests on moderated site and response is not found (400)")
public void emptyPersonIdCantGetModeratedSiteMembershipRequests() throws Exception
{
UserModel emptyUser = new UserModel("", "password");
restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(userModel).withCoreAPI().usingUser(emptyUser).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError()
.containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY)
.containsSummary(String.format("The entity with id: personId is null. was not found"))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Approve site membership request then verify get site membership requests - response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void approveRequestThenGetSiteMembershipRequest() 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(userModel.getUsername(), userModel.getPassword(), taskModel.getId(), true, "Approve");
returnedModel = restClient.authenticateUser(userWithApprovedRequests).withCoreAPI().usingMe().getSiteMembershipRequest(moderatedSite);
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 = "Reject site membership request then verify get site membership requests - response is 404")
public void rejectRequestThenGetSiteMembershipRequest() 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(userModel.getUsername(), userModel.getPassword(), taskModel.getId(), false, "Rejected");
returnedModel = restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingMe().getSiteMembershipRequest(moderatedSite);
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);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify entry details for get site favorite response with Rest API")
public void checkResponseSchemaForGetSiteMembershipRequest() throws Exception
{
dataUser.usingUser(userModel).addUserToSite(newMember, moderatedSite, UserRole.SiteContributor);
returnedModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().field("id").is(moderatedSite.getId())
.and().field("message").is("Please accept me")
.and().field("site.title").is(moderatedSite.getTitle())
.and().field("site.visibility").is(Visibility.MODERATED.toString())
.and().field("site.guid").isNotEmpty()
.and().field("site.description").is(moderatedSite.getDescription())
.and().field("site.preset").is("site-dashboard")
.and().field("site.role").is("SiteContributor");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify that getFavoriteSites request applies valid properties param")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void getSiteMembershipRequestWithValidPropertiesParam() throws Exception
{
RestSiteMembershipRequestModel returnedModel = restClient.authenticateUser(newMember).withParams("properties=message").withCoreAPI().usingAuthUser()
.getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().fieldsCount().is(1).assertThat().field("message").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify that getFavoriteSites request returns status 200 when using valid parameters")
public void getSiteMembershipRequestUsingParameters() throws Exception
{
RestSiteMembershipRequestModel returnedModel = restClient.withParams("message=Please accept me")
.authenticateUser(newMember).withCoreAPI().usingMe()
.getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().field("id").is(moderatedSite.getId()).and().field("site.title").is(moderatedSite.getTitle());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user doesn't have permission to get site membership request of admin with membership request with Rest API and status code is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void userIsNotAbleToGetSiteMembershipRequestOfAdminWithRequest() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedModel = restClient.authenticateUser(adminUser).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().field("id").is(moderatedSite.getId())
.and().field("message").is("Please accept me")
.and().field("site.title").is(moderatedSite.getTitle())
.and().field("site.visibility").is(Visibility.MODERATED.toString())
.and().field("site.guid").isNotEmpty()
.and().field("site.description").is(moderatedSite.getDescription())
.and().field("site.preset").is("site-dashboard");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user doesn't have permission to get site membership request of admin without membership request with Rest API and status code is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void userIsNotAbleToGetSiteMembershipRequestOfAdminWithoutRequest() throws JsonToModelConversionException, Exception
{
SiteModel moderatedSite = dataSite.usingUser(userModel).createModeratedRandomSite();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedModel = restClient.authenticateUser(newMember).withCoreAPI().usingUser(adminUser).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUser.getUsername(), moderatedSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER).stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin user doesn't have permission to get site membership request of another user with Rest API and status code is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void adminIsNotAbleToGetSiteMembershipRequestOfUser() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedModel = restClient.authenticateUser(newMember).withCoreAPI().usingUser(adminUser).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUser.getUsername(), moderatedSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin user doesn't have permission to get site membership request of another user with Rest API and status code is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
public void userIsNotAbleToGetSiteMembershipRequestOfAnotherUser() throws JsonToModelConversionException, Exception
{
userCollaborator = dataUser.createRandomTestUser();
userConsumer = dataUser.createRandomTestUser();
restClient.authenticateUser(userConsumer).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
dataUser.usingUser(userModel).addUserToSite(userConsumer, moderatedSite, UserRole.SiteConsumer);
restClient.authenticateUser(userCollaborator).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
dataUser.usingUser(userModel).addUserToSite(userCollaborator, moderatedSite, UserRole.SiteCollaborator);
returnedModel = restClient.authenticateUser(userCollaborator).withCoreAPI().usingUser(userConsumer).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, userConsumer.getUsername(), moderatedSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION,
description = "Add process item using by the admin in same network.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL, TestGroup.NETWORKS })
public void getSiteMembershipRequestByAdminSameNetwork() throws Exception
{
adminTenantUser = UserModel.getAdminTenantUser();
restClient.authenticateUser(adminUser).usingTenant().createTenant(adminTenantUser);
tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant");
moderatedSite = dataSite.usingUser(adminTenantUser).createModeratedRandomSite();
restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedModel = restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().field("id").is(moderatedSite.getId())
.and().field("message").is("Please accept me")
.and().field("site.title").is(moderatedSite.getTitle())
.and().field("site.visibility").is(Visibility.MODERATED.toString())
.and().field("site.guid").isNotEmpty()
.and().field("site.description").is(moderatedSite.getDescription())
.and().field("site.preset").is("site-dashboard");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION,
description = "Add process item using by admin in other network.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL, TestGroup.NETWORKS })
public void getSiteMembershipRequestByAdminInOtherNetwork() throws Exception
{
adminTenantUser = UserModel.getAdminTenantUser();
restClient.authenticateUser(adminUser).usingTenant().createTenant(adminTenantUser);
tenantUserAssignee = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenantAssignee");
adminTenantUser2 = UserModel.getAdminTenantUser();
restClient.usingTenant().createTenant(adminTenantUser2);
moderatedSite = dataSite.usingUser(adminTenantUser2).createModeratedRandomSite();
restClient.authenticateUser(adminTenantUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedModel = restClient.authenticateUser(adminTenantUser2).withCoreAPI().usingAuthUser().getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminTenantUser2.getUsername().toLowerCase(), moderatedSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
}
@@ -1,119 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataSite;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class GetSiteMembershipRequestSanityTests extends RestTest
{
@Autowired
DataUser dataUser;
@Autowired
DataSite dataSite;
private SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
private UserModel adminUser;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUser).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site manager is able to retrieve site membership request")
@Bug(id = "MNT-16557")
public void siteManagerIsAbleToRetrieveSiteMembershipRequest() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingUser(newMember)
.addSiteMembershipRequest(siteModel);
restClient.withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site collaborator is able to retrieve site membership request")
@Bug(id = "MNT-16557")
public void siteCollaboratorIsAbleToRetrieveSiteMembershipRequest() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingUser(newMember)
.addSiteMembershipRequest(siteModel);
restClient.withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site contributor is able to retrieve site membership request")
@Bug(id = "MNT-16557")
public void siteContributorIsAbleToRetrieveSiteMembershipRequest() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingUser(newMember)
.addSiteMembershipRequest(siteModel);
restClient.withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site consumer is able to retrieve site membership request")
@Bug(id = "MNT-16557")
public void siteConsumerIsAbleToRetrieveSiteMembershipRequest() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingUser(newMember)
.addSiteMembershipRequest(siteModel);
restClient.withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify admin user is able to retrieve site membership request")
@Bug(id = "MNT-16557")
public void adminIsAbleToRetrieveSiteMembershipRequest() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(adminUser).withCoreAPI().usingUser(newMember).addSiteMembershipRequest(siteModel);
restClient.withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify unauthenticated user is not able to retrieve site membership request")
@Bug(id = "MNT-16557")
public void unauthenticatedUserIsNotAbleToRetrieveSiteMembershipRequest() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI().usingUser(newMember).addSiteMembershipRequest(siteModel);
restClient.withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString());
}
}
@@ -0,0 +1,380 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.dataprep.SiteService;
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.rest.model.RestTaskModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
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.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;
public class GetSiteMembershipRequestTests extends RestTest
{
private SiteModel publicSite, moderatedSite;
private ListUserWithRoles usersWithRoles;
private UserModel adminUser, siteCreator, newMember;
private RestSiteMembershipRequestModel returnedModel;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
publicSite = dataSite.usingUser(adminUser).createPublicRandomSite();
siteCreator = dataUser.createRandomTestUser();
moderatedSite = dataSite.usingUser(siteCreator).createModeratedRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(moderatedSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site manager is able to retrieve site membership request")
public void siteManagerIsAbleToRetrieveSiteMembershipRequest() throws Exception
{
returnedModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().field("id").is(moderatedSite.getId())
.and().field("message").is("Please accept me")
.and().field("site.title").is(moderatedSite.getTitle())
.and().field("site.visibility").is(SiteService.Visibility.MODERATED.toString())
.and().field("site.guid").isNotEmpty()
.and().field("site.description").is(moderatedSite.getDescription())
.and().field("site.preset").is("site-dashboard");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site collaborator is able to retrieve site membership request")
public void siteCollaboratorIsNotAbleToRetrieveSiteMembershipRequest() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site contributor is able to retrieve site membership request")
public void siteContributorIsNotAbleToRetrieveSiteMembershipRequest() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site consumer is able to retrieve site membership request")
public void siteConsumerIsNotAbleToRetrieveSiteMembershipRequest() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify admin user is able to retrieve site membership request")
public void adminIsAbleToRetrieveSiteMembershipRequest() throws Exception
{
returnedModel = restClient.authenticateUser(adminUser).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().field("id").is(moderatedSite.getId())
.and().field("message").is("Please accept me")
.and().field("site.title").is(moderatedSite.getTitle())
.and().field("site.visibility").is(SiteService.Visibility.MODERATED.toString())
.and().field("site.guid").isNotEmpty()
.and().field("site.description").is(moderatedSite.getDescription())
.and().field("site.preset").is("site-dashboard");
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY,
description = "Verify user fails to get all site membership requests of a specific person with Rest API when the authentication fails (401)")
public void unauthorizedUserFailsToGetSiteMembershipRequests() throws Exception
{
UserModel manager = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(siteCreator).addUserToSite(manager, moderatedSite, UserRole.SiteManager);
manager.setPassword("newpassword");
restClient.authenticateUser(manager).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED)
.assertLastError().containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY)
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify a user gets all its own site membership requests using '-me-' with Rest API and response is successful (200)")
public void usingMeGetSiteMembershipRequestsWithSuccess() throws Exception
{
restClient.authenticateUser(newMember).withCoreAPI().usingMe().getSiteMembershipRequest(moderatedSite).assertThat().field("id").is(moderatedSite.getId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager can't get site membership requests for inexistent user and response is not found (404)")
public void siteManagerCantGetSiteMembershipRequestsInexistentUser() throws Exception
{
restClient.authenticateUser(newMember).withCoreAPI().usingUser(UserModel.getRandomUserModel()).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, ""));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user can get site membership requests on site with no requests and response is successful (200)")
public void userWithNoRequestsCantGetSiteMembershipRequests() throws Exception
{
UserModel noRequestUser = dataUser.createRandomTestUser();
restClient.authenticateUser(noRequestUser).withCoreAPI().usingMe().getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, noRequestUser.getUsername(), moderatedSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager can't get site membership requests on public site and response is not found (404)")
public void siteManagerCantGetPublicSiteMembershipRequests() throws Exception
{
UserModel publicUser = dataUser.createRandomTestUser();
restClient.authenticateUser(publicUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.authenticateUser(adminUser).withCoreAPI()
.usingUser(publicUser).getSiteMembershipRequest(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, publicUser.getUsername(), publicSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager can't get site membership requests on private site and response is not found (404)")
public void siteManagerCantGetPrivateSiteMembershipRequests() throws Exception
{
UserModel privateUser = dataUser.createRandomTestUser();
SiteModel privateSite = dataSite.usingUser(siteCreator).createPrivateRandomSite();
restClient.authenticateUser(privateUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(privateSite);
restClient.authenticateUser(siteCreator).withCoreAPI().usingUser(privateUser).getSiteMembershipRequest(privateSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, privateUser.getUsername(), privateSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager can't get site membership requests for inexistent site and response is not found (404)")
public void siteManagerCantGetSiteMembershipRequestsForInexistentSite() throws Exception
{
SiteModel inexistentSite = SiteModel.getRandomSiteModel();
restClient.authenticateUser(siteCreator).withCoreAPI().usingMe().getSiteMembershipRequest(inexistentSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, siteCreator.getUsername(), inexistentSite.getId()));
}
@Bug(id = "ACE-2413")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify if person ID field is empty user can't get site membership requests on moderated site and response is not found (400)")
public void emptyPersonIdCantGetModeratedSiteMembershipRequests() throws Exception
{
UserModel emptyUser = new UserModel("", "password");
restClient.authenticateUser(siteCreator).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(siteCreator).withCoreAPI().usingUser(emptyUser).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError()
.containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY)
.containsSummary(String.format("The entity with id: personId is null. was not found"))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Approve site membership request then verify get site membership requests - response is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void approveRequestThenGetSiteMembershipRequest() throws 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(siteCreator.getUsername(), siteCreator.getPassword(), taskModel.getId(), true, "Approve");
returnedModel = restClient.authenticateUser(userWithApprovedRequests).withCoreAPI().usingMe().getSiteMembershipRequest(moderatedSite);
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.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Reject site membership request then verify get site membership requests - response is 404")
public void rejectRequestThenGetSiteMembershipRequest() 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(siteCreator.getUsername(), siteCreator.getPassword(), taskModel.getId(), false, "Rejected");
returnedModel = restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingMe().getSiteMembershipRequest(moderatedSite);
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);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify entry details for get site favorite response with Rest API")
public void checkResponseSchemaForGetSiteMembershipRequest() throws Exception
{
dataUser.usingUser(siteCreator).addUserToSite(newMember, moderatedSite, UserRole.SiteContributor);
returnedModel = restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().field("id").is(moderatedSite.getId())
.and().field("message").is("Please accept me")
.and().field("site.title").is(moderatedSite.getTitle())
.and().field("site.visibility").is(SiteService.Visibility.MODERATED.toString())
.and().field("site.guid").isNotEmpty()
.and().field("site.description").is(moderatedSite.getDescription())
.and().field("site.preset").is("site-dashboard")
.and().field("site.role").is("SiteContributor");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify that getFavoriteSites request applies valid properties param")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void getSiteMembershipRequestWithValidPropertiesParam() throws Exception
{
RestSiteMembershipRequestModel returnedModel = restClient.authenticateUser(newMember).withParams("properties=message").withCoreAPI().usingAuthUser()
.getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().fieldsCount().is(1).assertThat().field("message").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify that getFavoriteSites request returns status 200 when using valid parameters")
public void getSiteMembershipRequestUsingParameters() throws Exception
{
RestSiteMembershipRequestModel returnedModel = restClient.withParams("message=Please accept me")
.authenticateUser(newMember).withCoreAPI().usingMe()
.getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().field("id").is(moderatedSite.getId()).and().field("site.title").is(moderatedSite.getTitle());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user doesn't have permission to get site membership request of admin without membership request with Rest API and status code is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void userIsNotAbleToGetSiteMembershipRequestOfAdminWithoutRequest() throws Exception
{
returnedModel = restClient.authenticateUser(newMember).withCoreAPI().usingUser(adminUser).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUser.getUsername(), moderatedSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER).stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user doesn't have permission to get site membership request of admin with requests with Rest API and status code is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void userIsNotAbleToGetSiteMembershipRequestOfAdminWithRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedModel = restClient.authenticateUser(newMember).withCoreAPI().usingUser(adminUser).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUser.getUsername(), moderatedSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin user doesn't have permission to get site membership request of another user with Rest API and status code is 404")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void userIsNotAbleToGetSiteMembershipRequestOfAnotherUser() throws Exception
{
UserModel userCollaborator = dataUser.createRandomTestUser();
UserModel userConsumer = dataUser.createRandomTestUser();
restClient.authenticateUser(userConsumer).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
dataUser.usingUser(siteCreator).addUserToSite(userConsumer, moderatedSite, UserRole.SiteConsumer);
restClient.authenticateUser(userCollaborator).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
dataUser.usingUser(siteCreator).addUserToSite(userCollaborator, moderatedSite, UserRole.SiteCollaborator);
returnedModel = restClient.authenticateUser(userCollaborator).withCoreAPI().usingUser(userConsumer).getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, userConsumer.getUsername(), moderatedSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION,
description = "Add process item using by the admin in same network.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION, TestGroup.NETWORKS })
public void getSiteMembershipRequestByAdminSameNetwork() throws Exception
{
UserModel adminTenantUser = UserModel.getAdminTenantUser();
restClient.authenticateUser(adminUser).usingTenant().createTenant(adminTenantUser);
UserModel tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant");
moderatedSite = dataSite.usingUser(adminTenantUser).createModeratedRandomSite();
restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedModel = restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedModel.assertThat().field("id").is(moderatedSite.getId())
.and().field("message").is("Please accept me")
.and().field("site.title").is(moderatedSite.getTitle())
.and().field("site.visibility").is(SiteService.Visibility.MODERATED.toString())
.and().field("site.guid").isNotEmpty()
.and().field("site.description").is(moderatedSite.getDescription())
.and().field("site.preset").is("site-dashboard");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION,
description = "Add process item using by admin in other network.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION, TestGroup.NETWORKS })
public void getSiteMembershipRequestByAdminInOtherNetwork() throws Exception
{
UserModel adminTenantUser = UserModel.getAdminTenantUser();
restClient.authenticateUser(adminUser).usingTenant().createTenant(adminTenantUser);
UserModel adminTenantUser2 = UserModel.getAdminTenantUser();
restClient.usingTenant().createTenant(adminTenantUser2);
moderatedSite = dataSite.usingUser(adminTenantUser2).createModeratedRandomSite();
restClient.authenticateUser(adminTenantUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedModel = restClient.authenticateUser(adminTenantUser2).withCoreAPI().usingAuthUser().getSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError()
.containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY)
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminTenantUser2.getUsername().toLowerCase(), moderatedSite.getId()))
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE);
}
}
@@ -1,167 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection;
import org.alfresco.rest.model.RestTaskModel;
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;
/**
* Tests for getSiteMembershipRequests (get
* /people/{personId}/site-membership-requests) Core-RestAPI call
*
* @author Andrei Rusu
*/
public class GetSiteMembershipRequestsCoreTests extends RestTest
{
UserModel newMember, newMember1, meUser, adminUser;
SiteModel moderatedSite, publicSite;
RestSiteMembershipRequestModelsCollection returnedCollection;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
moderatedSite = dataSite.usingAdmin().createModeratedRandomSite();
publicSite = dataSite.usingAdmin().createPublicRandomSite();
newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify that for invalid maxItems parameter status code returned is 400.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void checkInvalidMaxItemsStatusCode() throws Exception
{
restClient.authenticateUser(adminUser).withParams("maxItems=AB")
.withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "AB"));
restClient.authenticateUser(adminUser).withParams("maxItems=0")
.withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify that for invalid skipCount parameter status code returned is 400.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void checkInvalidSkipCountStatusCode() throws Exception
{
restClient.authenticateUser(adminUser).withParams("skipCount=AB")
.withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "AB"));
restClient.authenticateUser(adminUser).withParams("skipCount=-1")
.withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify that if personId does not exist status code returned is 404.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void ifPersonIdDoesNotExist() throws Exception
{
UserModel nonexistentUser = dataUser.createRandomTestUser();
nonexistentUser.setUsername("nonexistent");
restClient.authenticateUser(adminUser).withCoreAPI().usingUser(nonexistentUser).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "nonexistent"))
.statusCodeIs(HttpStatus.NOT_FOUND)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE)
.containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Specify -me- string in place of <personid> for request.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void replacePersonIdWithMeRequest() throws Exception
{
meUser = dataUser.createRandomTestUser();
restClient.authenticateUser(meUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedCollection = restClient.authenticateUser(meUser).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedCollection.assertThat().entriesListContains("id", moderatedSite.getId());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify that if empty personId is used status code returned is 404.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void useEmptyPersonId() throws Exception
{
UserModel emptyNameMember = dataUser.createRandomTestUser();
emptyNameMember.setUsername(" ");
restClient.authenticateUser(adminUser).withCoreAPI().usingUser(emptyNameMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, emptyNameMember.getUsername()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Get site membership requests to a public site.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void getRequestsToPublicSite() throws Exception
{
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
returnedCollection = restClient.withCoreAPI().usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedCollection.assertThat().entriesListDoesNotContain("id", publicSite.getId());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Get site membership requests to a moderated site.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void getRequestsToModeratedSite() throws Exception
{
newMember1 = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember1).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
returnedCollection = restClient.authenticateUser(newMember1).withCoreAPI().usingUser(newMember1).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedCollection.assertThat().entriesListContains("id", moderatedSite.getId());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Approve request then get requests.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public void approveRequestThenGetRequests() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
moderatedSite = dataSite.usingUser(siteManager).createModeratedRandomSite();
restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
RestTaskModel taskModel = restClient.authenticateUser(newMember).withWorkflowAPI().getTasks().getTaskModelByDescription(moderatedSite);
workflow.approveSiteMembershipRequest(siteManager.getUsername(), siteManager.getPassword(), taskModel.getId(), true, "Approve");
returnedCollection = restClient.authenticateUser(newMember).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedCollection.assertThat().entriesListDoesNotContain("id", moderatedSite.getId());
}
}
@@ -1,172 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection;
import org.alfresco.rest.model.RestTaskModel;
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 1/10/2017.
*/
public class GetSiteMembershipRequestsFullTests extends RestTest
{
UserModel siteManager, newMember, adminUser, regularUser;
SiteModel moderatedSite1, moderatedSite2, publicSite, privateSite;
RestSiteMembershipRequestModelsCollection siteMembershipRequests;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
siteManager = dataUser.createRandomTestUser();
publicSite = dataSite.usingUser(siteManager).createPublicRandomSite();
moderatedSite1 = dataSite.usingUser(siteManager).createModeratedRandomSite();
moderatedSite2 = dataSite.usingUser(siteManager).createModeratedRandomSite();
privateSite = dataSite.usingUser(siteManager).createPrivateRandomSite();
adminUser = dataUser.getAdminUser();
newMember = dataUser.createRandomTestUser();
regularUser = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify admin user gets all its own site membership requests with Rest API and response is successful (200)")
public void adminGetsItsOwnSiteMembershipRequestsWithSuccess() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
}
@Bug(id = "MNT-16557")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user fails to get all site membership requests of another user with Rest API (403)")
public void regularUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception
{
restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Bug(id = "MNT-16557")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user fails to get all site membership requests of admin with Rest API (403)")
public void regularUserFailsToGetSiteMembershipRequestsOfAdmin() throws Exception
{
restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(adminUser).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to get his site membership requests with, but skip the first one")
public void getSiteMembershipRequestsButSkipTheFirstOne() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("orderBy=id ASC").withCoreAPI()
.usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
RestSiteMembershipRequestModel firstSiteMembershipRequest = siteMembershipRequests.getEntries().get(0).onModel();
RestSiteMembershipRequestModel secondSiteMembershipRequest = siteMembershipRequests.getEntries().get(1).onModel();
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("orderBy=id ASC&skipCount=1").withCoreAPI()
.usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListDoesNotContain("id", firstSiteMembershipRequest.getId())
.assertThat().entriesListContains("id", secondSiteMembershipRequest.getId())
.assertThat().entriesListContains("id", secondSiteMembershipRequest.getSite().getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to get his site membership requests with higher skipCount than number of requests")
public void getSiteMembershipRequestsWithHighSkipCount() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("skipCount=3").withCoreAPI()
.usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify get site membership requests returns an empty list where there are no requests")
public void getSiteMembershipRequestsWhereThereAreNoRequests() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(regularUser).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Reject request then get site membership requests.")
public void rejectRequestThenGetSiteMembershipRequests() throws Exception
{
UserModel userWithRejectedRequests = dataUser.createRandomTestUser();
restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
RestTaskModel taskModel = restClient.authenticateUser(userWithRejectedRequests).withWorkflowAPI().getTasks().getTaskModelByDescription(moderatedSite1);
workflow.approveSiteMembershipRequest(siteManager.getUsername(), siteManager.getPassword(), taskModel.getId(), false, "Rejected");
siteMembershipRequests = restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListDoesNotContain("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Check get site membership requests when properties parameter is used")
public void getSiteMembershipRequestsWithProperties() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("properties=id")
.withCoreAPI().usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
RestSiteMembershipRequestModel siteMembershipRequest = siteMembershipRequests.getOneRandomEntry().onModel();
siteMembershipRequest.assertThat().fieldsCount().is(1);
}
}
@@ -1,121 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
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;
/**
* Tests for getSiteMembershipRequests (get /people/{personId}/site-membership-requests) RestAPI call
*
* @author Cristina Axinte
*/
public class GetSiteMembershipRequestsSanityTests extends RestTest
{
UserModel siteManager, newMember;
DataUser.ListUserWithRoles usersWithRoles;
SiteModel moderatedSite;
RestSiteMembershipRequestModelsCollection siteMembershipRequests;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
siteManager = dataUser.createRandomTestUser();
moderatedSite = dataSite.usingUser(siteManager).createModeratedRandomSite();
newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
usersWithRoles = dataUser.addUsersWithRolesToSite(moderatedSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "MNT-16557")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify manager user gets all site membership requests of a specific person with Rest API and response is successful (200)")
public void managerUserGetsSiteMembershipRequestsWithSuccess() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "MNT-16557")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify collaborator user fails to get all site membership requests of another user with Rest API (403)")
public void collaboratorUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "MNT-16557")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify contributor user fails to get all site membership requests of another user with Rest API (403)")
public void contributorUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "MNT-16557")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify consumer user fails to get all site membership requests of another user with Rest API (403)")
public void consumerUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "MNT-16557")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify admin user gets all site membership requests of a specific person with Rest API and response is successful (200)")
public void adminUserGetsSiteMembershipRequestsWithSuccess() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "MNT-16904", description = "It fails only on environment with tenants")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify manager user fails to get all site membership requests of a specific person with Rest API when the authentication fails (401)")
public void unauthorizedUserFailsToGetSiteMembershipRequests() throws Exception
{
restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI()
.usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED)
.assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify a user gets all its own site membership requests with Rest API and response is successful (200)")
public void oneUserGetsItsOwnSiteMembershipRequestsWithSuccess() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite.getId())
.assertThat().entriesListContains("message", "Please accept me")
.assertThat().entriesListCountIs(1);
siteMembershipRequests.getEntries().get(0).onModel().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("title").is(moderatedSite.getTitle());
}
}
@@ -0,0 +1,371 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection;
import org.alfresco.rest.model.RestTaskModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
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;
/**
* Tests for getSiteMembershipRequests (get /people/{personId}/site-membership-requests) RestAPI call
*
* @author Cristina Axinte
*/
public class GetSiteMembershipRequestsTests extends RestTest
{
UserModel siteManager, newMember, adminUser, regularUser;
DataUser.ListUserWithRoles usersWithRoles;
SiteModel moderatedSite1, moderatedSite2;
RestSiteMembershipRequestModelsCollection siteMembershipRequests;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
siteManager = dataUser.createRandomTestUser();
newMember = dataUser.createRandomTestUser();
regularUser = dataUser.createRandomTestUser();
moderatedSite1 = dataSite.usingUser(siteManager).createModeratedRandomSite();
moderatedSite2 = dataSite.usingUser(siteManager).createModeratedRandomSite();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
usersWithRoles = dataUser.addUsersWithRolesToSite(moderatedSite1, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@Bug(id = "MNT-16557")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify manager user gets all site membership requests of a specific person with Rest API and response is successful (200)")
public void managerUserGetsSiteMembershipRequestsWithSuccess() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@Bug(id = "MNT-16557")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify collaborator user fails to get all site membership requests of another user with Rest API (403)")
public void collaboratorUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@Bug(id = "MNT-16557")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify contributor user fails to get all site membership requests of another user with Rest API (403)")
public void contributorUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@Bug(id = "MNT-16557")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify consumer user fails to get all site membership requests of another user with Rest API (403)")
public void consumerUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@Bug(id = "MNT-16557")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify admin user gets all site membership requests of a specific person with Rest API and response is successful (200)")
public void adminGetsSiteMembershipRequestsOfanotherUserWithSuccess() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
// @Bug(id = "MNT-16904", description = "It fails only on environment with tenants")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify manager user fails to get all site membership requests of a specific person with Rest API when the authentication fails (401)")
public void unauthorizedUserFailsToGetSiteMembershipRequests() throws Exception
{
restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI()
.usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED)
.assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify a user gets all its own site membership requests with Rest API and response is successful (200)")
public void oneUserGetsItsOwnSiteMembershipRequestsWithSuccess() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId())
.assertThat().entriesListContains("message", "Please accept me")
.assertThat().entriesListCountIs(2);
siteMembershipRequests.getEntries().get(0).onModel().getSite()
.assertThat().field("visibility").is(moderatedSite1.getVisibility())
.assertThat().field("guid").is(moderatedSite1.getGuid())
.assertThat().field("description").is(moderatedSite1.getDescription())
.assertThat().field("id").is(moderatedSite1.getId())
.assertThat().field("title").is(moderatedSite1.getTitle());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify that for invalid maxItems parameter status code returned is 400.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void checkInvalidMaxItemsStatusCode() throws Exception
{
restClient.authenticateUser(adminUser).withParams("maxItems=AB")
.withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "AB"));
restClient.authenticateUser(adminUser).withParams("maxItems=0")
.withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify that for invalid skipCount parameter status code returned is 400.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void checkInvalidSkipCountStatusCode() throws Exception
{
restClient.authenticateUser(adminUser).withParams("skipCount=AB")
.withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "AB"));
restClient.authenticateUser(adminUser).withParams("skipCount=-1")
.withCoreAPI().usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify that if personId does not exist status code returned is 404.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void ifPersonIdDoesNotExist() throws Exception
{
UserModel nonexistentUser = dataUser.createRandomTestUser();
nonexistentUser.setUsername("nonexistent");
restClient.authenticateUser(adminUser).withCoreAPI().usingUser(nonexistentUser).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "nonexistent"))
.statusCodeIs(HttpStatus.NOT_FOUND)
.descriptionURLIs(RestErrorModel.RESTAPIEXPLORER)
.stackTraceIs(RestErrorModel.STACKTRACE)
.containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Specify -me- string in place of <personid> for request.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void replacePersonIdWithMeRequest() throws Exception
{
UserModel meUser = dataUser.createRandomTestUser();
restClient.authenticateUser(meUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1);
siteMembershipRequests = restClient.authenticateUser(meUser).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify that if empty personId is used status code returned is 404.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void useEmptyPersonId() throws Exception
{
UserModel emptyNameMember = dataUser.createRandomTestUser();
emptyNameMember.setUsername(" ");
restClient.authenticateUser(adminUser).withCoreAPI().usingUser(emptyNameMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, emptyNameMember.getUsername()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Get site membership requests to a public site.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void getRequestsToPublicSite() throws Exception
{
SiteModel publicSite = dataSite.usingAdmin().createPublicRandomSite();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
siteMembershipRequests = restClient.withCoreAPI().usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListDoesNotContain("id", publicSite.getId());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Approve request then get requests.")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
public void approveRequestThenGetRequests() throws Exception
{
UserModel siteManager = dataUser.createRandomTestUser();
SiteModel moderatedSite = dataSite.usingUser(siteManager).createModeratedRandomSite();
restClient.authenticateUser(newMember).withCoreAPI().usingMe().addSiteMembershipRequest(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
RestTaskModel taskModel = restClient.authenticateUser(newMember).withWorkflowAPI().getTasks().getTaskModelByDescription(moderatedSite);
workflow.approveSiteMembershipRequest(siteManager.getUsername(), siteManager.getPassword(), taskModel.getId(), true, "Approve");
siteMembershipRequests = restClient.authenticateUser(newMember).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListDoesNotContain("id", moderatedSite.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify admin user gets all its own site membership requests with Rest API and response is successful (200)")
public void adminGetsItsOwnSiteMembershipRequestsWithSuccess() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
}
@Bug(id = "MNT-16557")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user fails to get all site membership requests of another user with Rest API (403)")
public void regularUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception
{
restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(newMember).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Bug(id = "MNT-16557")
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user fails to get all site membership requests of admin with Rest API (403)")
public void regularUserFailsToGetSiteMembershipRequestsOfAdmin() throws Exception
{
restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(adminUser).getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to get his site membership requests with, but skip the first one")
public void getSiteMembershipRequestsButSkipTheFirstOne() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("orderBy=id ASC").withCoreAPI()
.usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
RestSiteMembershipRequestModel firstSiteMembershipRequest = siteMembershipRequests.getEntries().get(0).onModel();
RestSiteMembershipRequestModel secondSiteMembershipRequest = siteMembershipRequests.getEntries().get(1).onModel();
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("orderBy=id ASC&skipCount=1").withCoreAPI()
.usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListDoesNotContain("id", firstSiteMembershipRequest.getId())
.assertThat().entriesListContains("id", secondSiteMembershipRequest.getId())
.assertThat().entriesListContains("id", secondSiteMembershipRequest.getSite().getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to get his site membership requests with higher skipCount than number of requests")
public void getSiteMembershipRequestsWithHighSkipCount() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("skipCount=3").withCoreAPI()
.usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify get site membership requests returns an empty list where there are no requests")
public void getSiteMembershipRequestsWhereThereAreNoRequests() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(regularUser).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListIsEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Reject request then get site membership requests.")
public void rejectRequestThenGetSiteMembershipRequests() throws Exception
{
UserModel userWithRejectedRequests = dataUser.createRandomTestUser();
restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
RestTaskModel taskModel = restClient.authenticateUser(userWithRejectedRequests).withWorkflowAPI().getTasks().getTaskModelByDescription(moderatedSite1);
workflow.approveSiteMembershipRequest(siteManager.getUsername(), siteManager.getPassword(), taskModel.getId(), false, "Rejected");
siteMembershipRequests = restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingMe().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListDoesNotContain("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Check get site membership requests when properties parameter is used")
public void getSiteMembershipRequestsWithProperties() throws Exception
{
siteMembershipRequests = restClient.authenticateUser(newMember).withParams("properties=id")
.withCoreAPI().usingAuthUser().getSiteMembershipRequests();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId())
.assertThat().entriesListContains("id", moderatedSite2.getId());
RestSiteMembershipRequestModel siteMembershipRequest = siteMembershipRequests.getOneRandomEntry().onModel();
siteMembershipRequest.assertThat().fieldsCount().is(1);
}
}
@@ -1,134 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMembershipRequestModel;
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.HttpStatus;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class UpdateSiteMembershipRequestCoreTests extends RestTest
{
private SiteModel siteModel;
private UserModel managerUser;
private String updatedMessage;
private RestSiteMembershipRequestModel returnedResponse;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
managerUser = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(managerUser).createModeratedRandomSite();
updatedMessage = "Please review my request";
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify unauthorized user is not able to update user site membership request")
public void unauthorizedUserIsNotAbleToUpdateSiteMembershipRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
newMember.setPassword("fakePass");
restClient.withCoreAPI().usingUser(newMember).updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED)
.assertLastError().containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY)
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request using -me-")
public void usingMeUpdateSiteMembershipRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
returnedResponse = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedResponse.assertMembershipRequestMessageIs(updatedMessage).and().field("id").is(siteModel.getId()).and().field("modifiedAt").isNotEmpty();
}
@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 its own site membership request")
public void inexistentUserCannotUpdateSiteMembershipRequest() throws Exception
{
UserModel inexistentUser = UserModel.getRandomUserModel();
restClient.authenticateUser(managerUser).withCoreAPI().usingUser(inexistentUser).updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to update its own site membership request for inexistent site")
public void userCannotUpdateSiteMembershipRequestForInexistentSite() throws Exception
{
SiteModel randomSite = SiteModel.getRandomSiteModel();
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingMe().updateSiteMembershipRequest(randomSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), randomSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able not to update its own site membership request for public site")
public void userCannotUpdateSiteMembershipRequestForPublicSite() throws Exception
{
SiteModel publicSite = dataSite.usingUser(managerUser).createPublicRandomSite();
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(publicSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), publicSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@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 userCannotUpdateSiteMembershipRequestForPrivateSite() throws Exception
{
SiteModel privateSite = dataSite.usingUser(managerUser).createPrivateRandomSite();
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(privateSite);
restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(privateSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), privateSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@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 userCanUpdateSiteMembershipRequestWithInitialMessage() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(updatedMessage, siteModel, "Accept me");
returnedResponse = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedResponse.assertMembershipRequestMessageIs(updatedMessage).and().field("id").is(siteModel.getId()).and().field("modifiedAt").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request with different message")
public void userCanUpdateSiteMembershipRequestWithDifferentMessage() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest("", siteModel, "Accept me");
returnedResponse = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedResponse.assertMembershipRequestMessageIs(updatedMessage).and().field("id").is(siteModel.getId()).and().field("modifiedAt").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify modifiedAt field for update siteMembership request call")
public void verifyModifiedAtForUpdateSiteMembershipRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
String firstModifiedAt = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(siteModel, "first message").getModifiedAt();
String secondModifiedAt = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(siteModel, "second message").getModifiedAt();
Assert.assertNotEquals(firstModifiedAt, secondModifiedAt);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -1,508 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
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;
public class UpdateSiteMembershipRequestFullTests extends RestTest
{
private SiteModel moderatedSite;
private UserModel managerUser, adminUser, newMember, regularUser;
private String updatedMessage, moderatedSiteId;
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);
moderatedSiteId = moderatedSite.getId();
}
@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 membership request of admin")
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 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);
requestUpdateModel = restClient.withCoreAPI().usingMe()
.updateSiteMembershipRequest(moderatedSite, updatedMessage);
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 = "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.assertStatusCodeIs(HttpStatus.OK);
requestUpdateModel.assertThat().field("id").is(moderatedSite.getId())
.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 update 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(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 update 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(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 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);
restClient.assertStatusCodeIs(HttpStatus.OK);
requestUpdateModel.assertThat().field("id").is(moderatedSite.getId())
.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 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);
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 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);
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(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 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);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
requestUpdateModel.assertThat().field("id").is(moderatedSite.getId())
.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());
}
@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 = "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}, 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}, 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()));
}
}
@@ -1,145 +0,0 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.dataprep.SiteService.Visibility;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.data.RandomData;
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.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class UpdateSiteMembershipRequestSanityTests extends RestTest
{
private SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
private UserModel adminUser;
private String updatedMessage;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
String siteId = RandomData.getRandomName("site");
siteModel = dataSite.usingUser(adminUser).createSite(new SiteModel(Visibility.MODERATED, siteId, siteId, siteId, siteId));
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
updatedMessage = "Please review my request";
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify user is able to update its own site membership request")
public void userIsAbleToUpdateItsOwnSiteMembershipRequest() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.withCoreAPI().usingUser(newMember).updateSiteMembershipRequest(siteModel, updatedMessage).assertMembershipRequestMessageIs(updatedMessage)
.and().field("id").is(siteModel.getId()).and().field("modifiedAt").isNotEmpty();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site manager is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void siteManagerIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingUser(newMember)
.updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site collaborator is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void siteCollaboratorIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingUser(newMember)
.updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site contributor is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void siteContributorIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingUser(newMember)
.updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify site consumer is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void siteConsumerIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingUser(newMember)
.updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify one user is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void oneUserIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
UserModel otherMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(otherMember).withCoreAPI().usingUser(newMember).updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify admin is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void adminIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws JsonToModelConversionException, Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.authenticateUser(adminUser).withCoreAPI().usingUser(newMember).updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
}
@@ -0,0 +1,610 @@
package org.alfresco.rest.sites.membershipRequests;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.RestRequest;
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.data.DataUser.ListUserWithRoles;
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.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class UpdateSiteMembershipRequestTests extends RestTest
{
private SiteModel moderatedSite;
private ListUserWithRoles usersWithRoles;
private UserModel adminUser, managerUser;
private String updatedMessage, moderatedSiteId;
private RestSiteMembershipRequestModel requestUpdateModel, requestGetModel;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
managerUser = dataUser.createRandomTestUser();
moderatedSite = dataSite.usingUser(managerUser).createModeratedRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(moderatedSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
updatedMessage = "Please review my request";
moderatedSiteId = moderatedSite.getId();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify user is able to update its own site membership request")
public void userIsAbleToUpdateItsOwnSiteMembershipRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
requestUpdateModel = restClient.withCoreAPI().usingUser(newMember).updateSiteMembershipRequest(moderatedSite, updatedMessage);
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.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site manager is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void siteManagerIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingUser(newMember)
.updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site collaborator is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void siteCollaboratorIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingUser(newMember)
.updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site contributor is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void siteContributorIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingUser(newMember)
.updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site consumer is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void siteConsumerIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingUser(newMember)
.updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify one user is not able to update membership request of another user")
// @Bug(id = "MNT-16919", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void regularUserIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
UserModel otherMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(otherMember).withCoreAPI().usingUser(newMember).updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@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", description = "Not a bug, The presence of the personId in the URL does not mean it should be possible to act on any other users behalf.")
public void adminIsNotAbleToUpdateSiteMembershipRequestOfAnotherUser() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
restClient.authenticateUser(adminUser).withCoreAPI().usingUser(newMember).updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, newMember.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify unauthorized user is not able to update user site membership request")
public void unauthorizedUserIsNotAbleToUpdateSiteMembershipRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
newMember.setPassword("fakePass");
restClient.withCoreAPI().usingUser(newMember).updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED)
.assertLastError().containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY)
.containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request using -me-")
public void usingMeUpdateSiteMembershipRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.OK);
requestUpdateModel.assertMembershipRequestMessageIs(updatedMessage).and().field("id").is(moderatedSite.getId()).and().field("modifiedAt").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify inexistent user is not able to update its own site membership request")
public void inexistentUserCannotUpdateSiteMembershipRequest() throws Exception
{
UserModel inexistentUser = UserModel.getRandomUserModel();
restClient.authenticateUser(managerUser).withCoreAPI().usingUser(inexistentUser).updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to update its own site membership request for inexistent site")
public void userCannotUpdateSiteMembershipRequestForInexistentSite() throws Exception
{
SiteModel randomSite = SiteModel.getRandomSiteModel();
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingMe().updateSiteMembershipRequest(randomSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), randomSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able not to update its own site membership request for public site")
public void userCannotUpdateSiteMembershipRequestForPublicSite() throws Exception
{
SiteModel publicSite = dataSite.usingUser(managerUser).createPublicRandomSite();
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(publicSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), publicSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@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 userCannotUpdateSiteMembershipRequestForPrivateSite() throws Exception
{
SiteModel privateSite = dataSite.usingUser(managerUser).createPrivateRandomSite();
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(privateSite);
restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(privateSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), privateSite.getId()));
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@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 userCanUpdateSiteMembershipRequestWithInitialMessage() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(updatedMessage, moderatedSite, "Accept me");
requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.OK);
requestUpdateModel.assertMembershipRequestMessageIs(updatedMessage).and().field("id").is(moderatedSite.getId()).and().field("modifiedAt").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request with different message")
public void userCanUpdateSiteMembershipRequestWithDifferentMessage() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest("", moderatedSite, "Accept me");
requestUpdateModel = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.OK);
requestUpdateModel.assertMembershipRequestMessageIs(updatedMessage).and().field("id").is(moderatedSite.getId()).and().field("modifiedAt").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify modifiedAt field for update siteMembership request call")
public void verifyModifiedAtForUpdateSiteMembershipRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite);
String firstModifiedAt = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, "first message").getModifiedAt();
String secondModifiedAt = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(moderatedSite, "second message").getModifiedAt();
Assert.assertNotEquals(firstModifiedAt, secondModifiedAt);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@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 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.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site manager is able to update site membership request")
public void updateSiteMembershipRequestAfterUserIsAddedAsMember() throws Exception
{
UserModel 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);
restClient.assertStatusCodeIs(HttpStatus.OK);
requestUpdateModel.assertThat().field("id").is(moderatedSite.getId())
.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.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to update site membership request")
public void adminIsAbleToUpdateHisSiteMembershipRequest() throws Exception
{
UserModel 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.REGRESSION })
@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);
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(updatedMessage)
.assertThat().field("modifiedAt").isNotEmpty()
.assertThat().field("createdAt").isNotEmpty();
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@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);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
requestUpdateModel.assertThat().field("id").is(moderatedSite.getId())
.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());
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.REGRESSION })
@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.REGRESSION })
@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.REGRESSION })
@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.REGRESSION })
@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.REGRESSION })
@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.REGRESSION })
@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.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Update site membership request - rejected Request")
public void rejectRequestThenUpdateSiteMembershipRequest() 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.REGRESSION })
public void approveRequestThenUpdateSiteMembershipRequest() throws 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.REGRESSION })
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE}, 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);
}
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.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
{
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()));
}
}