Files
SearchServices/e2e-test/java/org/alfresco/rest/demo/RestDemoTest.java
2016-09-26 12:12:32 +03:00

132 lines
5.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package org.alfresco.rest.demo;
import org.alfresco.dataprep.CMISUtil.DocumentType;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.body.SiteMember;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestCommentModel;
import org.alfresco.rest.requests.RestCommentsApi;
import org.alfresco.rest.requests.RestSitesApi;
import org.alfresco.utility.exception.DataPreparationException;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.FolderModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.UserModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.social.alfresco.api.entities.Role;
import org.springframework.social.alfresco.api.entities.Site.Visibility;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class RestDemoTest extends RestTest
{
@Autowired
RestSitesApi sitesApi;
@Autowired
RestCommentsApi commentsAPI;
private UserModel userModel;
private SiteModel siteModel;
@BeforeClass
public void setUp() throws DataPreparationException
{
userModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(userModel).createPublicRandomSite();
restClient.authenticateUser(userModel);
sitesApi.useRestClient(restClient);
commentsAPI.useRestClient(restClient);
}
/**
* Data preparation create site with custom details <br/>
* Perform GET sites call using admin user<br/>
* Check that created site is included in response <br/>
* Perform GET site call, validate that site title, description and visibility are correct <br/>
*
* @throws JsonToModelConversionException
* @throws Exception
*/
@Test
public void adminRetrievesCorrectSiteDetails() throws JsonToModelConversionException, Exception
{
sitesApi.getAllSites()
.assertThatResponseHasSite(siteModel)
.getSite(siteModel)
.assertSiteHasVisibility(Visibility.PUBLIC)
.assertSiteHasTitle(siteModel.getTitle())
.assertSiteHasDescription(siteModel.getDescription());
}
/**
* Data preparation create site and document on server <br/>
* POST one comment to file using admin user <br/>
* Perform GET comments, check the new one is listed <br/>
* Update existing comment using PUT call, check that comment content is updated <br/>
* @throws Exception
*/
@Test
public void adminCanPostAndUpdateComments() throws Exception
{
FileModel fileModel = dataContent.usingResource(new FolderModel("Shared"))
.usingUser(userModel)
.createContent(DocumentType.TEXT_PLAIN);
// add new comment
RestCommentModel commentEntry = commentsAPI.addComment(fileModel.getNodeRef(), "This is a new comment");
commentsAPI.getNodeComments(fileModel.getNodeRef())
.assertThatResponseIsNotEmpty()
.assertThatCommentWithIdExists(commentEntry.getId())
.assertThatCommentWithContentExists("This is a new comment");
// update comment
commentEntry = commentsAPI.updateComment(fileModel.getNodeRef(),
commentEntry.getId(),
"This is the updated comment");
commentsAPI.getNodeComments(fileModel.getNodeRef())
.assertThatResponseIsNotEmpty()
.assertThatCommentWithIdExists(commentEntry.getId())
.assertThatCommentWithContentExists("This is the updated comment");
}
/**
* Data preparation create site and a new user <br/>
* As admin, add user as Consumer to site as a new site member using POST call <br/>
* Update site member role to Manager using PUT call <br/>
* Delete site member using DELETE call <br/>
*
* @throws DataPreparationException
* @throws JsonToModelConversionException
*/
@Test
public void adminCanAddAndUpdateSiteMemberDetails() throws Exception
{
UserModel newUser = dataUser.createRandomTestUser();
SiteMember siteMember = new SiteMember(Role.SiteConsumer.toString(),
newUser.getUsername());
// add user as Consumer to site
sitesApi.addPerson(siteModel.getId(), siteMember);
sitesApi.getSiteMembers(siteModel.getId())
.assertThatSiteHasMember(siteMember.getId())
.getSiteMember(siteMember.getId())
.assertSiteMemberHasRole(Role.SiteConsumer);
// update site member to Manager
siteMember.setRole(Role.SiteManager.toString());
sitesApi.updateSiteMember(siteModel.getId(),
newUser.getUsername(), siteMember);
sitesApi.getSiteMembers(siteModel.getId())
.assertThatSiteHasMember(siteMember.getId())
.getSiteMember(siteMember.getId())
.assertSiteMemberHasRole(Role.SiteManager);
// delete site member
sitesApi.deleteSiteMember(siteModel.getId(),
newUser.getUsername());
sitesApi.usingRestWrapper()
.assertStatusCodeIs(HttpStatus.NO_CONTENT.toString());
}
}